IAM 中的暫時安全憑證
您可以使用 AWS Security Token Service (AWS STS) 來建立並提供信任的使用者暫時安全憑證,控制對於 AWS 資源的存取。暫時性安全憑證的作用幾乎與長期存取金鑰憑證完全相同,而其差異如下:
-
暫時安全憑證是「短期」的,如其名稱所暗示。其可設定為在任何地方持續幾分鐘到幾小時不等。在憑證到期後,AWS 不再辨識它們,或允許從 API 請求對其進行的任何類型的存取。
-
暫時性安全憑證不會與使用者一起儲存,但會動態產生並在請求時提供給使用者。當暫時性安全憑證到期時 (或者即使在此之前),使用者可以請求新的憑證,只要使用者的請求仍具有可這麼做的許可。
因此,相較於長期憑證,暫時性憑證具有下列優點:
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 來管理臨時安全性憑證,您可以下載下列實施完整範例案例的範例應用程式:
-
使用 Windows Active Directory、ADFS 及 SAML 2.0 啟用針對 AWS 的聯合
。示範如何使用 Windows Active Directory (AD)、Active Directory Federation Services (ADFS) 2.0 和 SAML (安全性聲明標記語言) 2.0,將企業聯合存取權委派給 AWS。 -
使自訂身分經紀人存取 AWS 主控台。示範如何建立啟用單一登入 (SSO) 的自訂聯合代理程式,使現有 Active Directory 使用者能夠登入 AWS Management Console。
-
如何使用 Shibboleth 實現 AWS Management Console的單一登入。
。示範如何使用 Shibboleth 與 SAML 來提供使用者存取 AWS Management Console的單一登入 (SSO) 許可。
OIDC 聯合身分的範例
下列範例應用程式說明如何使用 Login with Amazon、Amazon Cognito、Facebook 或 Google 等提供商的 OIDC 聯合身分。您可以將從這些提供者獲得的身分驗證資訊做為暫時 AWS 安全憑證以存取 AWS 服務。
-
Amazon Cognito 教學課程 – 我們建議您將 Amazon Cognito 與適用於行動開發的 AWS SDK 搭配使用。Amazon Cognito 是進行行動應用程式身分管理的最便捷的方式,並提供了同步和跨裝置身分驗證等連接功能。如需有關 Amazon Cognito 的詳細資訊,請參閱 Amplify 文件 中的 Amplify 身分驗證
。
暫時性安全憑證的其他資源。
以下案例和應用程式可以指導您使用暫時性安全憑證:
-
如何將 AWS STS SourceIdentity 與您的身分提供者整合
。這篇文章向您展示如何在使用 Okta、Ping 或 OneLogin 作為 IdP 時設定 AWS STS SourceIdentity
屬性。 -
OIDC 聯合身分。本節討論如何在使用 OIDC 聯合身分和
AssumeRoleWithWebIdentity
API 時設定 IAM 角色。 -
透過 MFA 實現安全的 API 存取. 本主題說明如何使用角色來要求多重要素驗證 (MFA) 以保護您的帳戶中的敏感 API 動作。
如需有關 AWS 中的政策與許可的詳細資訊,請參閱下列主題:
-
Amazon Simple Storage Service 使用者指南中的管理 Amazon S3 資源的存取許可。
-
若要了解在您信任區域 (受信任組織或帳戶) 外帳戶中的主體是否具有擔任您角色的許可,請參閱什麼是 IAM Access Analyzer?。