

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用臨時安全憑證搭配 Amazon SQS
<a name="sqs-using-temporary-security-credentials"></a>

除了使用自己的安全登入資料建立使用者之外，IAM 也可讓您將臨時安全登入資料授予任何使用者，讓使用者存取您的 AWS 服務和資源。您可以管理擁有 AWS 帳戶的使用者。您也可以為沒有 的系統管理使用者 AWS 帳戶 （聯合身分使用者）。此外，您為存取 AWS 資源而建立的應用程式也可以被視為「使用者」。

您可以使用這些臨時安全憑證，對 Amazon SQS 提出請求。API 程式庫會使用這些憑證來運算出必要的簽章值，以驗證您的請求。若使用過期的憑證傳送請求，Amazon SQS 會拒絕該請求。

**注意**  
您不能根據臨時憑證來設定政策。

## 先決條件
<a name="temporary-security-credentials-prerequisites"></a>

1. 使用 IAM 建立臨時安全憑證：
   + 安全權杖
   + 存取金鑰 ID
   + 私密存取金鑰

1. 準備您的登入字串搭配臨時存取金鑰 ID 和安全權杖。

1. 請使用臨時私密存取金鑰，而不是您自己的私密存取金鑰來簽署查詢 API 請求。

**注意**  
當您提交已簽署的查詢 API 請求，請使用臨時存取金鑰 ID 而不是自己的存取金鑰 ID，並包含安全權杖。如需暫時安全登入資料之 IAM 支援的詳細資訊，請參閱《*IAM 使用者指南*》中的[授予 AWS 資源的暫時存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/TokenBasedAuth.html)。

## 若要使用臨時安全憑證呼叫 Amazon SQS 查詢 API 動作
<a name="temporary-security-credentials-query-api"></a>

1. 使用 請求臨時安全字符 AWS Identity and Access Management。如需詳細資訊，請參閱《[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/CreatingSessionTokens.html)》中的*建立臨時安全登入資料以啟用 IAM 使用者的存取權*。

   IAM 會傳回安全權杖、存取金鑰 ID 和私密存取金鑰。

1. 請使用臨時存取金鑰 ID (而不是自己的存取金鑰 ID) 來準備查詢，並包含安全權杖。使用臨時私密存取金鑰 (而不是您自己的金鑰) 簽署您的請求。

1. 使用臨時存取金鑰 ID 和安全權杖來提交已簽署的查詢字串。

   以下範例示範如何使用臨時安全憑證，來驗證 Amazon SQS 請求。{{`AUTHPARAMS`}} 的結構取決於 API 請求的簽署。如需詳細資訊，請參閱《*Amazon Web Services 一般參考*》中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

   ```
   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}}
   ```