IAM 中的暫時安全憑證 - AWS Identity and Access Management

IAM 中的暫時安全憑證

您可以使用 AWS Security Token Service (AWS STS) 來建立並提供信任的使用者暫時安全憑證,控制對於 AWS 資源的存取。暫時性安全憑證的作用幾乎與長期存取金鑰憑證完全相同,而其差異如下:

  • 暫時安全憑證是「短期」的,如其名稱所暗示。其可設定為在任何地方持續幾分鐘到幾小時不等。在憑證到期後,AWS 不再辨識它們,或允許從 API 請求對其進行的任何類型的存取。

  • 暫時性安全憑證不會與使用者一起儲存,但會動態產生並在請求時提供給使用者。當暫時性安全憑證到期時 (或者即使在此之前),使用者可以請求新的憑證,只要使用者的請求仍具有可這麼做的許可。

因此,相較於長期憑證,暫時性憑證具有下列優點:

  • 您不必隨應用程式散發或內嵌長期 AWS 安全憑證。

  • 您可以提供 AWS 資源存取給使用者,而不必為其定義 AWS 身分。臨時憑證是角色聯合身分的基礎。

  • 臨時安全憑證的存留期有限,因此當不再需要時,您不需要更新它們或明確予以撤銷。暫時性安全憑證到期之後,就無法重複使用。您可以指定憑證的有效期,達到最長限制。

AWS STS 和 AWS 區域

AWS STS 所產生暫時性安全憑證。根據預設,AWS STS 是具有位於 https://sts.amazonaws.com 單一端點的全域服務。不過,您也可以選擇對任何支援的區域的端點發出 AWS STS API 呼叫。這可透過從地理位置較靠近您的區域的伺服器傳送請求,來降低延遲發生機率 (伺服器延遲)。無論您的憑證來自哪個區域,都能全域使用。如需詳細資訊,請參閱 在 AWS STS 中管理 AWS 區域

暫時性憑證的常見案例

暫時性憑證在涉及聯合身分、委派、跨帳戶存取和 IAM 角色的案例中非常有用。

聯合身分

您可以管理 AWS 以外的外部系統中的使用者身分,以及授予從那些系統登入的使用者存取權,以執行 AWS 任務和存取您的 AWS 資源。IAM 支援兩種類型的聯合身分。在這兩種情況下,身分均儲存在 AWS 以外。差別是外部系統所在地點是您的資料中心或外部第三方的 Web 上。若要比較聯合身分的臨時安全憑證的功能,請參閱比較 AWS STS 憑證

如需關於外部身分提供者的詳細資訊,請參閱身分提供者與聯合

  • OpenID Connect (OIDC) 聯合身分:您可以讓使用者使用知名第三方身分提供者 (例如,Login with Amazon、Facebook、Google,或任何適用於您的行動或 Web 應用程式的與 OIDC 2.0 相容的提供者) 登入,您無需建立自訂登入代碼或管理您自己的使用者身分。使用 OIDC 聯合身分可協助確保您 AWS 帳戶的安全,因為您不必針對您的應用程式發布長期安全憑證,例如 IAM 使用者存取金鑰。如需詳細資訊,請參閱OIDC 聯合身分

    AWS STS OIDC 聯合身分支援 Login with Amazon、Facebook、Google 和任何與 OpenID Connect (OIDC) 相容的身分提供者。

    注意

    對於行動應用程式,我們建議您使用 Amazon Cognito。您可以將此服務與 AWS SDK 搭配使用於行動開發之上,為使用者建立唯一的身分並進行驗證,以安全存取您的 AWS 資源。Amazon Cognito 支援與 AWS STS 相同的身分提供者,也支援未經驗證的 (訪客) 存取並可讓您在使用者登入時遷移使用者資料。Amazon Cognito 還提供 API 操作以同步使用者資料,如此可在使用者於不同裝置之間移動時進行保留。如需詳細資訊,請參閱 Amplify 文件 中的 Amplify 身分驗證

  • SAML 聯合身分:您可以驗證您組織網路中的使用者,然後提供那些使用者 AWS 的存取權,而無需為其建立新的 AWS 身分並要求他們使用其他登入資料登入。這又稱為以單一登入進行暫時存取的方式。AWS STS 支援開放標準 (例如安全聲明標記語言 (SAML) 2.0),讓您可以搭配 Microsoft AD FS 使用它來利用您的 Microsoft Active Directory。您也可以使用 SAML 2.0 來管理您自己的聯合使用者身分的解決方案。如需詳細資訊,請參閱 SAML 2.0 聯合身分

    • 自訂聯合經紀人 – 您可以使用您組織的身分驗證系統,來授予 AWS 資源的存取。如需範例案例,請參閱使自訂身分經紀人存取 AWS 主控台

    • 使用 SAML 2.0 的聯合 – 您可以使用您組織的身分驗證系統和 SAML,來授予 AWS 資源的存取。如需詳細資訊和範例案例,請參閱 SAML 2.0 聯合身分

跨帳戶存取的角色

許多組織維護多個 AWS 帳戶。您可以使用角色和跨帳戶存取,來定義一個帳戶中的使用者身分,並使用那些身分來存取屬於您組織的其他帳戶中的 AWS 資源。這就是所謂暫時存取的「委派」方法。如需有關建立跨帳戶角色的詳細資訊,請參閱 建立角色以將許可委派給 IAM 使用者。若要了解在您信任區域 (受信任組織或帳戶) 外帳戶中的主體是否具有擔任您角色的許可,請參閱什麼是 IAM Access Analyzer?

Amazon EC2 的角色

如果您在 Amazon EC2 執行個體上執行應用程式,並且那些應用程式需要存取 AWS 資源,則您可以在您啟動它們時提供暫時安全憑證。這些暫時性安全憑證可供在執行個體上執行的所有應用程式使用,因此您不需要在執行個體上儲存任何長期憑證。如需詳細資訊,請參閱使用 IAM 角色為在 Amazon EC2 執行個體上執行的應用程式授予許可

若要進一步了解 IAM Amazon EC2 角色憑證,請參閱 Amazon Elastic Compute Cloud User Guide 中的 IAM roles for Amazon EC2

其他 AWS 服務

您可以使用暫時性安全性憑證來存取大多數的 AWS 服務。如需接受暫時性安全性憑證的服務的清單,請參閱可搭配 IAM 運作的 AWS 服務

使用臨時憑證的應用程式範例

您可以使用 AWS Security Token Service (AWS STS) 來建立並提供信任的使用者暫時安全憑證,控制對於 AWS 資源的存取。如需有關 AWS STS 的詳細資訊,請參閱 IAM 中的暫時安全憑證。如需了解如何使用 AWS STS 來管理臨時安全性憑證,您可以下載下列實施完整範例案例的範例應用程式:

OIDC 聯合身分的範例

下列範例應用程式說明如何使用 Login with Amazon、Amazon Cognito、Facebook 或 Google 等提供商的 OIDC 聯合身分。您可以將從這些提供者獲得的身分驗證資訊做為暫時 AWS 安全憑證以存取 AWS 服務。

  • Amazon Cognito 教學課程 – 我們建議您將 Amazon Cognito 與適用於行動開發的 AWS SDK 搭配使用。Amazon Cognito 是進行行動應用程式身分管理的最便捷的方式,並提供了同步和跨裝置身分驗證等連接功能。如需有關 Amazon Cognito 的詳細資訊,請參閱 Amplify 文件 中的 Amplify 身分驗證

以下案例和應用程式可以指導您使用暫時性安全憑證:

如需有關 AWS 中的政策與許可的詳細資訊,請參閱下列主題: