

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

# AWS Config 交付管道的 KMS 金鑰許可
<a name="s3-kms-key-policy"></a>

如果您想要為 S3 儲存貯體的 AWS KMS 金鑰建立政策，以允許您針對 S3 儲存貯體交付 AWS Config 的物件使用 KMS 型加密，請使用本主題中的資訊。

**Contents**
+ [使用 IAM 角色時的 KMS Key 必要許可 (S3 儲存貯體交付)](#required-permissions-s3-kms-key-using-iam-role)
+ [使用服務連結角色時 AWS KMS 金鑰的必要許可 (S3 儲存貯體交付）](#required-permissions-s3-kms-key-using-servicelinkedrole)
+ [授予 AWS KMS 金鑰的 AWS Config 存取權](#granting-access-s3-kms-key)

## 使用 IAM 角色時的 KMS Key 必要許可 (S3 儲存貯體交付)
<a name="required-permissions-s3-kms-key-using-iam-role"></a>

如果您 AWS Config 使用 IAM 角色設定 ，您可以將下列許可政策連接至 KMS 金鑰：

```
{
    "Id": "Policy_ID",
    "Statement": [
        {
            "Sid": "AWSConfigKMSPolicy",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Effect": "Allow",
            "Resource": "*myKMSKeyARN*",
            "Principal": {
                "AWS": [
                    "account-id1",
                    "account-id2",
                    "account-id3"
                ]
            }
        }
    ]
}
```

**注意**  
如果 IAM 角色、Amazon S3 儲存貯體政策或 AWS KMS 金鑰未提供適當的存取權 AWS Config，則 AWS Config嘗試將組態資訊傳送至 Amazon S3 儲存貯體將會失敗。在此情況下， 會再次 AWS Config 傳送資訊，這次會以 AWS Config 服務委託人身分傳送。在此情況下，您必須將下文提及的許可政策連接至 AWS KMS 金鑰，以授予在將資訊交付至 Amazon S3 儲存貯體時使用金鑰的 AWS Config 存取權。

## 使用服務連結角色時 AWS KMS 金鑰的必要許可 (S3 儲存貯體交付）
<a name="required-permissions-s3-kms-key-using-servicelinkedrole"></a>

 AWS Config 服務連結角色沒有存取 AWS KMS 金鑰的許可。因此，如果您 AWS Config 使用服務連結角色設定 ， AWS Config 會改為以 AWS Config 服務主體身分傳送資訊。您將需要將如下所述的存取政策連接至 AWS KMS 金鑰，以授予在將資訊交付至 Amazon S3 儲存貯體時使用 AWS KMS 金鑰的 AWS Config 存取權。

## 授予 AWS KMS 金鑰的 AWS Config 存取權
<a name="granting-access-s3-kms-key"></a>

此政策允許 在將資訊交付至 Amazon S3 儲存貯體時使用 AWS Config AWS KMS 金鑰

```
{
    "Id": "Policy_ID",
    "Statement": [
        {
            "Sid": "AWSConfigKMSPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "myKMSKeyARN",
            "Condition": { 
                "StringEquals": {
                    "AWS:SourceAccount": "sourceAccountID"
                }
            }
        }
    ]
}
```

替換金鑰政策中的下列值：
+ *myKMSKeyARN* – 用於加密 AWS Config 將交付組態項目之 Amazon S3 儲存貯體中資料的 AWS KMS 金鑰 ARN。
+ *sourceAccountID* - 帳戶 ID， AWS Config 會為其交付組態項目。

您可以使用上述 AWS KMS 金鑰政策中的 `AWS:SourceAccount`條件，限制 Config 服務主體僅在代表特定帳戶執行操作時與 AWS KMS 金鑰互動。

AWS Config 也支援 `AWS:SourceArn`條件，限制 Config 服務主體在代表特定 AWS Config 交付管道執行操作時，只能與 Amazon S3 儲存貯體互動。使用 AWS Config 服務主體時， `AWS:SourceArn` 屬性一律會設定為 ，`arn:aws:config:sourceRegion:sourceAccountID:*`其中 `sourceRegion`是交付管道的區域，而 `sourceAccountID`是包含交付管道的帳戶 ID。如需 AWS Config 交付管道的詳細資訊，請參閱[管理交付管道](https://docs.aws.amazon.com/config/latest/developerguide/manage-delivery-channel.html)。例如，新增下列條件以限制 Config 服務主體在代表帳戶 `123456789012` 在 `us-east-1` 區域中的交付通道 `"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}` 時，僅能與 Amazon S3 儲存貯體互動。