

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

# 選擇性設定 AWS KMS keys
<a name="configure-kms-keys"></a>

如果您想要使用加密金鑰 AWS KMS 來加密和解密資源，請選取核取方塊。如果您有現有的金鑰，您可以從下拉式選單中顯示的識別符中選取它們。您可以選擇**建立金鑰來產生新的金鑰**。您可以在更新登陸區域時新增或變更 KMS 金鑰。

當您選取**設定登陸區域**時，AWS Control Tower 會執行預先檢查以驗證您的 KMS 金鑰。金鑰必須符合下列要求：
+ 已啟用
+ 對稱
+ 不是多區域金鑰
+ 已將正確的許可新增至政策
+ 金鑰位於管理帳戶中

如果金鑰不符合這些要求，您可能會看到錯誤橫幅。在這種情況下，請選擇另一個金鑰或產生金鑰。請務必編輯金鑰的許可政策，如下節所述。

## 更新 KMS 金鑰政策
<a name="kms-key-policy-update"></a>

 您必須先建立 KMS 金鑰，才能更新 KMS 金鑰政策。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[建立金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)。

 若要搭配 AWS Control Tower 使用 KMS 金鑰，您必須新增 AWS Config 和 所需的最低許可，以更新預設 KMS 金鑰政策 AWS CloudTrail。根據最佳實務，建議您在任何政策中包含最低必要許可。更新 KMS 金鑰政策時，您可以在單一 JSON 陳述式或逐行新增群組的許可。

 此程序說明如何透過新增允許 AWS Config 和 CloudTrail AWS KMS 用於加密的政策陳述式，在 AWS KMS 主控台中更新預設 KMS 金鑰政策。政策陳述式要求您包含下列資訊：
+  **`YOUR-MANAGEMENT-ACCOUNT-ID`** – 要在其中設定 AWS Control Tower 的管理帳戶 ID。
+  **`YOUR-HOME-REGION`** – 您在設定 AWS Control Tower 時要選取的主要區域。
+  **`YOUR-KMS-KEY-ID`** – 將與政策搭配使用的 KMS 金鑰 ID。

**更新 KMS 金鑰政策**

1.  在 開啟 AWS KMS 主控台 [https://console.aws.amazon.com//kms](https://console.aws.amazon.com//kms)

1.  從導覽窗格中，選擇**客戶受管金鑰**。

1.  在表格中，選取您要編輯的金鑰。

1.  在**金鑰政策**索引標籤中，確定您可以檢視金鑰政策。如果您無法檢視金鑰政策，請選擇**切換到政策檢視**。

1.  選擇**編輯**，並透過為 和 CloudTrail 新增下列政策陳述式來更新預設 KMS AWS Config 金鑰政策。

    **AWS Config 政策陳述式** 

   ```
   {
       "Sid": "Allow Config to use KMS for encryption",
       "Effect": "Allow",
       "Principal": {
           "Service": "config.amazonaws.com"
       },
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey"
       ],
       "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID"
   }
   ```

    **CloudTrail 政策陳述式** 

   ```
   {
       "Sid": "Allow CloudTrail to use KMS for encryption",
       "Effect": "Allow",
       "Principal": {
           "Service": "cloudtrail.amazonaws.com"
       },
       "Action": [
           "kms:GenerateDataKey*",
           "kms:Decrypt"
       ],
       "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID",
       "Condition": {
           "StringEquals": {
               "aws:SourceArn": "arn:aws:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail"
           },
           "StringLike": {
               "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*"
           }
       }
   }
   ```

1.  選擇**儲存變更**。

 ** 範例 KMS 金鑰政策 ** 

 以下範例政策顯示在您新增授予 AWS Config 和 CloudTrail 最低必要許可的政策陳述式之後，您的 KMS 金鑰政策可能是什麼樣子。範例政策不包含您的預設 KMS 金鑰政策。

```
{
    "Version": "2012-10-17",		 	 	 
    "Id": "CustomKMSPolicy",
    "Statement": [
        {
        ... YOUR-EXISTING-POLICIES ...
        },
        {
            "Sid": "Allow Config to use KMS for encryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:PARTITION:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID"
        },
        {
            "Sid": "Allow CloudTrail to use KMS for encryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudtrail.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
              ],
            "Resource": "arn:PARTITION:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:PARTITION:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:PARTITION:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*"
                }
            }
        }
    ]
}
```

 若要檢視其他範例政策，請參閱下列頁面：
+  *AWS CloudTrail 《 使用者指南*》中的[授予加密許可](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/create-kms-key-policy-for-cloudtrail.html#create-kms-key-policy-for-cloudtrail-encrypt)。
+  《 *AWS Config 開發人員指南*》中的[使用服務連結RolesS3儲存貯體交付時 KMS 金鑰的必要許可）](https://docs.aws.amazon.com//config/latest/developerguide/s3-kms-key-policy.html#required-permissions-s3-kms-key-using-servicelinkedrole)。

**防範攻擊者**  
 透過將特定條件新增至政策，您可以協助防止特定類型的攻擊，稱為*混淆代理人*攻擊，如果實體強制更特權的實體執行動作，例如跨服務模擬。如需政策條件的一般資訊，另請參閱 [在政策中指定條件](access-control-overview.md#specifying-conditions)。

 AWS Key Management Service (AWS KMS) 可讓您建立多區域 KMS 金鑰和非對稱金鑰；不過，AWS Control Tower 不支援多區域金鑰或非對稱金鑰。AWS Control Tower 會執行現有金鑰的預先檢查。如果您選擇多區域金鑰或非對稱金鑰，您可能會看到錯誤訊息。在這種情況下，請產生另一個金鑰以搭配 AWS Control Tower 資源使用。

如需 的詳細資訊 AWS KMS，請參閱 [AWS KMS 開發人員指南。](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)

請注意，根據預設，AWS Control Tower 中的客戶資料會使用 SSE-S3 進行靜態加密。