将临时安全凭证用于 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 账户

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

  • 无@@ 处不在的角色 — 对于需要 Amazon 访问权限的外部应用程序,您可以使用 IAM Roles Anywhere 来安全地管理访问权限,而无需创建长期证书。

您可以使用临时安全凭证对 Amazon SNS 发出请求。 SDKs 和 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 流程签署您的请求。这包括创建规范请求 string-to-sign,然后计算签名。有关 Amazon 签名版本 4 的更多信息,请参阅 Amazon EBS 用户指南中的使用签名版本 4 签名。

  4. 发送请求 — 包括 X-Amz-Security-Token 在您的请求标头中将临时安全证书传递给 Amazon SNS。