Amazon Simple Queue Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用临时安全证书

除了创建自带安全凭证的 IAM 用户之外,IAM 还允许您向任何用户授予临时安全凭证,从而使该用户可以访问您的 AWS 服务和资源。您可以管理拥有 AWS 账户的用户(IAM 用户)。您还可以对系统中没有 AWS 账户的用户(联合身份用户)进行管理。此外,您创建的能访问 AWS 资源的应用程序也可被视为用户。

您可以使用上述临时安全凭证对 Amazon SQS 发出请求。API 库会使用这些凭证计算必要的签名值,以便对您的请求进行身份验证。如果您使用过期证书发送请求,Amazon SQS 会拒绝该请求。

注意

您不能基于临时凭证设置策略。

先决条件

  1. 使用 IAM 创建临时安全凭证:

    • 安全令牌

    • 访问密钥 ID

    • 秘密访问密钥

  2. 使用临时访问密钥 ID 和安全令牌准备待签字符串。

  3. 使用临时秘密访问密钥 (而不是您自己的秘密访问密钥) 对您的查询 API 请求签名。

注意

在提交已签名的查询 API 请求时,请使用临时访问密钥 ID (而不是您自己的访问密钥 ID),并且包含安全令牌。有关 IAM 对临时安全证书的支持的更多信息,请参阅 IAM 用户指南 中的授予对 AWS 资源的临时访问权限

使用临时安全凭证调用 Amazon SQS 查询 API 操作

  1. 使用 AWS Identity and Access Management 请求临时安全令牌。有关更多信息,请转到 IAM 用户指南 中的创建临时安全证书,为 IAM 用户启用访问部分。

    IAM 会返回一个安全令牌、一个访问密钥 ID 和一个秘密访问密钥。

  2. 使用临时访问密钥 ID (而不是您自己的访问密钥 ID) 准备查询,并且包含安全令牌。使用临时秘密访问密钥 (而不是您自己的秘密访问密钥) 对请求签名。

  3. 提交已使用临时访问密钥 ID 和安全令牌签名的查询字符串。

    以下示例说明如何使用临时安全证书对 Amazon SQS 请求进行身份验证。AUTHPARAMS 的结构取决于 API 请求的签名。有关更多信息,请参阅 Amazon Web Services 一般参考 中的签署 AWS API 请求

    https://sqs.us-east-2.amazonaws.com/ ?Action=CreateQueue &DefaultVisibilityTimeout=40 &QueueName=MyQueue &Attribute.1.Name=VisibilityTimeout &Attribute.1.Value=40 &Expires=2020-12-18T22%3A52%3A43PST &SecurityToken=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY &AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE &Version=2012-11-05 &AUTHPARAMS

    以下示例使用了临时安全凭证来通过 SendMessageBatch 操作发送两条消息。

    https://sqs.us-east-2.amazonaws.com/ ?Action=SendMessageBatch &SendMessageBatchRequestEntry.1.Id=test_msg_001 &SendMessageBatchRequestEntry.1.MessageBody=test%20message%20body%201 &SendMessageBatchRequestEntry.2.Id=test_msg_002 &SendMessageBatchRequestEntry.2.MessageBody=test%20message%20body%202 &SendMessageBatchRequestEntry.2.DelaySeconds=60 &Expires=2020-12-18T22%3A52%3A43PST &SecurityToken=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY &AWSAccessKeyId=AKIAI44QH8DHBEXAMPLE &Version=2012-11-05 &AUTHPARAMS