如何允许组织中的 AWS 账户将消息发布到我账户中的 Amazon SNS 主题?

1 分钟阅读
0

我希望 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 服务

AWS 官方
AWS 官方已更新 1 年前