开始使用 Amazon SNS 短信访问管理 - Amazon Simple Notification Service

开始使用 Amazon SNS 短信访问管理

重要

《Amazon SNS 短信开发人员指南》已更新。Amazon SNS 已与 AWS End User Messaging SMS 集成,用于传输短信。此指南包含有关如何创建、配置和管理 Amazon SNS 短信的最新信息。

要在 Amazon SNS 中启用短信收发功能,您需要授予 Amazon SNS 访问您的 SMS 资源和代表您调用 AWS End User Messaging SMS API 的必要权限。有两种主要机制可以控制这种访问权限:

  1. 一项授予对 AWS End User Messaging SMS API 的访问权限的 IAM 策略

  2. 基于资源的策略,用于授予 AWS End User Messaging SMS 资源权限

    默认情况下,源 ID 和选择退出列表等短信资源具有授予 Amazon SNS 权限的资源策略。

短信 IAM 策略

短信 AWS Identity and Access Management(IAM)策略是指授予 Amazon SNS 访问和使用 AWS End User Messaging SMS API 的必要权限的策略。这些策略定义了 Amazon SNS 在与 AWS End User Messaging SMS 资源交互时允许执行的操作,例如发送短信。

  1. 如果您未使用管理员角色,请附加包含 sms-voice API 的 IAM 策略。

    如果您处于沙盒中,则无需设置其他资源策略即可开始向经过验证的目标电话号码发送短信。

  2. 如果您请求新的发起身份,请在控制台中选择相应的策略。这将授予 Amazon SNS 和 AWS End User Messaging SMS 对资源的访问权限。

  3. 如果您想使用选择退出,则默认的选择退出列表没有默认的资源策略。您必须在 AWS End User Messaging SMS 中手动配置资源策略才能使用 Amazon SNS API。

使用以下 IAM 策略访问 SNS 中所有与短信相关的 API:

注意

以下示例中不存在 sms-voice:SendTextMessage 和选择退出 API。

{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "sns:*", "sms-voice:CreateVerifiedDestinationPhoneNumber", "sms-voice:DeleteVerifiedDestinationPhoneNumber", "sms-voice:GetAccountTier", "sms-voice:DescribePhoneNumbers", "sms-voice:DescribeDestinationPhoneNumbers", "sms-voice:VerifyDestinationPhoneNumber", "sms-voice:DescribePhoneNumbers", "sms-voice:DescribeSpendLimits", "sms-voice:DescribeConfigurationSets", "sms-voice:SetTextMessageSpendLimitOverride", "sms-voice:UpdateRouteType", "sms-voice:UpdateSenderId" ] "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<owner account>" } } }

使用以下 IAM 策略访问 SNS 中所有与短信(直接发布)相关的功能:

{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "sns:CreateSMSSandboxPhoneNumber", "sns:DeleteSMSSandboxPhoneNumber", "sns:GetSMSSandboxPhoneNumber", "sns:ListSMSSandboxPhoneNumber", "sns:VerifySMSSandboxPhoneNumber", "sns:ListOriginationNumbers", "sns:CheckIfPhoneNumberIsOptedOut", "sns:GetSMSAttributes", "sns:SetSMSAttributes", "sns:Publish", "sms-voice:CreateVerifiedDestinationPhoneNumber", "sms-voice:DeleteVerifiedDestinationPhoneNumber", "sms-voice:GetAccountTier", "sms-voice:DescribePhoneNumbers", "sms-voice:DescribeDestinationPhoneNumbers", "sms-voice:VerifyDestinationPhoneNumber", "sms-voice:DescribePhoneNumbers", "sms-voice:DescribeSpendLimits", "sms-voice:DescribeConfigurationSets", "sms-voice:SetTextMessageSpendLimitOverride", "sms-voice:UpdateRouteType", "sms-voice:UpdateSenderId" ] "Resource": "*" }

管理自定义 Amazon SNS IAM 策略

借助自定义 IAM 策略,您可以为单个 IAM 用户、群组或角色指定权限,授予或限制对特定 AWS 资源和操作的访问权限。在管理 Amazon SNS 资源时,自定义 IAM 策略允许您根据组织的安全和运营要求定制访问权限。

按照以下步骤管理 Amazon SNS 的自定义 IAM 策略:

  1. 登录 AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 要创建新的 IAM 策略,请选择创建策略,然后选择 SNS。要编辑现有策略,请从列表中选择该策略,然后选择编辑策略

  4. 在策略编辑器中,定义访问 Amazon SNS 资源的权限。您可以根据自己的特定要求指定操作资源条件

  5. 要授予 Amazon SNS 操作的权限,请在您的 IAM 策略中加入相关的 Amazon SNS 操作,例如 sns:Publishsns:Subscribesns:DeleteTopic。定义权限适用的 Amazon SNS 主题的 ARN(Amazon 资源名称)。

  6. 指定应将策略附加到的 IAM 用户群组角色。您可以将策略直接附加到 IAM 用户或群组,也可以将其与 AWS 服务 或应用程序使用的 IAM 角色相关联。

  7. 查看 IAM 策略配置,确保其符合您的访问控制要求。验证后,保存策略更改。

  8. 自定义 IAM 策略附加到您 AWS 账户中的相关 IAM 用户、群组或角色。这会向他们授予策略中定义的用于管理 Amazon SNS 资源的权限。

基于资源的策略

Amazon SNS 基于资源的策略用于控制对短信收发资源的访问以及代表您发送消息的权限。这些策略定义了谁可以对短信收发资源执行操作,例如发送消息或管理发起身份。

通过配置基于资源的策略,您可以指定哪些 AWS 身份或账户有权使用 Amazon SNS 的短信收发功能并与之交互。这有助于限制授权用户或系统的访问权限,同时允许他们使用 Amazon SNS 提供的短信收发功能,从而确保安全性和合规性。

发起身份

当您使用 Amazon SNS 发送短信时,您可以使用发起身份向您的收件人标识自己的身份。利用以下基于资源的策略使用发起身份发送短信:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "sms-voice:SendTextMessage", "Resource": "arn:aws:sms-voice:us-east-1:555555555555:phone-number/phone-11aa2b3333c44444d55e6ffff77gggg8", "Condition": { "StringEquals": { "aws:SourceAccount": "111111111111" } } } ] }