

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

# 分配给的 IAM 角色的权限 Amazon Config
<a name="iamrole-permissions"></a>

IAM 角色允许您定义一组权限。 Amazon Config 担任您分配给它的角色来写入您的 S3 存储桶、发布到您的 SNS 主题以及发出`Describe`或 `List` API 请求以获取 Amazon 资源的配置详细信息。有关 IAM 角色的更多信息，请参阅《IAM 用户指南》**中的 [IAM 角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/WorkingWithRoles.html)。

当您使用 Amazon Config 控制台创建或更新 IAM 角色时， Amazon Config 会自动为您附加所需的权限。有关更多信息，请参阅 [使用控制台设置 Amazon Config](gs-console.md)。

**策略与合规结果**  
[IAM 策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies.html)和 [Amazon Organizations中管理的其他策略](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies.html)可能会影响 Amazon Config 是否有权记录资源的配置更改。此外，规则会直接评估资源的配置，且执行评估时不会考虑这些策略。确保现行策略与您打算使用 Amazon Config的方式保持一致。

**Contents**
+ [创建 IAM 角色策略](#iam-role-policies)
  + [将 IAM 信任策略添加到您的角色](#iam-trust-policy)
  + [用于 S3 存储桶的 IAM 角色策略](#iam-role-policies-S3-bucket)
  + [KMS 密钥的 IAM 角色策略](#iam-role-policies-S3-kms-key)
  + [用于 Amazon SNS 主题的 IAM 角色策略](#iam-role-policies-sns-topic)
  + [用于获取配置详细信息的 IAM 角色策略](#iam-role-policies-describe-apis)
  + [管理 S3 存储桶记录的权限](#troubleshooting-recording-s3-bucket-policy)

## 创建 IAM 角色策略
<a name="iam-role-policies"></a>

当您使用 Amazon Config 控制台创建 IAM 角色时， Amazon Config 会自动为您附加该角色所需的权限。

如果您使用 Amazon CLI 进行设置 Amazon Config 或更新现有 IAM 角色，则必须手动更新策略以允许 Amazon Config 访问您的 S3 存储桶、发布到您的 SNS 主题并获取有关您的资源的配置详细信息。

### 将 IAM 信任策略添加到您的角色
<a name="iam-trust-policy"></a>

您可以创建一个 IAM 信任策略，该策略 Amazon Config 允许代入角色并使用它来跟踪您的资源。有关信任策略的更多信息，请参阅《IAM 用户指南》中的[角色术语和概念](https://docs.amazonaws.cn/IAM/latest/UserGuide/d_roles_terms-and-concepts.html)。**

以下是 Amazon Config 角色的信任策略示例：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "config.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": { 
        "StringEquals": {
          "AWS:SourceAccount": "sourceAccountID"
        }
      }
    }
  ]
}
```

------

您可以使用上述 IAM 角色信任关系中的 `AWS:SourceAccount` 条件来限制 Config 服务主体，仅在代表特定账户执行操作时与 Amazon IAM 角色进行交互。

Amazon Config 还支持这样的`AWS:SourceArn`条件，即限制 Config 服务委托人只能在代表拥有账户执行操作时担任 IAM 角色。使用 Amazon Config 服务主体时，该`AWS:SourceArn`属性将始终设置为`arn:aws:config:sourceRegion:sourceAccountID:*`客户管理的配置记录器的区域，以及`sourceAccountID`包含客户管理的配置记录器的帐户的 ID。`sourceRegion`

例如，添加以下条件限制 Config 服务主体只能代表账户 `123456789012` 中 `us-east-1` 区域中客户管理的配置记录器代入 IAM 角色：`"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}`。

### 用于 S3 存储桶的 IAM 角色策略
<a name="iam-role-policies-S3-bucket"></a>

以下示例策略授予访问您的 S3 存储桶的 Amazon Config 权限：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource":[
        "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/myAccountID/*"
      ],
      "Condition":{
        "StringLike":{
          "s3:x-amz-acl":"bucket-owner-full-control"
        }
      }
    },
    {
      "Effect":"Allow",
      "Action":[
        "s3:GetBucketAcl"
      ],
      "Resource":"arn:aws:s3:::amzn-s3-demo-bucket"
    }
  ]
}
```

------

### KMS 密钥的 IAM 角色策略
<a name="iam-role-policies-S3-kms-key"></a>

以下示例策略授予对新对象使用基于 KMS 的加密以进行 S3 存储桶交付的 Amazon Config 权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
        }
    ]
}
```

------

### 用于 Amazon SNS 主题的 IAM 角色策略
<a name="iam-role-policies-sns-topic"></a>

以下示例策略授予访问您的 SNS 主题的 Amazon Config 权限：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": 
   [
     {
      "Effect":"Allow",
      "Action":"sns:Publish",
      "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic"
     }
    ]
}
```

------

如果您的 SNS 主题已加密，要了解更多设置说明，请参阅《Amazon Simple Notification Service 开发人员指南》中的**[配置 Amazon KMS 权限](https://docs.amazonaws.cn/sns/latest/dg/sns-server-side-encryption.html#sns-what-permissions-for-sse)。

### 用于获取配置详细信息的 IAM 角色策略
<a name="iam-role-policies-describe-apis"></a>

建议使用 Amazon Config 服务相关角色:`AWSServiceRoleForConfig`。服务相关角色是预定义的，包括调用其他 Amazon Web Services 服务角色 Amazon Config 所需的所有权限。 Amazon Config 服务相关配置记录器需要服务相关角色。有关更多信息，请参阅[为 Amazon Config使用服务相关角色](https://docs.amazonaws.cn/config/latest/developerguide/using-service-linked-roles.html)。

如果您使用控制台创建或更新角色，请**AWSServiceRoleForConfig**为您 Amazon Config 附加。

如果您使用 Amazon CLI，请使用`attach-role-policy`命令并为以下项指定 Amazon 资源名称 (ARN)：**AWSServiceRoleForConfig**

```
$ aws iam attach-role-policy --role-name myConfigRole --policy-arn arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForConfig
```

### 管理 S3 存储桶记录的权限
<a name="troubleshooting-recording-s3-bucket-policy"></a>

Amazon Config 在创建、更新或删除 S3 存储桶时记录和发送通知。

建议使用 Amazon Config 服务相关角色:`AWSServiceRoleForConfig`。服务相关角色是预定义的，包括调用其他 Amazon Web Services 服务角色 Amazon Config 所需的所有权限。 Amazon Config 服务相关配置记录器需要服务相关角色。有关更多信息，请参阅[为 Amazon Config使用服务相关角色](https://docs.amazonaws.cn/config/latest/developerguide/using-service-linked-roles.html)。