Looker は、AES-256 Galois/Counter Mode(GCM)暗号化を使用して内部でデータを暗号化します。すべてのデータ項目は、一意のデータ鍵を使用して暗号化されます。また、検証が確実に行われるように、署名済みのバージョン付き暗号化エンベロープが組み込まれています。このモードでは、外部のカスタマー マスター キー(CMK)を使用する必要があります。CMK は、鍵暗号鍵(KEK)の導出、暗号化、復号に使用されます。鍵暗号鍵は、データ鍵の導出、暗号化、復号に使用します。
お客様がホストするインストールで以前の暗号化を使用している場合、内部データベースを AES-256 GCM 暗号化に移行する必要があります。ホストでホストされる新規インストールでは、AES-256 GCM 暗号化用にインストールを構成する必要があります。AES-256 GCM 暗号化に関する顧客がホストするインストールの移行または設定手順については、AES-256 GCM 暗号化の使用に関するドキュメント ページをご覧ください。
CMK を変更する場合や、ローカル鍵ベースの構成から AWS KMS 構成(またはその逆)に移行する場合は、新しい CMK を作成し、AES-256 GCM 暗号化を鍵交換します。
鍵交換はオフラインで行われるため、Looker インスタンスをシャットダウンする必要があります。クラスタ化された Looker インスタンスの場合、クラスタのすべてのノードをシャットダウンする必要があります。
再キー設定を行うと、Looker のディスク上のキャッシュ全体(クエリ結果キャッシュを含む)が無効になります。その結果、鍵交換を完了してインスタンスを起動すると、クライアント データベースに通常よりも高い負荷がかかることがあります。
AES-256 GCM 暗号化を鍵交換するには、次の手順を行います。
- Looker を停止して完全バックアップを作成する
_SOURCE
環境変数と_DESTINATION
環境変数を設定するrekey
コマンドを実行します。- 新しい環境変数を設定する
- Looker を起動する
Looker を停止して完全バックアップを作成
次のコマンドを実行します。
cd looker
./looker stop
tar -zcvf /tmp/looker-pre-encrypt.tar.gz /home/lookerops/looker --exclude=.cache --exclude=log --exclude=.tmp --exclude=.snapshots --exclude=looker.jar --exclude=authorized_keys --exclude=dr-log --exclude=core
外部 MySQL データベースを実行して Looker アプリケーション データを保存する場合は、データベースを個別にバックアップします。データベースが MySQL インスタンスの場合、スナップショットを取得します。データベースは比較的小さいため、数分で完了します。
Looker がクラスタ化されている場合は、続行する前にすべてのノードを停止してください。
cd looker
./looker stop
後で rekey
コマンドを発行したときにまだノードが実行されている場合は、コマンドが失敗し、このバックエンド Looker データベースに接続された他のライブノードがあります。Looker が 1 分以内にシャットダウンされた場合は、しばらくしてからもう一度お試しください。それ以外の場合は、クラスタ内のすべてのノードがシャットダウンされていることを確認します。"
_SOURCE
および _DESTINATION
環境変数を設定する
Looker インスタンスが最初に AES-256 GCM 暗号化に移行または構成されたときに、Looker が CMK を見つけることができる場所を示す 1 つ以上の環境変数が作成されました。これらの変数は、AWS KMS を使用しているかどうかによって異なります。
鍵交換オペレーションでは、現在 AWS KMS を使用しているかどうか、および鍵交換オペレーション後に AWS KMS を使用するかどうかに応じて、追加の環境変数が使用されます。接尾辞 _SOURCE
が付いた環境変数は、Looker が現在 CMK を見つけることができる場所を示しています。接尾辞 _DESTINATION
が付いた環境変数は、鍵交換オペレーションの後に Looker が CMK を見つけることができる場所を示しています。
_SOURCE
変数の設定
現在の構成で AWS KMS を使用しているかどうかに応じて、次のいずれかの手順を行います。
現在 AWS KMS を使用している場合
AWS KMS を使用して最初に暗号化を構成した場合は、次の環境変数のいずれかまたは両方を作成しました。
LKR_AWS_CMK
: AWSCMK_alias
を保存します。LKR_AWS_CMK_EC
: オプションの変数。AWS KMS キーストアで使用される暗号化コンテキストを定義します。
上記の環境変数を再作成します。
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
次に、_SOURCE
変数を作成します。次の新しい変数に _SOURCE
接尾辞を設定します。
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
現在 AWS KMS を使用していない場合
AWS 以外の KMS を使用して最初に暗号化を構成した場合は、CMK を環境変数に保存するか、インスタンス上のファイルに保存するかに応じて、次のいずれかの環境変数を作成します。
LKR_MASTER_KEY_ENV
: CMK を環境変数に格納すると、CMK が保存されます。LKR_MASTER_KEY_FILE
: CMK をファイルに保存すると、CMK を含むファイルのパスとファイル名が保存されます。
構成に使用する環境変数を再作成します。
export LKR_MASTER_KEY_FILE=<path_to_key_file>
または
export LKR_MASTER_KEY_ENV=<CMK_value>
次に、_SOURCE
変数を作成します。
CMK をファイルに保存する場合は、次の変数を作成します。
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
CMK を環境変数に保存する場合は、次の変数を作成します。
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
_DESTINATION
変数の設定
鍵交換オペレーション後に AWS KMS を使用するかどうかに応じて、次のいずれかの手順を行います。
新しい構成では AWS KMS が使用されます。
新しい構成で AWS KMS を使用する場合は、次の環境変数を作成して新しい CMK のロケーションを指定します。
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
新しい構成では AWS KMS を使用しません。
新しい構成で AWS KMS を使用しない場合は、LKR_MASTER_KEY_FILE_DESTINATION
変数または LKR_MASTER_KEY_ENV_DESTINATION
変数を使用して CMK の宛先を指定できます。
CMK をファイルに保存する場合は、次のコマンドを実行します。
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
環境変数を使用して CMK を保存する場合は、次のコマンドを実行します。
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
rekey
コマンドを実行する
次のコマンドを実行します。
./looker rekey
新しい環境変数を設定する
新しい構成に応じて、次の 1 つ以上の環境変数を適宜設定します。
新しい構成で AWS KMS を使用する場合:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
新しい構成で AWS KMS を使用しておらず、CMK を環境変数に保存する場合:
export LKR_MASTER_KEY_ENV=<CMK_value>
新しい構成で AWS KMS を使用せず、CMK をファイルに保存する場合:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
ローカルに保存されている鍵を AWS KMS に移動するか、AWS KMS からローカルに保存されている鍵に移動した場合は、以前の構成の環境変数が不要なものになります。古い環境変数を削除します。
ローカルに保存された鍵から AWS KMS に移動した場合:
unset LKR_MASTER_KEY_FILE
AWS KMS からローカルに保存された鍵に移動した場合:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Looker を起動する
次のコマンドを実行します。
./looker start