

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

# 使用臨時安全登入資料搭配 Amazon SNS
<a name="sns-using-temporary-credentials"></a>

AWS Identity and Access Management (IAM) 可讓您將臨時安全登入資料授予需要存取 AWS 資源的使用者和應用程式。這些臨時安全登入資料主要用於 IAM 角色，以及透過 SAML 和 OpenID Connect (OIDC) 等產業標準通訊協定的聯合存取。

若要有效管理對 AWS 資源的存取，請務必了解下列重要概念：
+ **IAM 角色** – 角色用於委派對 AWS 資源的存取。Amazon EC2 執行個體、Lambda 函數或其他 使用者等實體可以擔任角色 AWS 帳戶。
+ **聯合身分使用者** – 這些是使用 SAML 或 OIDC 透過外部身分提供者 (IdPs) 驗證的使用者。建議人類使用者進行聯合存取，而 IAM 角色應該用於軟體應用程式。
+ **Roles Anywhere** – 對於需要 AWS 存取的外部應用程式，您可以使用 IAM Roles Anywhere 安全地管理存取，而無需建立長期憑證。

您可以使用臨時安全登入資料向 Amazon SNS 提出請求。SDKs和 API 程式庫使用這些登入資料來計算必要的簽章，以驗證您的請求。Amazon SNS 將拒絕憑證過期的請求。

如需臨時安全登入資料的詳細資訊，請參閱《[IAM 使用者指南》中的使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)和[提供存取權給外部驗證的使用者 （聯合身分）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。 **

**Example 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、私密存取金鑰和安全性字符。

1. **建構請求** – 包含 Amazon SNS 動作的必要參數 （例如 CreateTopic)，並確保您使用 HTTPS 進行安全通訊。

1. **簽署請求** – 使用 AWS Signature 第 4 版程序簽署您的請求。這包括建立正式請求、string-to-sign，然後計算簽章。如需 AWS Signature 第 4 版的詳細資訊，請參閱《*Amazon EBS 使用者指南*》中的[使用 Signature 第 4 版簽署](https://docs.aws.amazon.com/ebs/latest/userguide/ebsapis-using-sigv4.html)。

1. **傳送請求** – 在您的請求標頭X-Amz-Security-Token中包含 ，以將暫時安全登入資料傳遞至 Amazon SNS。