Looker の暗号鍵の変更

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 暗号化を鍵交換するには、次の手順を行います。

  1. Looker を停止して完全バックアップを作成する
  2. _SOURCE 環境変数と _DESTINATION 環境変数を設定する
  3. rekey コマンドを実行します。
  4. 新しい環境変数を設定する
  5. 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: AWS CMK_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