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 Config目前仅支持在同一区域和跨账户进行访问。用于修复 AWS Systems Manager (SSM) 文档或记录器传送渠道的 SNS 主题不能是跨区域的。

使用 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密钥,ac count-id 是主题所有者的AWS账号。对于账户 id1、账户 id 2 和账户 id3,请使用将数据发送到 Amazon SNS 主题的AWS账户。您可以用适当的值替换区域myTopic。

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

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

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

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

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

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

注意

作为安全最佳实践,强烈建议通过限制对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密钥,ac count-id 是主题所有者的AWS账号。对于账户 id1、账户 id 2 和账户 id3,请使用将数据发送到 Amazon SNS 主题的AWS账户。您可以用适当的值替换区域myTopic。

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

AWS Config还支持在代表特定AWS Config交付通道执行操作时限制AWS Config服务主体名称 (SPN) 仅与 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权限。