Amazon Simple Queue Service
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用临时安全凭证

除了创建自带安全凭证的 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 请求的方式。有关签名版本 4 中 AUTHPARAMS 的信息,请参阅已签名的签名版本 4 请求示例

    Copy
    http://sqs.us-east-2.amazonaws.com/ ?Action=CreateQueue &DefaultVisibilityTimeout=40 &QueueName=testQueue &Attribute.1.Name=VisibilityTimeout &Attribute.1.Value=40 &Version=2012-11-05 &Expires=2015-12-18T22%3A52%3A43PST &SecurityToken=EXAMPLE_SECURITY_TOKEN &AWSAccessKeyId=EXAMPLE_ACCESS_KEY_ID_PROVIDED_BY_AWS_SECURITY_TOKEN_SERVICE &AUTHPARAMS

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

    Copy
    http://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 &Version=2012-11-05 &Expires=2015-12-18T22%3A52%3A43PST &SecurityToken=EXAMPLE_SECURITY_TOKEN &AWSAccessKeyId=EXAMPLE_ACCESS_KEY_ID_PROVIDED_BY_AWS_SECURITY_TOKEN_SERVICE &AUTHPARAMS