将临时安全凭证用于 Amazon SNS - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将临时安全凭证用于 Amazon SNS

Amazon Identity and Access Management(IAM)允许您向需要访问您的 Amazon 资源的用户和应用程序授予临时安全凭证。这些临时安全凭证主要用于 IAM 角色和通过 SAML 和 OpenID Connect(OIDC)等行业标准协议进行联合访问。

要有效地管理对 Amazon 资源的访问权限,必须了解以下关键概念:

  • IAM 角色 – 角色用于委派对 Amazon 资源的访问权限。角色可以由 Amazon EC2 实例、Lambda 函数等实体或其他 Amazon Web Services 账户的用户担任。

  • 联合用户 - 这些用户是使用 SAML 或 OIDC 通过外部身份提供者(IdP)进行身份验证的用户。建议人类用户使用联合访问权限,而软件应用程序应使用 IAM 角色。

  • Roles Anywhere – 对于需要 Amazon 访问权限的外部应用程序,您可以使用 IAM Roles Anywhere 来安全地管理访问权限,而无需创建长期凭证。

您可以使用临时安全凭证对 Amazon SNS 发出请求。SDK 和 API 库会使用这些凭证计算必要的签名,以便对您的请求进行身份验证。凭证过期的请求将被 Amazon SNS 拒绝。

有关临时安全凭证的更多信息,请参阅《IAM 用户指南》中的使用 IAM 角色向经过外部身份验证的用户提供访问权限(身份联合验证)

例 HTTPS 请求示例

以下示例展示了如何使用从 Amazon Security Token Service(STS)获取的临时安全凭证来验证 Amazon SNS 请求。

https://sns.us-east-2.amazonaws.com/ ?Action=CreateTopic &Name=My-Topic &SignatureVersion=4 &SignatureMethod=AWS4-HMAC-SHA256 &Timestamp=2023-07-05T12:00:00Z &X-Amz-Security-Token=SecurityTokenValue &X-Amz-Date=20230705T120000Z &X-Amz-Credential=<your-access-key-id>/20230705/us-east-2/sns/aws4_request &X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
对请求进行身份验证的步骤
  1. 获取临时安全凭证 - 使用 Amazon STS 担任角色或获取联合用户凭证。这将为您提供访问密钥 ID、秘密访问密钥和安全令牌。

  2. 构造请求 – 包括您的 Amazon SNS 操作(例如,CreateTopic)所需的参数,并确保使用 HTTPS 进行安全通信。

  3. 签署请求 - 使用 Amazon 签名版本 4 流程签署您的请求。这包括创建规范请求、待签字符串,然后计算签名。有关 Amazon 签名版本 4 的更多信息,请参阅《Amazon EBS 用户指南》中的使用签名版本 4 签名

  4. 发送请求 - 在请求标头中包含 X-Amz-Security-Token,以便将临时安全凭证传递给 Amazon SNS。