AWS KMS 鍵を作成する

概要

GKE on AWS は、次のデータの暗号化に、顧客管理の AWS Key Management Service(KMS)対称鍵を使用します。

本番環境では、構成とボリュームの暗号化に異なる鍵を使用することをおすすめします。鍵が不正使用された場合のリスクを最小限に抑えるために、次のようにそれぞれに異なる鍵を作成することもできます。

セキュリティをさらに強化するために、必要最小限の権限セットのみを割り当てる AWS KMS 鍵ポリシーを作成できます。詳細については、特定の権限を持つ KMS 鍵を作成するをご覧ください。

AWS KMS 鍵を作成する

鍵を作成するには、次のコマンドを実行します。

aws --region AWS_REGION kms create-key \
    --description "KEY_DESC"

次のように置き換えます。

  • AWS_REGION は、AWS リージョンの名前に置き換えます。
  • KEY_DESC は、鍵のテキストの説明に置き換えます。

作成する鍵ごとに、後で使用できるように、このコマンドの出力に KeyMetadata.Arn という名前の値を保存します。

特定の権限を持つ KMS 鍵を作成する

関数ごとに個別の鍵を作成する場合は、その鍵に対する適切な権限を付与する鍵ごとに KMS 鍵ポリシーを指定する必要があります。鍵を作成するときに鍵ポリシーを指定しない場合、AWS KMS は、所有するアカウントのすべてのプリンシパルに鍵のすべての操作への無制限のアクセスを許可するデフォルトの鍵ポリシーを作成します。

鍵ポリシーを作成するときは、AWS IAM ポリシーに鍵ポリシーへのアクセスを許可する必要があります。鍵ポリシーでは、IAM ポリシーを使用する権限をアカウントに付与する必要があります。鍵ポリシーの権限がない場合、権限を許可する IAM ポリシーは機能しません。詳細については、AWS KMS の鍵ポリシーをご覧ください。

次の表に、GKE on AWS が使用する AWS IAM ロールごとの権限を示します。

Anthos Multi-Cloud API サービス エージェント ロール コントロール プレーンのロール ノードプールのロール 自動スケーリングの AWS サービスのロール
クラスタ コントロール プレーン構成の暗号化 kms:Encrypt kms:Decrypt なし なし
クラスタ コントロール プレーン データベースの暗号化 なし kms:Encrypt
kms:Decrypt
なし なし
クラスタ コントロール プレーンのメイン ボリュームの暗号化 kms:GenerateDataKeyWithoutPlaintext kms:CreateGrant なし なし
クラスタ コントロール プレーンのルート ボリュームの暗号化 なし なし なし 顧客管理の暗号鍵へのアクセスを許可する鍵ポリシー セクションをご覧ください。
ノードプール構成の暗号化 kms:Encrypt なし kms:Decrypt なし
ノードプールのルート ボリュームの暗号化 なし なし なし 顧客管理の暗号鍵へのアクセスを許可する鍵ポリシー セクションをご覧ください。
その他の要件 kms:DescribeKey なし なし なし

次のステップ