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

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

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

默认情况下,只有主题所有者才拥有发布主题的权限。要允许其他用户或应用程序向该主题发布内容,应使用 AWS Identity and Access Management (IAM) 授予该主题的发布权限。有关向IAM用户授予 Amazon SNS 操作权限的更多信息,请参阅在 Amazon 上使用基于身份的政策 SNS

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

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

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

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

如果您向IAM用户或组添加了以下策略,则需要向该用户或群组中的成员授予对该主题执行sns:Publish操作的权限 MyTopic。

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

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

注意

当您向其他用户授予对您账户中某项资源的 AWS 账户 访问权限时,也就是向拥有该资源的管理员级访问权限(通配符访问权限)的IAM用户授予权限。其他账户中的所有其他IAM用户都会被自动拒绝访问您的资源。如果您想向该IAM用户授予 AWS 账户 访问您资源的权限,则该账户或具有管理员级别访问权限的IAM用户必须将资源权限委托给这些IAM用户。有关跨账户委托的更多信息,请参阅《使用IAM指南》中的启用跨账户访问权限

如果您向账户 123456789012 MyTopic 中的主题添加了以下策略,则需要向账户 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" }] }