このページでは、顧客管理の暗号鍵(CMEK)ポリシーを作成した後に鍵へのアクセスを確認する方法について説明します。
キー アクセスの検証の主なユースケース
いつでもキー アクセスの検証を再実行して、キーの問題を特定できます。
鍵の無効化: 鍵が無効になると、ボリュームへのデータアクセスが停止します。
鍵の破棄: 鍵が破棄されると、データへのアクセスは復元できません。ボリュームを削除して容量を解放できます。詳細については、ボリュームを削除するをご覧ください。
権限がない: 権限が削除された場合は、権限を付与する手順が表示されます。鍵を読み取る権限をサービスに付与するをご覧ください。
鍵を読み取る権限をサービスに付与する
CMEK 鍵を使用するには、まず指定された鍵を読み取る権限をサービスに付与する必要があります。NetApp Volumes は、正しい Google Cloud CLI コマンドを提供します。サービスに必要な Cloud KMS 鍵の権限を付与するには、適切な権限を持つプロジェクト全体のカスタムロールを作成し、カスタムロールを適切なサービス アカウントにバインドする鍵ロール バインディングを作成する必要があります。カスタムロールを作成するには、Google アカウント内のプロジェクトに対するロール管理者(roles/iam.RoleAdmin)権限が必要です。NetApp Volumes に鍵へのアクセス権を付与するには、Cloud KMS 管理者(roles/cloudkms.admin)権限が必要です。
Google Cloud コンソールまたは Google Cloud CLI を使用して、鍵を読み取るサービス権限を付与する手順は次のとおりです。
コンソール
Google Cloud コンソールで、NetApp Volumes ページに移動します。
[CMEK ポリシー] を選択します。
編集する CMEK ポリシーを見つけて、[詳細を表示] メニューをクリックします。
[鍵へのアクセスを確認] を選択します。
鍵アクセスをまだ構成していない場合、検証は失敗し、鍵アクセスを付与する手順が UI に表示されます。必要な Google Cloud CLI コマンドを実行したら、[再試行] をクリックして鍵の検証を再度実行します。
検証が成功すると、検証が成功したことを示すダイアログが表示されます。確認に失敗した場合は、[再試行] をクリックしてキーチェックを再実行します。
gcloud
次の kms-configs verify コマンドを実行します。
gcloud netapp kms-configs verify CONFIG_NAME \ --project=PROJECT_ID \ --location=LOCATION
次の情報を置き換えます。
CONFIG_NAME: 構成の名前。PROJECT_ID: アクセス権を付与する一意のプロジェクト ID。LOCATION: 構成のリージョン。
鍵の検証が成功すると、コマンドは次のメッセージを出力します。
healthy: true
鍵の確認に失敗した場合は、鍵へのアクセス権を付与する必要があります。次のコマンドを実行して、サービスキーにアクセス権を付与する Google Cloud CLI コマンドを特定します。次のコマンドを実行するには、cloudkms.admin ロールが必要です。
gcloud netapp kms-configs describe CONFIG_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --format="value(instructions)"
その他のオプションのフラグの詳細については、Cloud Key Management Service の Google Cloud SDK ドキュメントをご覧ください。
詳細については、Cloud Key Management Service のユーザー ドキュメントをご覧ください。
CMEK の VPC Service Controls 上り(内向き)ルールを構成する
VPC Service Controls を使用する場合は、関連するプロジェクト、リージョン、サービス アカウントのトラフィックを許可するように上り(内向き)ルールを更新する必要があります。
次のテンプレートを使用して、必要な権限を構成します。
{
"ingressFrom": {
"identities": [
"serviceAccount:n-cmek-usea4-1234567890@netapp-cmek-prod.iam.gserviceaccount.com"
],
"sources": [
{
"resource": "projects/112233445566"
}
]
},
"ingressTo": {
"operations": [
{
"methodSelectors": [
{
"method": "*"
}
],
"serviceName": "cloudkms.googleapis.com"
}
],
"resources": [
"projects/1234567890"
]
},
"title": "CMEK for NetApp Volumes"
}
テンプレートで次のフィールドを更新します。
ingressFrom.identities: NetApp Volumes で使用されるサービス アカウントのカンマ区切りリストを入力します。このサービスは、次の形式でプロジェクトとロケーションごとに一意のサービス アカウントを使用します。
serviceAccount:n-cmek-location-short-name-your-project-number@netapp-cmek-prod.iam.gserviceaccount.comここで、
location-short-nameはリージョンの短縮形(us-east4の場合はusea4など)、your-project-numberはプロジェクト番号です。このサービス アカウント名は、次のコマンドでクエリできます。
gcloud netapp kms-configs describe NAME --location LOCATION --format="value(serviceAccount)"
次の情報を置き換えます。
NAME: CMEK ポリシーの名前。LOCATION: CMEK ポリシーのリージョン。
テンプレートの例は、
us-east4リージョンの Google プロジェクト1234567890のサービス アカウント名を示しています。ingressTo.resources: ボリュームを含むプロジェクトのプロジェクト番号を入力します。テンプレートの例では
projects/1234567890を使用しています。ingressFrom.sources: サービスで使用されるバックエンド プロジェクトのカンマ区切りリストを入力します。CMEK ボリュームをホストする必要がある Google リージョンごとに 1 つのエントリを追加する必要があります。リージョンのバックエンド プロジェクト番号を取得するには、Google Cloud カスタマーケアにお問い合わせください。テンプレートでは、
projects/112233445566はプレースホルダです。リージョンのバックエンド プロジェクト番号に置き換える必要があります。
cloudkms.googleapis.com サービスに個々のメソッドを指定することはできません。すべてのメソッドを許可するには、* を使用する必要があります。