分配给的 IAM 角色的权限AWS Config - AWS Config

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

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

IAM 角色允许您定义一组权限。AWS Config担任您分配给它的角色来写入您的 S3 存储桶、发布到您的 SNS 主题以及发出DescribeList API 请求以获取AWS资源的配置详细信息。有关 IAM 角色的更多信息,请参阅《IAM 用户指南》中的 IAM 角色

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

策略与合规结果

IAM 策略AWS Organizations中管理的其他策略可能会影响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角色的信任策略示例:

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 服务主体,仅在代表特定账户执行操作时与AWS IAM 角色进行交互。

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

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

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

以下示例策略授予访问您的 S3 存储桶的AWS 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 角色策略

以下示例策略授予对新对象使用基于 KMS 的加密以进行 S3 存储桶交付的AWS 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 角色策略

以下示例策略授予访问您的 SNS 主题的AWS 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 开发人员指南》中的配置AWS KMS权限

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

建议使用AWS Config服务相关角色:AWSServiceRoleForConfig。服务相关角色是预定义的,包括调用其他AWS 服务角色AWS Config所需的所有权限。与AWS Config服务相关的配置记录器需要服务相关角色。有关更多信息,请参阅为AWS Config使用服务相关角色

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

如果您使用AWS 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 存储桶记录的权限

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

建议使用AWS Config服务相关角色:AWSServiceRoleForConfig。服务相关角色是预定义的,包括调用其他AWS 服务角色AWS Config所需的所有权限。与AWS Config服务相关的配置记录器需要服务相关角色。有关更多信息,请参阅为AWS Config使用服务相关角色