Amazon SNS 主题的权限 - AWS Config

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

Amazon SNS 主题的权限

不支持加密的 Amazon SNS

AWS Config不支持加密的 Amazon SNS 主题。

本主题介绍如何配置AWS Config以交付由其他账户拥有的 Amazon SNS 主题。AWS Config必须具有向 Amazon SNS 主题发送通知所需的权限。

当AWS Config控制台为您创建新的 Amazon SNS 主题时,会AWS Config授予必要的权限。如果您选择现有 Amazon SNS 主题,请确保 Amazon SNS 主题包含所需的权限并遵循安全最佳实践。

不支持跨区域的 Amazon SNS 主题

AWS Config目前仅支持在同一个账户内AWS 区域和跨账户进行访问。

使用 IAM 角色时 Amazon SNS 主题的必需权限

您可以将权限策略附加到不同账户拥有的 Amazon SNS 主题。如果要使用另一个账户中的 Amazon SNS 主题,请确保将以下策略附加到现有 Amazon SNS 主题。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:region:account-id:myTopic", "Principal": { "AWS": [ "account-id1", "account-id2", "account-id3" ] } } ] }

对于Resource密钥,account-id是主题所有者的AWS账号。对于account-id1account-id2account-id3、和,使用将数据发送AWS 账户到 Amazon SNS 主题的。您可以用适当的值代替regionmyTopic

向 Amazon SNS 主题AWS Config发送通知时,它会首先尝试使用 IAM 角色,但是如果该角色或AWS 账户没有向该主题发布的权限,则尝试会失败。在这种情况下,将再次AWS Config发送通知,这次是以AWS Config服务主体名称 (SPN) 的形式发送。发布成功之前,主题的访问策略必须授予 sns:Publishconfig.amazonaws.com 主体名称的访问权限。如果 IAM 角色无权向 Amazon SNS 主题发布内容,则必须按下一节中所述,在 Amazon SNS 主题中附加访问策略,以授予AWS Config访问该主题的权限。

使用服务相关角色时 Amazon SNS 主题的必需权限

AWS Config服务相关角色无权访问 Amazon SNS 主题。因此,如果您AWS Config使用服务相关角色 (SLR) 进行设置,则AWS Config将改为以AWS Config服务主体身份发送信息。您需要在 Amazon SNS 主题中附加访问策略(如下所述),才能授予向亚马逊 SNS 主题发送信息的AWS Config权限。

对于同账户设置,当 Amazon SNS 主题和 SLR 位于同一账户中,并且 Amazon SNS 策略授予 SLR“sns:Publish”权限时,您无需使用AWS Config SPN。以下权限策略和安全最佳实践建议适用于跨账户设置。

授予AWS Config对 Amazon SNS 主题的访问权限

此政策AWS Config允许向 Amazon SNS 主题发送通知。要授予从其他账户AWS Config访问 Amazon SNS 主题的权限,您需要附加以下权限策略。

注意

作为安全最佳实践,强烈建议通过限制对AWS:SourceAccount条件中列出的帐户的访问来确保AWS Config仅代表预期用户访问资源。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:myTopic", "Condition" : { "StringEquals": { "AWS:SourceAccount": [ "account-id1", "account-id2", "account-id3" ] } } } ] }

对于Resource密钥,account-id是主题所有者的AWS账号。对于account-id1account-id2account-id3、和,使用将数据发送AWS 账户到 Amazon SNS 主题的。您可以用适当的值代替regionmyTopic

在代表特定账户执行操作时,您可以使用之前的 Amazon SNS 主题政策中的AWS:SourceAccount条件来限制AWS Config服务主体名称 (SPN) 只能与 Amazon SNS 主题进行交互。

AWS Config还支持将AWS Config服务主体名称 (SPN) 限制为仅在代表特定AWS Config交付渠道执行操作时与 S3 存储桶交互的AWS:SourceArn条件。使用AWS Config服务主体名称 (SPN) 时,该AWS:SourceArn属性将始终设置为交付渠道的区域arn:aws:config:sourceRegion:sourceAccountID:*在哪里sourceRegion,并且sourceAccountID是包含配送渠道的账户的 ID。有关AWS Config交付渠道的更多信息,请参阅管理交付渠道。例如,添加以下条件以限制AWS Config服务主体名称 (SPN) 仅代表账户中us-east-1该地区的交付渠道与您的 S3 存储桶进行交互123456789012"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}

Amazon SNS 主题故障排除

AWS Config必须拥有向 Amazon SNS 主题发送通知的权限。如果 Amazon SNS 主题无法收到通知,请验证所担任AWS Config的 IAM 角色是否具有所需的sns:Publish权限。