本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SNS 主题的权限
本主题介绍如何配置 AWS Config 以交付由其他账户拥有的 Amazon SNS 主题。 AWS Config 必须具有向 Amazon SNS 主题发送通知所需的权限。对于同账户设置,当 AWS Config 控制台创建亚马逊SNS主题或您从自己的账户中选择亚马逊SNS主题时,请 AWS Config 确保亚马逊SNS主题包含所需的权限并遵循安全最佳实践。
注意
AWS Config 目前仅支持在同一地区和跨账户进行访问。SNS用于补救 AWS Systems Manager (SSM) 文档或记录器交付渠道的主题不能是跨区域的。
目录
使用IAM角色时 Amazon SNS 主题所需的权限
您可以将权限策略附加到其他账户拥有的 Amazon SNS 主题。如果您想使用其他账户的亚马逊SNS主题,请务必将以下政策附加到现有的亚马逊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-id1
,
account-id2
,以及 account-id3
,使用将数据发送 AWS 账户 到 Amazon SNS 主题的。你可以用适当的值代替 region
以及 myTopic
.
向 Amazon SNS 主题 AWS Config 发送通知时,它会首先尝试使用该IAM角色,但是如果该角色或该角色 AWS 账户 无权向该主题发布消息,则尝试会失败。在这种情况下, AWS Config 将再次发送通知,这次是以 AWS Config 服务主体名称 (SPN) 的形式发送。发布成功之前,主题的访问策略必须授予 sns:Publish
对 config.amazonaws.com
主体名称的访问权限。如果该IAM角色无权发布该主题,则必须将 AWS Config 访问策略附加到亚马逊SNS主题中,如下一节SNS所述,才能授予访问该主题的权限。
使用服务相关角色时 Amazon SNS 主题所需的权限
AWS Config 服务相关角色无权访问 Amazon SNS 主题。因此,如果您 AWS Config 使用服务相关角色 (SLR) 进行设置,则 AWS Config 将改为以 AWS Config 服务主体身份发送信息。您需要在亚马逊SNS主题中附加下述访问政策,才能授予向亚马逊SNS主题发送信息的 AWS Config 权限。
对于同账户设置,当亚马逊SNS主题和SLR在同一个账户中且亚马逊SNS政策授予 sns:Publish
“SLR” 权限时,您无需使用。 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-id1
,
account-id2
,以及 account-id3
,使用将数据发送 AWS 账户 到 Amazon SNS 主题的。你可以用适当的值代替 region
以及 myTopic
.
在代表特定账户执行操作时,您可以使用之前的亚马逊SNS主题政策中的AWS:SourceAccount
条件将 AWS Config 服务主体名称 (SPN) 限制为仅与亚马逊SNS主题进行交互。
AWS Config 还支持将 AWS Config
服务主体名称 (SPN) 限制为仅在代表特定 AWS Config 交付渠道执行操作时与 S3 存储桶进行交互的AWS:SourceArn
条件。使用 AWS Config 服务主体名称 (SPN) 时,该AWS:SourceArn
属性将始终设置为arn:aws:config:sourceRegion:sourceAccountID:*
交付渠道的区域,以及包含配送渠道的账户sourceAccountID
的 ID。sourceRegion
有关 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
权限。