分配给 Amazon Config 的 IAM 角色的权限 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

分配给 Amazon Config 的 IAM 角色的权限

IAM 角色允许您定义一组权限。List 代入您分配给它的角色,以写入您的 S3 存储桶,发布到您的 SNS 主题,以及进行 Describe 或 Amazon Config API 请求以获取关于 Amazon 资源的配置详细信息。有关 IAM 角色的更多信息,请参阅《IAM 用户指南》中的 IAM 角色

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

策略与合规结果

IAM 策略Amazon Organizations 中管理的其他策略可能会影响 Amazon Config 是否有权记录资源的配置更改。此外,规则会直接评估资源的配置,且执行评估时不会考虑这些策略。确保现行策略与您打算使用 Amazon Config 的方式保持一致。

创建 IAM 角色策略

当您使用 Amazon Config 控制台创建 IAM 角色时,Amazon Config 会自动为您将必需权限附加到该角色。

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

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

您可以创建一项 IAM 信任策略,以允许 Amazon Config 代入一个角色并利用该角色跟踪您的资源。有关信任策略的更多信息,请参阅《IAM 用户指南》中的角色术语和概念

下面是 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:*其中 sourceRegion 是客户管理的配置记录器所在的区域,sourceAccountID 是包含配置客户管理的记录器的账户 ID。

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

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

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

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 角色策略

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

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 角色策略

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

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 权限

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

建议您使用 Amazon Config 服务相关角色:AWSServiceRoleForConfig。服务相关角色已预定义,并包含 Amazon Config 调用其他 Amazon Web Services 服务服务所需的一切权限。服务相关配置记录器需要 Amazon Config 服务相关角色。有关更多信息,请参阅为 Amazon Config 使用服务相关角色

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

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

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

管理 S3 存储桶记录的权限

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

建议您使用 Amazon Config 服务相关角色:AWSServiceRoleForConfig。服务相关角色已预定义,并包含 Amazon Config 调用其他 Amazon Web Services 服务服务所需的一切权限。服务相关配置记录器需要 Amazon Config 服务相关角色。有关更多信息,请参阅为 Amazon Config 使用服务相关角色