步骤 5:授予用户发布主题的权限(可选) - Amazon Simple Notification Service

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

步骤 5:授予用户发布主题的权限(可选)

默认情况下,只有主题所有者才拥有发布主题的权限。您应使用 AWS Identity and Access Management (IAM) 授予发布到主题的权限,让其他用户或应用程序能够发布到主题。有关授予 IAM 用户 Amazon SNS 操作权限的更多信息,请参阅 将基于身份的策略用于 Amazon SNS

可以采取两种方式控制对主题的访问:

  • 添加策略至 IAM 用户或群组。向用户授予主题权限的最简单方式就是创建群组,向该群组添加适当策略,再向此群组添加用户。相比较而言,向群组添加或删除用户,比追踪您为单独用户而设定的各项策略要简单得多。

  • 添加策略至主题。如果您想向另一 AWS 账户授予主题权限,那么唯一的方法是添加策略,并且该策略必须具备您想向其授予权限的主要 AWS 账户。

绝大多数情况下,您应使用第一种方法(通过向群组添加或删除适当用户的方式,向群组添加策略,管理用户权限)。如果您需要向另一账户的用户授予权限,请使用第二种方法。

如果您已向 IAM 用户或组添加以下策略,那么您应向该组的用户或成员授予对主题“我的主题”执行 sns:Publish 操作的权限。

{ "Statement":[{ "Sid":"AllowPublishToMyTopic", "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic" }] }

以下策略示例显示如何向主题授予另一账户权限。

注意

当您允许另一 AWS 账户 访问您账户中的资源时,您也就向拥有管理员级访问(通配符访问)的 IAM 用户授予访问该资源的权限。此操作将自动拒绝其他账户中的所有其他 IAM 用户访问您的资源。如果您要向该 AWS 账户 中的特定 IAM 用户授予访问您的资源的权限,那么拥有管理员级访问权限的账户或 IAM 用户必须将此项资源的访问权限委派给这些 IAM 用户。有关跨账户委派的更多信息,请参阅使用 IAM 指南中的启用跨账户访问

如果您向账户 123456789012 的主题“我的主题”添加以下策略,那么您同时也是向账户 111122223333 授予在此主题上执行 sns:Publish 操作的权限。

{ "Statement":[{ "Sid":"Allow-publish-to-topic", "Effect":"Allow", "Principal":{ "AWS":"111122223333" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic" }] }