このドキュメントでは、一般的な CMEK 構成エラーを検出して軽減する方法と、デフォルトのリソース ロケーションを設定するときに発生するエラーを特定する方法について説明します。
デフォルトのリソース ロケーションの設定に関するトラブルシューティング
組織またはフォルダのデフォルトのストレージ ロケーションを更新しようとすると、コマンドが失敗して次のようなエラーが表示されます。
ERROR: (gcloud.logging.settings.update) INVALID_ARGUMENT: The KMS key location must match the storage location. Received KMS key location: us-central1, storage location: us-west1
- '@type': type.googleapis.com/google.rpc.DebugInfo
detail: '[ORIGINAL ERROR] generic::invalid_argument: The KMS key location must match
the storage location. Received KMS key location: us-central1, storage location:
us-west1 [google.rpc.error_details_ext] { message: "The KMS key location must
match the storage location. Received KMS key location: us-central1, storage location:
us-west1" }'
このエラーを解決するには、組織またはフォルダの Cloud Key Management Service 鍵のロケーションと一致するように、組織またはフォルダのデフォルトのストレージ ロケーションを設定します。
CMEK のトラブルシューティング
CMEK を構成すると、Cloud KMS 鍵を含む Trusted Cloud プロジェクトに、関連する問題が通知されます。たとえば、KMS_KEY_NAME が無効である場合、関連するサービス アカウントに必要な Cloud Key Management Service 暗号鍵の暗号化/復号ロールが付与されていない場合、または鍵へのアクセスが無効になっている場合、更新が失敗します。
CMEK を構成すると、少なくとも次のいずれかが発生します。
CMEK アクセスの問題について Cloud Logging から通知を受け取る。
組織またはフォルダに新しい Trusted Cloud プロジェクトを作成するときに、
_Default
ログバケットと_Required
ログバケットで CMEK が有効になっていない。CMEK が有効になっているログバケットから読み取るか、ログバケットを作成または更新しようとすると、エラーが発生する。
通知には失敗に関する情報と、問題を軽減するための手順が記載されています。
エラー | 推奨 |
---|---|
暗号鍵に対するアクセスが拒否された | Trusted Cloud プロジェクトに関連付けられる Logging サービス アカウントに、指定した Cloud KMS 鍵の操作に十分な IAM 権限がありません。エラーの手順に沿って対応するか、次のドキュメントをご覧ください。 |
暗号鍵が無効になっている | 指定された Cloud KMS 鍵は無効になりました。エラーの指示に従って鍵を再度有効にしてください。 |
暗号鍵が破棄された | 指定された Cloud KMS 鍵が破棄されました。手順に沿って操作するか、次のドキュメントをご覧ください。 |
Cloud KMS 鍵を含むプロジェクトを識別する
ログバケット、フォルダ、組織で使用される暗号鍵を含む Trusted Cloud プロジェクトの ID を特定するには、次の操作を行います。
プロジェクト
gcloud logging settings describe --project=PROJECT_ID
コマンドを実行する前に、PROJECT_ID をログバケットを含むプロジェクト ID に置き換えます。
フォルダ
gcloud logging settings describe --folder=FOLDER_ID
コマンドを実行する前に、FOLDER_ID をフォルダの ID に置き換えます。
組織
gcloud logging settings describe --organization=ORGANIZATION_ID
コマンドを実行する前に、ORGANIZATION_ID を組織の ID に置き換えます。
前のコマンドから次のような情報が返されます。
kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com
組織とフォルダの場合、次のフィールドも返されます。
kmsKeyName: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
kmsKeyName
フィールドの値には、鍵を保存する Trusted Cloud プロジェクトが含まれます。
鍵の有用性の確認
鍵の有用性を確認するには、次のコマンドを実行して、すべての鍵の一覧を表示します。
gcloud kms keys list \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING
このコマンドは、各鍵に関する情報を表形式で返します。出力の最初の行は列名のリストです。
NAME PURPOSE ...
コマンドの出力で Cloud KMS 鍵が ENABLED
と表示されていることと、鍵の目的が対称暗号化(PURPOSE
列には ENCRYPT_DECRYPT
を、PRIMARY_STATE
列には ENABLED
を含む)であることを確認します。
必要に応じて、新しい鍵を作成します。
アクセス権の構成を確認する
組織の CMEK 設定に関連付けられているサービス アカウントには、構成された鍵に対する Cloud KMS CryptoKey の暗号化 / 復号ロールが必要です。
鍵の Cloud IAM ポリシーを一覧表示するには、次のコマンドを実行します。
gcloud kms keys get-iam-policy KMS_KEY_NAME
必要に応じて、Cloud KMS CryptoKey の暗号化 / 復号ロールを含むサービス アカウントを鍵に追加します。