将临时安全凭证用于 Amazon SNS - Amazon Simple Notification Service

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

将临时安全凭证用于 Amazon SNS

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

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

  • IAM 角色 — 角色用于委派对 AWS 资源的访问权限。角色可以由诸如 Amazon 实 EC2 例、Lambda 函数之类的实体或其他用户担任。 AWS 账户

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

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

您可以使用临时安全凭证对 Amazon SNS 发出请求。 SDKs 和 API 库使用这些凭据计算必要的签名来验证您的请求。凭证过期的请求将被 Amazon SNS 拒绝。

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

例 HTTPS 请求示例

以下示例演示如何使用从 AWS 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. 获取临时安全凭证 - 使用 AWS STS 担任角色或获取联合用户凭证。这将为您提供访问密钥 ID、秘密访问密钥和安全令牌。

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

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

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