概要
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 | なし | なし | なし |