EKS オートモードでカスタマーマネージド KMS キー使用した EBS ボリュームの暗号化を有効にする - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

EKS オートモードでカスタマーマネージド KMS キー使用した EBS ボリュームの暗号化を有効にする

カスタマーマネージド KMS キーを使用すると、EKS オートモードのインスタンスのエフェメラルルートボリュームを暗号化することができます。

Amazon EKS オートモードは、Kubernetes クラスターの暗号化された EBS ボリュームを管理するときに、サービスリンクロールを使用して他の AWS サービスにアクセス許可を委任します。このトピックでは、EKS オートモードの Amazon EBS 暗号化のカスタマーマネージドキーを指定するときに必要になる、キーポリシーの設定方法について解説します。

考慮事項:

  • EKS オートモードでは、デフォルトの AWS マネージドキーを使用してアカウントにある暗号化されたボリュームを保護する場合、追加の承認は不要です。

  • このトピックでは、EC2 インスタンスのルートボリュームである、エフェメラルボリュームを暗号化する方法について取り上げます。ワークロードに使用するデータボリュームの暗号化の方法については、「ストレージクラスを作成する」を参照してください。

概要

以下の AWS KMS キーは、EKS オートモードでインスタンスを起動するときに、Amazon EBS ルートボリュームの暗号化に使用できます。

  • AWS マネージドキー – Amazon EBS が作成、所有、管理するアカウント内の暗号化キーです。これは、新しいアカウントのデフォルトの暗号化キーです。

  • カスタマーマネージド型キー – お客様が作成、所有、および管理するカスタム暗号化キー。

注記

KMS キーは対称である必要があります。Amazon EBS は非対称カスタマー管理キーをサポートしていません。

ステップ 1: キーポリシーを設定する

KMS キーには、カスタマーマネージドキーで暗号化された Amazon EBS ボリュームを使用してインスタンスを起動することを EKS オートモードに許可する、キーポリシーが必要です。

キーポリシーは次の構造で設定します。

注記

このポリシーには EKS オートモードのアクセス許可しか含まれていません。他の ID でキーを使用したり許可を管理したりする必要がある場合、このキーポリシーに追加のアクセス許可が必要になる可能性があります。

{ "Version":"2012-10-17", "Id": "MyKeyPolicy", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

<account-id> を、現在お使いの AWS アカウント ID に置き換えます。

キーポリシーを設定する場合:

  • ClusterServiceRole には、暗号化のオペレーションに KMS キーを使用するために必要な、IAM アクセス許可が含まれている必要があります。

  • kms:GrantIsForAWSResource 条件によって、AWS サービスに対してのみ許可を作成することができます。

ステップ 2: カスタマーマネージドキーを使用して NodeClass を設定する

キーポリシーを設定したら、EKS オートモード NodeClass 設定で KMS キーを参照します。

apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: my-node-class spec: # Insert existing configuration ephemeralStorage: size: "80Gi" # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T iops: 3000 # Range: 3000-16000 throughput: 125 # Range: 125-1000 # KMS key for encryption kmsKeyID: "arn:aws:kms:<region>:<account-id>:key/<key-id>"

プレースホルダーの値を実際の値にそれぞれ置き換えます。

  • <region> は現在の AWS リージョンに

  • <account-id> はご自身の AWS アカウント ID に

  • <key-id> はご自身の KMS キー ID に

KMS キーは以下のいずれかの形式を使用して指定することができます。

  • KMS キー ID: 1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • KMS キー ARN: arn:aws:kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • キーエイリアス名: alias/eks-auto-mode-key

  • キーエイリアス ARN: arn:aws:kms:us-west-2:111122223333:alias/eks-auto-mode-key

kubectl を使用して NodeClass 設定を適用します。

kubectl apply -f nodeclass.yaml