本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将临时安全凭证用于 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>
对请求进行身份验证的步骤
-
获取临时安全凭证 - 使用 Amazon STS 担任角色或获取联合用户凭证。这将为您提供访问密钥 ID、秘密访问密钥和安全令牌。
-
构造请求 — 包括您的 Amazon SNS 操作所需的参数(例如 CreateTopic),并确保使用 HTTPS 进行安全通信。
-
签署请求 - 使用 Amazon 签名版本 4 流程签署您的请求。这包括创建规范请求 string-to-sign,然后计算签名。有关 Amazon 签名版本 4 的更多信息,请参阅 Amazon EBS 用户指南中的使用签名版本 4 签名。
-
发送请求 — 包括 X-Amz-Security-Token 在您的请求标头中将临时安全证书传递给 Amazon SNS。