使用臨時安全登入資料搭配 Amazon SNS - Amazon Simple Notification Service

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

使用臨時安全登入資料搭配 Amazon SNS

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 請求範例

下列範例示範如何使用從 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、私密存取金鑰和安全性字符。

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

  3. 簽署請求 – 使用 AWS Signature 第 4 版程序簽署您的請求。這包括建立正式請求、string-to-sign,然後計算簽章。如需 AWS Signature 第 4 版的詳細資訊,請參閱《Amazon EBS 使用者指南》中的使用 Signature 第 4 版簽署

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