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

分配给 AWS Config 的 IAM 角色权限

您可以通过 AWS Identity and Access Management (IAM) 角色定义一组权限。AWS Config 采用您分配给它的角色,用以写入您的 S3 存储桶、发布到您的 SNS 主题,以及进行 DescribeList API 请求来获取 AWS 资源的配置详细信息。有关 IAM 角色的更多信息,请参阅 IAM 用户指南 中的 IAM 角色

当您使用 AWS Config 控制台创建或更新 IAM 角色时,AWS Config 会自动为您附加必需的权限。有关更多信息,请参阅 使用控制台设置 AWS Config

创建 IAM 角色策略

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

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

将一项 IAM 信任策略添加到您的角色

您可以创建一项 IAM 信任策略,让 AWS Config 可以切换到一个角色并利用其跟踪您的资源。有关信任策略的更多信息,请参阅 IAM 用户指南 中的代入角色

下面是 AWS Config 角色的示例信任策略:

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

用于 Amazon S3 存储桶的 IAM 角色策略

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

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

用于 Amazon SNS 主题的 IAM 角色策略

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

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"sns:Publish", "Resource":"mySNStopicARN" } ] }

用于获取配置详细信息的 IAM 角色策略

为了记录您的 AWS 资源配置,AWS Config 需要具备 IAM 权限才能获取有关您的资源的配置详细信息。

使用 AWS 托管策略 AWSConfigRole,并将其附加到您分配给 AWS Config 的 IAM 角色。每次 AWS Config 添加对某个 AWS 资源类型的支持时,AWS 都会更新此策略,这意味着,只要角色附加了此托管策略,AWS Config 就将继续拥有必需权限来获取配置详细信息。

如果您使用控制台创建或更新角色,AWS Config 将为您附加 AWSConfigRole

如果您使用 AWS CLI,请使用 attach-role-policy 命令,并为 AWSConfigRole 指定 Amazon 资源名称 (ARN):

Copy
$ aws iam attach-role-policy --role-name myConfigRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSConfigRole

有关记录 S3 存储桶的疑难解答

如果您已将 AWS Config 配置为记录账户的 S3 存储桶,则 AWS Config 会在创建、更新或删除 S3 存储桶时进行记录并发送通知。

如果您已将 AWS Config 配置为记录 S3 存储桶且不接收配置更改通知:

  • 验证分配给 AWS Config 的 IAM 角色是否具有 AWSConfigRole 托管策略。

  • 如果您具有已附加到存储桶的 S3 存储桶策略,请验证这些策略是否允许 AWS Config 记录对存储桶的更改。

如果您拥有 S3 存储桶的自定义策略,则可将以下策略添加到现有存储桶策略。此策略授予 AWS Config 权限以记录 S3 存储桶。

Copy
{ "Sid": "AWSConfig_ReadConfiguration_Access", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::myAccountID::role/config-role"}, "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketAcl", "s3:GetBucketCORS", "s3:GetBucketLocation", "s3:GetBucketLogging", "s3:GetBucketNotification", "s3:GetBucketPolicy", "s3:GetBucketRequestPayment", "s3:GetBucketTagging", "s3:GetBucketVersioning", "s3:GetBucketWebsite", "s3:GetLifecycleConfiguration", "s3:GetReplicationConfiguration" ], "Resource": "arn:aws:s3:::myBucketName" }