Google Cloud では、デフォルトで、Google が管理する暗号鍵を使用して、自動的に保存されているデータを暗号化します。データを保護する鍵について特定のコンプライアンスや規制の要件がある場合、Looker(Google Cloud コア)のアプリケーション レベルの暗号化に顧客管理の暗号鍵(CMEK)を使用できます。
CMEK 全般についての詳細は、Cloud Key Management Service のドキュメントをご覧ください。
このページでは、CMEK を使用するように Looker(Google Cloud コア)インスタンスを構成する方法について説明します。
Looker(Google Cloud コア)は CMEK とどのようにやり取りしますか?
Looker(Google Cloud コア)は、(セカンダリ鍵の階層にある)単一の CMEK 鍵を使用して、Looker(Google Cloud コア)インスタンスによって管理される機密データを保護します。起動時に、Looker インスタンス内の各プロセスは Cloud Key Management Service(KMS)を 1 回呼び出して鍵を復号します。通常のオペレーション(起動後)では、Looker インスタンス全体が約 5 分ごとに KMS を 1 回呼び出して、鍵がまだ有効であることを確認します。
CMEK をサポートする Looker の種類のインスタンス(Google Cloud のコアインスタンス)は何ですか?
Looker(Google Cloud コア)インスタンスは、次の 2 つの条件を満たす場合に CMEK をサポートします。
- このページで説明する CMEK 構成手順は、Looker(Google Cloud Core)インスタンスが作成される前に完了します。顧客管理の暗号鍵を既存のインスタンスで有効にすることはできません。
- インスタンスのエディションは、Enterprise または Embed にする必要がある。
CMEK を使用して Looker(Google Cloud コア)インスタンスを作成するワークフロー
このページでは、Looker(Google Cloud Core)インスタンスに CMEK を設定する手順について説明します。
- 環境の設定
- gcloud と API ユーザーのみ: 顧客管理の暗号鍵が必要なプロジェクトごとにサービス アカウントを作成します。
- キーリングと鍵を作成し、鍵のロケーションを設定します。ロケーションは Google Cloud リージョンです。
- gcloud CLI と API ユーザーのみ: キーリングの鍵 ID(KMS_KEY_ID)と場所、キーリングの ID(KMS_KEYRING_ID)をコピーまたは書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。
- gcloud CLI と API ユーザーのみ: サービス アカウントに鍵へのアクセス権を付与します。
- プロジェクトに移動して、次のオプションを使用して Looker(Google Cloud コア)インスタンスを作成します。
これらのすべてのステップが完了すると、Looker(Google Cloud コア)インスタンスが CMEK で有効になります。
始める前に
まだ設定していない場合は、環境がこのページの指示に従うように構成されていることを確認してください。このセクションの手順に沿って、設定が正しいことを確認してください。
- Google Cloud コンソールの [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。注: この手順で作成するリソースをそのまま保持する予定でない場合、既存のプロジェクトを選択するのではなく、新しいプロジェクトを作成してください。チュートリアルの完了後にそのプロジェクトを削除すれば、プロジェクトに関連するリソースを削除できます。
- Google Cloud プロジェクトの課金が有効になっていることを確認します。プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
- ユーザー アカウントに Looker 管理者のロールがあることを確認します。
- Google Cloud CLI をインストールします。
gcloud CLI を初期化するには:
gcloud init
Cloud Key Management Service API を有効にします。
Looker(Google Cloud コア)API を使用する
サービス アカウントを作成する
gcloud CLI または API を使用して Looker(Google Cloud Core)インスタンスを作成する場合は、顧客管理の暗号鍵が必要な Google Cloud プロジェクトごとにサービス アカウントを作成する必要があります。1 つのプロジェクトに複数の Looker(Google Cloud コア)インスタンスを作成する場合、同じサービス アカウントをそのプロジェクト内のすべての Looker(Google Cloud コア)インスタンスに適用するため、サービス アカウントの作成は 1 回のみで済みます。Looker を使用してコンソールでインスタンスを作成する場合、最初に [顧客管理の暗号鍵を使用する] オプションを選択したときに、サービス アカウントが自動的に作成されます。
ユーザーがサービス アカウントを管理できるようにするには、次のいずれかの役割を付与します。
- サービス アカウント ユーザー(
roles/iam.serviceAccountUser
): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限、サービス アカウントの権限借用の権限が含まれます。 - サービス アカウント管理者(
roles/iam.serviceAccountAdmin
): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限が含まれます。サービス アカウントを作成、更新、削除する権限も含まれます。
現在、顧客管理の暗号鍵に必要なサービス アカウントを作成するには、gcloud CLI コマンドを使用する必要があります。Google Cloud Console を使用している場合、Looker (Google Cloud コア)がこのサービス アカウントを自動的に作成します。
gcloud
gcloud beta services identity create \ --service=looker.googleapis.com \ --project=PROJECT_ID
上記のコマンドはサービス アカウント名を返します。 このサービス アカウント名は、サービス アカウントに鍵へのアクセス権を付与するの手順で使用します。
キーリングと鍵を作成する
注: Cloud EKM サービスを使用して CMEK で外部管理の鍵を使用すると、Cloud KMS から鍵を使用できます。
鍵は、Looker(Google Cloud Core)インスタンスと同じ Google Cloud プロジェクトで作成するか、別のユーザー プロジェクトで作成します。Cloud KMS キーリングの場所は、Looker(Google Cloud コア)インスタンスを作成するリージョンと一致する必要があります。マルチリージョンまたはグローバル リージョン鍵は使用できません。リージョンが一致しない場合、Looker(Google Cloud コア)インスタンスの作成リクエストは失敗します。
キーリングの作成と鍵の作成のドキュメント ページの手順に従って、次の 2 つの条件を満たすキーリングと鍵を作成します。
- [キーリングのロケーション] フィールドは、Looker(Google Cloud コア)インスタンスに設定するリージョンと一致する必要があります。
- 鍵の目的フィールドは、対称暗号化/復号である必要があります。
鍵のローテーションと新しい鍵バージョンの作成については、鍵のローテーションをご覧ください。
KMS_KEY_ID
と KMS_KEYRING_ID
をコピーするか書き留めます。
gcloud または API を使用して Looker(Google Cloud コア)インスタンスを設定する場合は、Cloud KMS リソース ID の取得ドキュメントのページで、キーリングと作成したキーのリソース ID を確認してください。鍵の鍵 ID(KMS_KEY_ID)と場所、キーリングの ID(KMS_KEYRING_ID)をコピーするか書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。
サービス アカウントにリソースへのアクセス権を付与する
この手順は、gcloud CLI または API を使用する場合にのみ必要です。SERVICE_ACCOUNT_NAME
には、サービス アカウントを作成したときに返されたサービス アカウント名を使用します。
サービス アカウントにアクセス権を付与するには:
gcloud
gcloud Cloud KMS keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
CMEK を使用して Looker(Google Cloud コア)インスタンスを作成する
Google Cloud コンソールで顧客管理の暗号鍵を使用してインスタンスを作成するには、まず上記のキーリングと鍵を作成するセクションの手順に従って、 Looker(Google Cloud コア)インスタンスに使用するリージョンのキーリングと鍵を作成します。次に、以下の設定を使用して、Google Cloud コンソールから Looker(Google Cloud コア)インスタンスを作成するのドキュメント ページで、Looker(Google Cloud コア)インスタンスを作成する手順を説明します。
Console
- [インスタンスの作成] ページの [エディション] セクションで、使用する Enterprise または Embedded エディションを選択してCMEKを使用する必要があります。
- [インスタンスの作成] ページの [暗号化] セクションで、[顧客管理の暗号鍵(CMEK)] ラジオボタンを選択します。これにより、[顧客管理の暗号鍵を選択] プルダウン フィールドが表示されます。
- [顧客管理の暗号鍵を選択] フィールドで、使用する鍵を設定します。鍵は、作成する Looker(Google Cloud コア)インスタンスと同じリージョンにロケーションが設定されているキーリング内にある必要があります。それ以外の場合、インスタンスの作成は失敗します。鍵は、次の 2 つの方法のいずれかによって選択できます。
- プルダウン リストから鍵の名前を選択する: Google Cloud プロジェクトで使用可能なキーがプルダウン リストに表示されます。キーを選択したら、[OK] をクリックします。
- 鍵の入力リソース ID:テキストをクリックします。鍵が表示されない場合は、 鍵のリソース ID を入力してください]。プルダウン メニューの下部に表示されます。[鍵のリソース ID を入力] ダイアログが表示され、鍵の ID を入力できます。ID を入力したら、[保存] を選択します。
- キーを選択すると、そのキーを使用する権限をサービス アカウントに付与するように求めるメッセージが表示されます。[付与] ボタンをクリックします。
- 選択した鍵で暗号化 / 復号を行う権限がサービス アカウントにない場合、メッセージが表示されます。この場合は、[付与] をクリックして、選択した KMS 鍵に対する
roles/cloudkms.cryptoKeyEncrypterDecrypter
IAM ロールをサービス アカウントに付与します。 - Looker(Google Cloud コア)インスタンスのすべての構成が完了したら、[作成] をクリックします。
gcloud
gcloud looker instances create INSTANCE_NAME \ --project=PROJECT_ID \ --oauth-client-id=OAUTH_CLIENT_ID\ --oauth-client-secret=OAUTH_CLIENT_SECRET \ --kms-key=KMS_KEY_ID --region=REGION \ --edition=EDITION
CMEK を有効にするには、--edition
を core-embed-annual
または core-enterprise-annual
に割り当てる必要があります。
これで、Looker(Google Cloud コア)インスタンスが CMEK で有効になりました。
CMEK 対応インスタンスの鍵情報を表示する
Looker(Google Cloud コア)インスタンスが正常に作成されたら、CMEK が有効かどうかを確認できます。
Console
- Google Cloud コンソールで [Looker インスタンス] ページに移動します。
- インスタンス名をクリックして [インスタンスの詳細] ページを開きます。インスタンスで CMEK が有効になっている場合、[暗号化] 行にはインスタンスに使用される暗号化が表示されます。[顧客管理の暗号鍵(CMEK)] フィールドに、鍵識別子が表示されます。
gcloud
gcloud looker instances describe INSTANCE_NAME --region=REGION --format config
このコマンドは、kmsKeyName
、kmsKeyNameVersion
、kmsKeyState
を返して、インスタンスが CMEK で構成されていることを確認します。
Cloud External Key Manager(Cloud EKM)を使用する
Looker(Google Cloud Core)インスタンスのデータを保護するには、サポートされている外部の鍵管理パートナー内で管理する鍵を使用します。詳細については、考慮事項のセクションを含む Cloud External Key Manager のドキュメント ページをご覧ください。
Cloud EKM 鍵を作成する準備ができたら、Cloud External Key Manager ドキュメントのページの仕組みセクションをご覧ください。キーを作成したら、Looker(Google Cloud コア)インスタンスを作成するときにキー名を指定します。
Google では、外部の鍵管理パートナー システムで鍵の可用性を制御していません。
5}鍵をローテーションする
セキュリティを強化するため、キーをローテーションすることをおすすめします。鍵をローテーションするたびに新しい鍵バージョンが作成されます。鍵のローテーションの詳細については、鍵のローテーションのドキュメントをご覧ください。
Looker(Google Cloud Core)インスタンスの保護に使用する鍵をローテーションする場合、その鍵バージョンが使用されたときに作成されたバックアップまたはエクスポートにアクセスするには、引き続き以前の鍵バージョンが必要です。そのため、これらのアイテムに引き続きアクセスできるように、ローテーション後少なくとも 45 日間は以前の鍵バージョンを有効にしておくことをおすすめします。鍵バージョンは、無効化または破棄されるまで、デフォルトで保持されます。
鍵バージョンを無効にしてから再度有効にする
次のドキュメント ページをご覧ください。
Looker(Google Cloud コア)インスタンスの保護に使用される鍵バージョンが無効になっている場合、Looker インスタンス(Google Cloud コア)の動作を停止し、メモリ内の暗号化されていない機密データを消去して、次の日時まで待機します。鍵が再び利用可能になります。プロセスは次のとおりです。
- Looker(Google Cloud コア)インスタンスのセキュリティ保護に使用される鍵バージョンが無効になっている。
- Looker インスタンスは、約 15 分以内に鍵バージョンが取り消されたことを検出し、動作を停止して、暗号化されたすべてのデータをメモリからクリアします。
- インスタンスの動作が停止すると、Looker API を呼び出すとエラー メッセージが返されます。
- インスタンスのオペレーションが停止すると、Looker(Google Cloud Core)UI からエラー メッセージが返されます。
- 鍵バージョンを再度有効にする場合は、インスタンスの再起動を手動でトリガーする必要があります。
鍵バージョンを無効にして、Looker(Google Cloud コア)インスタンスが自動的に停止するのを待たない場合は、手動でインスタンスを再起動することで、Looker(Google Cloud コア)インスタンスが取り消された鍵バージョンをすぐに検出できます。
鍵バージョンの破棄
次のドキュメント ページをご覧ください。
Looker(Google Cloud コア)インスタンスのセキュリティ保護に使用されている鍵バージョンが破棄されると、Looker インスタンスにアクセスできなくなります。インスタンスが削除され、そのデータにアクセスできなくなります。
トラブルシューティング
ここでは、CMEK 対応インスタンスの設定中または使用中にエラー メッセージが表示された場合の対処方法について説明します。
Cloud KMS エラーやロールまたは権限がないために、作成、更新などの Looker(Google Cloud コア)管理者オペレーションが失敗する場合があります。失敗の一般的な理由には、Cloud KMS 鍵バージョンがない、Cloud KMS 鍵バージョンが無効かまたは破棄されている、Cloud KMS 鍵バージョンにアクセスするための IAM 権限が不足している、Cloud KMS 鍵バージョンが Looker(Google Cloud コア)インスタンスと別のリージョンにあるなどがあります。一般的な問題を診断して解決するには、次のトラブルシューティングの表を使用しください。
顧客管理の暗号鍵のトラブルシューティングの表
エラー メッセージ | 考えられる原因 | トラブルシューティングの戦略 |
プロダクトごと、プロジェクトごとのサービス アカウントが見つかりません | サービス アカウント名が正しくありません。 | 正しいユーザー プロジェクトのサービス アカウントが作成されていることを確認します。 |
サービス アカウントへのアクセスを許可できません | ユーザー アカウントに、この鍵バージョンへのアクセスを許可する権限がありません。 | ユーザー アカウントまたはサービス アカウントで組織管理者のロールを追加してください。 |
Cloud KMS 鍵バージョンが破棄されています | 鍵バージョンが破棄されています。 | 鍵バージョンが破棄されている場合、データの暗号化や復号に使用できません。 Looker(Google Cloud コア)インスタンスを削除する必要があります。 |
Cloud KMS 鍵バージョンが無効です | 鍵バージョンが無効です。 | Cloud KMS 鍵バージョンを再度有効にします。 |
Cloud KMS 鍵を使用するための十分な権限がありません | Looker(Google Cloud コア)インスタンスでオペレーションに使用しているユーザー アカウントまたはサービス アカウントに cloudkms.cryptoKeyEncrypterDecrypter のロールがないか、Cloud KMS 鍵バージョンが存在しません。 |
ユーザー アカウントまたはサービス アカウントに すでにアカウントにロールがある場合は、キーリングと鍵の作成セクションで、新しい鍵バージョンを作成する方法を確認してください。その後、インスタンス作成手順をもう一度完了します。 |
Cloud KMS 鍵が見つかりません | 鍵バージョンが存在しません。 | 新しい鍵バージョンを作成し、インスタンスの作成手順をもう一度完了します。キーリングと鍵の作成をご覧ください。 |
Looker(Google Cloud コア)インスタンスと Cloud KMS 鍵バージョンが異なるリージョンにあります | Cloud KMS 鍵バージョンと Looker(Google Cloud コア)インスタンスは同じリージョン内にある必要があります。Cloud KMS 鍵バージョンがグローバル リージョンまたはマルチリージョンにある場合は機能しません。 | インスタンスを作成するリージョンと同じリージョンに鍵バージョンを作成し、インスタンスの作成手順をもう一度完了します。キーリングと鍵の作成をご覧ください。 |
次のステップ
- Google Cloud コンソールから Looker(Google Cloud コア)インスタンスを管理する
- Looker から Looker(Google Cloud コア)インスタンスを管理する