AWS Config
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

针对 Amazon S3 存储桶的权限

默认情况下,所有 Amazon S3 存储桶和对象都是私有的。只有资源所有者和创建存储桶的 AWS 账户才能访问该存储桶及其包含的所有对象。但是,资源所有者可以选择将访问权限授予其他资源和用户。要授予访问权限,其中一种方法是编写访问策略。

如果 AWS Config 自动为您创建了 S3 存储桶 (例如,如果您使用 AWS Config 控制台或 aws config subscribe 命令设置传递通道) 或者您选择了自己账户中已有的 S3 存储桶,那么这些权限将自动添加到该 S3 存储桶。但是,如果您指定的是来自其他账户的现有 S3 存储桶,则您必须确保该 S3 存储桶具有相应权限。

其他账户中的 Amazon S3 存储桶所需的权限

当 AWS Config 向您账户中的 Amazon S3 存储桶发送配置信息 (历史记录文件和快照) 时,AWS Config 会担任您在对其进行设置时分配的 IAM 角色。当 AWS Config 向其他账户中的 S3 存储桶发送配置信息时,它会首先尝试使用 IAM 角色。但是,如果该存储桶的访问策略未向此 IAM 角色授予 WRITE 访问权限,那么此次尝试将会失败。在这种情况下,AWS Config 会再次发送这些信息,这次会以 AWS Config 服务委托人的身份发送。该访问策略必须向名称为 config.amazonaws.com 的委托人授予 WRITE 访问权限。这样一来,AWS Config 便会成为其向 S3 存储桶传递的对象的所有者。

授权 AWS Config 访问其他账户中的 Amazon S3 存储桶

按照以下步骤向其他账户中的 Amazon S3 存储桶添加访问策略。该访问策略允许 AWS Config 向该存储桶发送配置信息。

  1. 使用该 S3 存储桶所属的账户登录 AWS 管理控制台。

  2. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  3. 选择您希望 AWS Config 用来传递配置项的存储桶,然后选择 Properties

  4. 选择 Permissions

  5. 选择 Edit Bucket Policy

  6. 将以下策略复制到 Bucket Policy Editor 窗口中:

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": [ "config.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::targetBucketName" }, { "Sid": " AWSConfigBucketDelivery", "Effect": "Allow", "Principal": { "Service": [ "config.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::targetBucketName/[optional] prefix/AWSLogs/sourceAccountID-WithoutHyphens/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
  7. 替换存储桶策略中的以下值:

    • targetBucketName – AWS Config 将向其传递配置项的 Amazon S3 存储桶的名称。

    • [可选] prefix – Amazon S3 对象键的可选附加内容,可帮助在存储桶中创建类似文件夹的组织结构。

    • sourceAccountID-WithoutHyphens – AWS Config 针对其向目标存储桶传递配置项的账户的 ID。

  8. 选择 Save,然后选择 Close