分配给 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 Config控制台创建 IAM 角色时,AWS Config会自动为您向该角色附加所需的权限。

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

向您的角色添加 IAM 信任策略

您可以创建 IAM 信任策略,AWS Config允许代入角色并使用它来跟踪您的资源。有关信任策略的更多信息,请参阅 IAM 用户指南中的角色术语和概念

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

{ "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还支持限制 Config 服务委托人仅在代表所属账户执行操作时担任 IAM 角色的AWS:SourceArn条件。使用AWS Config服务主体时,该AWS:SourceArn属性将始终设置为arn:aws:config:sourceRegion:sourceAccountID:*其中sourceRegion是配置记录器的区域,sourceAccountID是包含配置记录器的帐户的 ID。有关AWS Config配置记录器的更多信息,请参阅管理配置记录器。例如,添加以下条件限制 Config 服务委托人只能代表账户中该us-east-1区域的配置记录器担任 IAM 角色123456789012"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}

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

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

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl" ], "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" } ] }

KMS 密钥的 IAM 角色策略

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "myKMSKeyARN" } ] }

Amazon SNS 主题的 IAM 角色政策

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

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

如果您的 SNS 主题已加密,以获取更多设置说明,请参阅 Amazon Simple Notification Service 开发人员指南中的配置AWS KMS权限

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

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

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

如果您使用控制台创建或更新角色,则会ConfigRole为您AWS Config附加 AWS_

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

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

管理 S3 存储桶记录的权限

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

建议您使用AWSServiceRoleForConfig(参见使用服务相关角色AWS Config)或使用AWS_ConfigRole托管策略的自定义 IAM 角色。有关配置记录最佳实践的更多信息,请参阅AWS Config最佳实践

如果您需要管理存储段记录的对象级权限,请确保在 S3 存储桶策略中提供config.amazonaws.com(AWS Config服务主体名称)对AWS_ConfigRole托管策略中所有 S3 相关权限的访问权限。有关更多信息,请参阅 Amazon S3 存储桶的权限