

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Config 交付渠道 KMS 密钥的权限
<a name="s3-kms-key-policy"></a>

如果您想为 S3 存储桶的 AWS KMS 密钥创建策略，允许您对由 AWS Config S3 存储桶交付的对象使用基于 KMS 的加密，请使用本主题中的信息。

**Contents**
+ [

## 使用 IAM 角色（S3 存储桶传输）时 KMS 密钥的必需权限
](#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 角色（S3 存储桶传输）时 KMS 密钥的必需权限
<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>

此策略 AWS Config 允许在向 Amazon S3 存储桶传送信息时使用 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*— AWS Config 将向其发送配置项目的账户的 ID。

您可以使用上述 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` 区域中的传输通道与您的 Amazon S3 存储桶进行交互：`"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}`。