

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 EKS 自動模式啟用含客戶自管 KMS 金鑰的 EBS 磁碟區加密
<a name="auto-kms"></a>

您可使用客戶管理的 KMS 金鑰來加密 EKS 自動模式執行個體的暫時性根磁碟區。

Amazon EKS Auto Mode 使用服務連結角色，在管理 Kubernetes 叢集的加密 EBS 磁碟區 AWS 時，將許可委派給其他服務。本主題描述在為 EKS 自動模式指定客戶管理金鑰以進行 Amazon EBS 加密時，所需設定的金鑰政策。

考量：
+ EKS Auto Mode 不需要額外的授權，即可使用預設 AWS 受管金鑰來保護您帳戶中的加密磁碟區。
+ 本主題涵蓋加密暫時性磁碟區，即 EC2 執行個體的根磁碟區。有關加密用於工作負載的資料磁碟區的更多資訊，請參閱 [建立儲存類別](create-storage-class.md)。

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

當 EKS Auto Mode 啟動執行個體時，下列 AWS KMS 金鑰可用於 Amazon EBS 根磁碟區加密：
+  ** AWS 受管金鑰** – 在您的帳戶中由 Amazon EBS 建立、擁有和管理的加密金鑰。這是新帳戶的預設加密金鑰。
+  **客戶受管金鑰** – 您所建立、擁有和管理的自訂加密金鑰。

**注意**  
金鑰必須為對稱金鑰。Amazon EBS 不支援非對稱客戶受管金鑰。

## 步驟 1：設定金鑰政策
<a name="_step_1_configure_the_key_policy"></a>

您的 KMS 金鑰必須具有金鑰政策，允許 EKS 自動模式使用透過客戶受管金鑰加密的 Amazon EBS 磁碟區來啟動執行個體。

使用下列結構設定您的金鑰政策：

**注意**  
此政策僅包含 EKS 自動模式所需的許可。如果其他身分需要使用金鑰或管理授予，金鑰政策可能需要額外授權。

```
{
    "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` 必須擁有必要的 IAM 許可，才能使用 KMS 金鑰進行加密操作
+ `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) 
  +  [AWS KMS 中的授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) 