

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

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

# EKS オートモードでカスタマーマネージド KMS キー使用した EBS ボリュームの暗号化を有効にする
<a name="auto-kms"></a>

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

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

考慮事項:
+ EKS オートモードでは、デフォルトの AWS マネージドキーを使用してアカウントにある暗号化されたボリュームを保護する場合、追加の承認は不要です。
+ このトピックでは、EC2 インスタンスのルートボリュームである、エフェメラルボリュームを暗号化する方法について取り上げます。ワークロードに使用するデータボリュームの暗号化の方法については、「[ストレージクラスを作成する](create-storage-class.md)」を参照してください。

## 概要
<a name="_overview"></a>

以下の AWS KMS キーは、EKS オートモードでインスタンスを起動するときに、Amazon EBS ルートボリュームの暗号化に使用できます。
+  **AWS マネージドキー** – Amazon EBS が作成、所有、管理するアカウント内の暗号化キーです。これは、新しいアカウントのデフォルトの暗号化キーです。
+  **カスタマーマネージド型キー** – お客様が作成、所有、および管理するカスタム暗号化キー。

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

## ステップ 1: キーポリシーを設定する
<a name="_step_1_configure_the_key_policy"></a>

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 を設定する
<a name="_step_2_configure_nodeclass_with_your_customer_managed_key"></a>

キーポリシーを設定したら、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
```

## 関連リソース
<a name="_related_resources"></a>
+  [Amazon EKS のノードクラスを作成する](create-node-class.md) 
+ 詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。
  +  [キーポリシーにおける AWS サービスのアクセス許可](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html) 
  +  [キーポリシーを変更する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) 
  +  [Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) 