本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS SDKs 和工具進行身分驗證和存取
當您開發 AWS SDK 應用程式或使用 AWS 工具來使用 時 AWS 服務,您必須建立程式碼或工具的驗證方式 AWS。您可以根據程式碼執行的環境和您可用的存取權,以不同的方式設定 AWS 資源的程式設計 AWS 存取。
以下選項是登入資料提供者鏈結的一部分。這表示透過相應地設定共用 AWS config 和 credentials 檔案,您的 AWS SDK 或工具將自動探索和使用該身分驗證方法。
選擇驗證應用程式碼的方法
選擇一種方法來驗證應用程式 AWS 對 發出的呼叫。
如果您的程式碼在 上執行 AWS,登入資料可以自動提供給您的應用程式。例如,如果您的應用程式託管在 Amazon Elastic Compute Cloud 上,並且有一個與該資源相關聯的 IAM 角色,則登入資料會自動提供給您的應用程式。同樣地,如果您使用 Amazon ECS 或 Amazon EKS 容器,IAM 角色的登入資料集可以透過 SDK 的登入資料提供者鏈,由容器內執行的程式碼自動取得。
使用 IAM 角色來驗證部署到 Amazon EC2 的應用程式 – 使用 IAM 角色在 Amazon EC2 執行個體上安全地執行應用程式。
當您建立 Lambda 函數時,Lambda 會建立具有最少許可的執行角色。然後,軟體 AWS 開發套件或工具會透過 Lambda 執行環境,自動使用在執行時間連接至 Lambda 的 IAM 角色。
使用任務的 IAM 角色。您必須建立任務角色,並在 Amazon ECS 任務定義中指定該角色。軟體 AWS 開發套件或工具接著會透過 Amazon ECS 中繼資料,自動使用在執行時間指派給任務的 IAM 角色。
我們建議您使用 Amazon EKS Pod 身分。
注意:如果您認為服務帳戶 (IRSA) 的 IAM 角色可能更符合您的獨特需求,請參閱《Amazon EKS 使用者指南》中的比較 EKS Pod 身分和 IRSA。
請參閱 的專用指南 AWS 服務。當您在 上執行程式碼時 AWS,開發套件登入資料提供者鏈可以自動為您取得和重新整理登入資料。
如果您要建立需要存取的行動應用程式或用戶端型 Web 應用程式 AWS,請建置您的應用程式,以便使用 Web 聯合身分動態請求臨時 AWS 安全登入資料。
有了 Web 聯合身分,您就不需要建立自訂登入代碼,或管理您自己的使用者身分。反之,應用程式使用者可以使用知名的外部身分提供者 (IdP) 登入,例如 Login with Amazon、Facebook、Google 或任何其他與 OpenID Connect (OIDC) 相容的 IdP。他們可以接收身分驗證字符,然後交換該字符以取得 中的臨時安全登入資料 AWS ,該登入資料對應至具有許可的 IAM 角色,以使用您 中的資源 AWS 帳戶。
若要了解如何為您的 SDK 或工具設定此項目,請參閱 使用 Web 身分或 OpenID Connect 擔任角色以驗證 AWS SDKs和工具。
對於行動應用程式,請考慮使用 Amazon Cognito。Amazon Cognito 充當身分經紀人,並為您執行大部分聯合工作。如需詳細資訊,請參閱《IAM 使用者指南》中的將 Amazon Cognito 用於行動應用程式。
我們建議使用 使用 IAM Identity Center 驗證 AWS SDK 和工具。
作為安全最佳實務,我們建議您使用 AWS Organizations 搭配 IAM Identity Center 來管理所有 的存取 AWS 帳戶。您可以在 中建立使用者 AWS IAM Identity Center、使用 Microsoft Active Directory、使用 SAML 2.0 身分提供者 (IdP),或個別聯合 IdP 至 AWS 帳戶。若要檢查您的區域是否支援 IAM Identity Center,請參閱 中的AWS IAM Identity Center 端點和配額Amazon Web Services 一般參考。
(建議) 在您的目標角色中建立具有 許可的最低權限 IAM sts:AssumeRole 使用者。然後,設定您的設定檔以使用該使用者source_profile設定擔任角色。
您也可以透過環境變數或共用 AWS credentials檔案使用臨時 IAM 登入資料。請參閱 使用短期憑證來驗證 AWS SDKs和工具。
注意:在沙盒或學習環境中,您可以考慮 使用長期登入資料來驗證 AWS SDKs和工具。
是:請參閱使用 IAM Roles Anywhere 驗證 AWS SDKs和工具。您可以使用 IAM Roles Anywhere 在 IAM 中取得臨時安全登入資料,例如在 外部執行的伺服器、容器和應用程式 AWS。若要使用 IAM Roles Anywhere,您的工作負載必須使用 X.509 憑證。
使用 程序登入資料提供者 在執行時間自動擷取登入資料。這些系統可能會使用協助程式工具或外掛程式來取得登入資料,並且可能會使用 在幕後擔任 IAM 角色sts:AssumeRole。
使用透過 注入的臨時登入資料 AWS Secrets Manager。如需取得短期存取金鑰的選項,請參閱《IAM 使用者指南》中的請求臨時安全登入資料。如需存放這些臨時登入資料的選項,請參閱 AWS 存取金鑰。
您可以使用這些登入資料,安全地從 Secrets Manager 擷取更廣泛的應用程式許可,您可以在其中存放生產秘密或長期的角色型登入資料。
使用第三方供應商撰寫的文件,以取得取得登入資料的最佳指引。
是:使用環境變數和暫時 AWS STS 登入資料。
否:使用存放在加密秘密管理員 (上次排序) 中的靜態存取金鑰。
身份驗證方法
在 AWS 環境中執行之程式碼的身分驗證方法
如果您的程式碼在 上執行 AWS,登入資料可以自動提供給您的應用程式。例如,如果您的應用程式託管在 Amazon Elastic Compute Cloud 上,並且有一個與該資源相關聯的 IAM 角色,則登入資料會自動提供給您的應用程式。同樣地,如果您使用 Amazon ECS 或 Amazon EKS 容器,IAM 角色的登入資料集可以透過 SDK 的登入資料提供者鏈,由容器內執行的程式碼自動取得。
-
使用 IAM 角色來驗證部署到 Amazon EC2 的應用程式 – 使用 IAM 角色在 Amazon EC2 執行個體上安全地執行應用程式。
-
您可以使用 IAM Identity Center 以程式設計方式與 AWS 互動,方法如下:
-
使用 從主控台AWS CloudShell執行 AWS CLI 命令。
-
若要為軟體開發團隊嘗試雲端協作空間,請考慮使用 Amazon CodeCatalyst。
-
透過 Web 型身分提供者進行身分驗證 - 行動或用戶端型 Web 應用程式
如果您要建立需要存取的行動應用程式或用戶端型 Web 應用程式 AWS,請建置您的應用程式,以便使用 Web 聯合身分動態請求臨時 AWS 安全登入資料。
有了 Web 聯合身分,您就不需要建立自訂登入代碼,或管理您自己的使用者身分。反之,應用程式使用者可以使用知名的外部身分提供者 (IdP) 登入,例如 Login with Amazon、Facebook、Google 或任何其他與 OpenID Connect (OIDC) 相容的 IdP。他們可以接收身分驗證字符,然後交換該字符以取得 中的臨時安全登入資料 AWS ,該登入資料對應至具有許可的 IAM 角色,以使用您 中的資源 AWS 帳戶。
若要了解如何為您的 SDK 或工具設定此項目,請參閱 使用 Web 身分或 OpenID Connect 擔任角色以驗證 AWS SDKs和工具。
對於行動應用程式,請考慮使用 Amazon Cognito。Amazon Cognito 充當身分經紀人,並為您執行大部分聯合工作。如需詳細資訊,請參閱《IAM 使用者指南》中的將 Amazon Cognito 用於行動應用程式。
在本機執行之程式碼的身分驗證方法 (不在 中 AWS)
-
使用 IAM Identity Center 驗證 AWS SDK 和工具 – 作為安全最佳實務,我們建議您使用 AWS Organizations 搭配 IAM Identity Center 來管理所有 的存取 AWS 帳戶。您可以在 中建立使用者 AWS IAM Identity Center、使用 Microsoft Active Directory、使用 SAML 2.0 身分提供者 (IdP),或個別聯合您的 IdP AWS 帳戶。若要檢查您的區域是否支援 IAM Identity Center,請參閱 中的AWS IAM Identity Center 端點和配額Amazon Web Services 一般參考。
-
使用 IAM Roles Anywhere 驗證 AWS SDKs和工具 – 您可以使用 IAM Roles Anywhere 在 IAM 中取得臨時安全登入資料,例如在 外部執行的伺服器、容器和應用程式 AWS。若要使用 IAM Roles Anywhere,您的工作負載必須使用 X.509 憑證。
-
使用 AWS 登入資料來擔任角色以驗證 AWS SDKs和工具 – 您可以擔任 IAM 角色來暫時存取您可能無法存取 AWS 的資源。
-
使用 AWS 存取金鑰來驗證 AWS SDKs和工具 – 可能較不方便或可能會增加 AWS 資源安全風險的其他選項。
有關存取管理的詳細資訊
IAM 使用者指南提供下列有關安全控制 AWS 資源存取的資訊:
-
IAM 身分 (使用者、使用者群組和角色) – 了解其中身分的基本概念 AWS。
-
IAM 中的安全最佳實務 – 根據共同責任模型
開發 AWS 應用程式時應遵循的安全建議。
Amazon Web Services 一般參考 具有下列基本概念:
-
了解並取得您的 AWS 登入資料 – 主控台和程式設計存取的存取金鑰選項和管理實務。
要存取的 IAM Identity Center 受信任身分傳播 (TIP) 外掛程式 AWS 服務
-
使用 TIP 外掛程式存取 AWS 服務 – 如果您要為 Amazon Q Business 或其他支援受信任身分傳播的服務建立應用程式,並使用 適用於 Java 的 AWS SDK 或 適用於 JavaScript 的 AWS SDK,您可以使用 TIP 外掛程式來簡化授權體驗。
AWS 建構家 ID
您的 AWS 建構家 ID 補充 AWS 帳戶 您可能已經擁有或想要建立的任何 。雖然 AWS 帳戶 充當您建立 AWS 之資源的容器,並為這些資源提供安全界限,但 AWS 建構家 ID 代表您做為個人。您可以使用 登入 AWS 建構家 ID ,以存取開發人員工具和服務,例如 Amazon Q 和 Amazon CodeCatalyst。
-
AWS 登入 《 使用者指南》中的使用 登入 AWS 建構家 ID – 了解如何建立和使用 AWS 建構家 ID ,並了解建置器 ID 提供的內容。
-
CodeCatalyst 概念 - AWS 建構家 ID 在 Amazon CodeCatalyst 使用者指南中 - 了解 CodeCatalyst 如何使用 AWS 建構家 ID。