我希望 Amazon Simple Notification Service(Amazon SNS)主题接受从我的 AWS Organizations 中组织的任何 AWS 账户发布的消息。该如何进行设置?
配置 Amazon SNS 主题的访问策略,以允许组织中的任何账户将消息发布到主题。在访问策略中,包括全局条件键 aws:PrincipalOrgID 并指定您组织的 ID。
1. 在 Organizations 控制台中查找您组织的 ID。有关更多信息,请参阅从管理账户查看组织的详细信息。
2. 在 Amazon SNS 控制台中创建主题。记下新主题的 Amazon 资源名称 (ARN)。
3. 在 Amazon SNS 控制台中,通过执行以下操作来编辑主题: 在导航窗格中,选择 Topics (主题)。 选择您创建的主题。然后选择 Edit(编辑)。 在 Edit (编辑主题名称)页面上,展开 Access policy -optional(访问策略 – 可选)。 将以下示例策略粘贴到 JSON editor(JSON 编辑器)中,然后选择 Save changes(保存更改):
**重要信息:**请将 snsTopicArn 替换为主题的 ARN。然后将 myOrgId 替换为您组织的 ID。
{ "Version": "2012-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "allow-publish-from-organization-accounts", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "sns:Publish" ], "Resource": "snsTopicArn", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "myOrgId" } } } ] }
**提示:**要允许组织中的账户执行更多 Amazon SNS API 操作(如 GetTopicAttributes),请在策略的 Action(操作)下添加操作。
4. 利用您的电子邮件地址订阅 SNS 主题以进行测试。在创建订阅时,请确保指定您的主题的 ARN。
5. 在您的电子邮件中,找到来自 AWS 通知的订阅确认消息,并确认订阅。
6. 使用组织中的任何 AWS 账户,将消息发布到您账户中的 SNS 主题。在发布请求中,请确保指定主题的 ARN。
已发布的消息将显示在您的电子邮件中。
AWS 全局条件上下文键
Amazon SNS 访问控制的示例案例
在 Amazon SNS 中管理访问的概述
可与 AWS Organizations 一起使用的 AWS 服务