擔任角色 - AWS 軟體開發套件和工具

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

擔任角色

假設角色涉及使用一組臨時安全認證來存取您可能無法存取的AWS資源。這些臨時登入資料由存取金鑰 ID、私密存取金鑰和安全字符組成。要了解有關AWS Security Token Service(AWS STS)API 請求的更多信息,請參閱 AWS Security Token ServiceAPI 參考中的操作

若要將 SDK 或工具設定為擔任角色,您必須先建立或識別要擔任的特定角色。IAM 角色是由角色 Amazon 資源名稱 (ARN) 唯一識別的。角色與另一個實體建立信任關係。使用此角色的受信任實體可能是AWS 服務網頁身分識別提供者或 OIDC 或 SAML 聯盟。AWS 帳戶若要進一步了解 IAM 角色,請參閱 IAM 使用者指南中的使用 IAM 角色。

識別 IAM 角色後,如果您受到該角色的信任,您可以將 SDK 或工具設定為使用角色授與的權限。要做到這一點,要么假設 IAM 角色與網絡身份或 OpenID Connect 聯盟

假設 IAM 角色

假設角色時,會AWS STS傳回一組暫時的安全性認證。這些認證來自其他設定檔,或來自您的程式碼執行的執行個體或容器。假設角色的其他示例包括管理AWS 帳戶來自 Amazon EC2 的多個AWS 帳戶,AWS CodeCommit跨越使用或從中訪問另一個帳戶AWS CodeBuild。

步驟 1:設定 IAM 角色

若要將 SDK 或工具設定為擔任角色,您必須先建立或識別要擔任的特定角色。IAM 角色是使用角色 ARN 進行唯一識別的。角色會與其他實體建立信任關係,通常是在您的帳戶內或跨帳戶存取。若要進行設定,請參閱 IAM 使用者指南中的建立 IAM 角色。

步驟 2:設定 SDK 或工具

設定 SDK 或工具以從credential_source或取得認證source_profile

credential_source於從 Amazon ECS 容器、Amazon EC2 執行個體或環境變數取得登入資料。

source_profile於從其他設定檔取得身分證明。 source_profile也支援角色鏈結,這是設定檔的階層,其中假定的角色會用來擔任其他角色。

當您在設定檔中指定此項目時,SDK 或工具會自動為您進行對應的 AWS STS AssumeRoleAPI 呼叫。若要透過假設角色來擷取和使用臨時認證,請在共用AWSconfig檔案中指定下列組態值。如需這些設定的詳細資訊,請參閱假設角色認證提供者設定章節。

  • role_arn-從您在步驟 1 中建立的 IAM 角色

  • 設定source_profilecredential_source

  • (選用) duration_seconds

  • (選用) external_id

  • (選用) mfa_serial

  • (選用) role_session_name

下列範例顯示共用config檔案中兩種假設角色選項的組態:

role_arn = arn:aws:iam::123456789012:role/my-role-name source_profile = profile-name-with-user-that-can-assume-role
role_arn = arn:aws:iam::123456789012:role/my-role-name credential_source = Ec2InstanceMetadata

如需所有假設角色認證提供者設定的詳細資訊,請參閱本指南假設角色認證提供者中的。

與網絡身份或 OpenID Connect 聯盟

建立需要存取權的行動應用程式或以用戶端為基礎的 Web 應用程式時AWS,會針對透過公用身分識別提供者 (IdP) 驗證的聯合身分使用者AWS STS傳回一組臨時安全登入資料。公有身分提供者的範例包含 Login with Amazon、Facebook、Google 或任何與身分提供者相容的 OpenID Connect (OIDC)。使用此方法,您的使用者不需要自己的身分AWS或 IAM 身分。

如果您使用的是 Amazon Elastic Kubernetes Service,則此功能可讓您為每個容器指定不同的 IAM 角色。Kubernetes 提供將 OIDC 權杖散發至此認證提供者用來取得暫時認證的容器的功能。如需此 Amazon EKS 組態的詳細資訊,請參閱 Amazon EKS 使用者指南中的服務帳戶適用的 IAM 角色。不過,如果您的開發套件支援,我們建議您改用 Amazon EKS Pod 身分識別,以取代此選項,以取代此選項。

步驟 1:設定身分識別提供者和 IAM 角色

若要設定與外部 IdP 的聯合,請使用 IAM 身分供應商來通AWS知外部 IdP 及其組態。這會在您AWS 帳戶與外部 IdP 之間建立信任。在將 SDK 設定為使用 Web 身分權杖進行驗證之前,您必須先設定身分識別提供者 (IdP) 和用於存取它的 IAM 角色。若要進行設定,請參閱 IAM 使用者指南中的建立網頁身分角色或 OpenID Connect 同盟 (主控台)

步驟 2:設定 SDK 或工具

將 SDK 或工具配置為使用來自的 Web 身份權杖進行身AWS STS份驗證。

當您在設定檔中指定此項目時,SDK 或工具會自動為您進行對應的 AWS STS AssumeRoleWithWebIdentityAPI 呼叫。若要使用 Web 身分同盟擷取和使用臨時認證,請在共用AWSconfig檔案中指定下列組態值。如需這些設定的詳細資訊,請參閱假設角色認證提供者設定章節。

  • role_arn-從您在步驟 1 中建立的 IAM 角色

  • web_identity_token_file-來自外部 IdP

  • (選用) duration_seconds

  • (選用) role_session_name

以下是假設具有 Web 身份的角色的共享config文件配置的示例:

[profile web-identity] role_arn=arn:aws:iam::123456789012:role/my-role-name web_identity_token_file=/path/to/a/token
注意

對於行動應用程式,請考慮使用 Amazon Cognito。Amazon Cognito 充當身分識別代理人,為您完成大部分聯合會工作。不過,Amazon Cognito 身分供應商不會像其他身分供應商一樣包含在 SDK 和工具核心程式庫中。若要存取 Amazon Cognito API,請在組建中包含 Amazon Cognito 服務用戶端,或為您的開發套件或工具包含程式庫。如需使用 AWS SDK 的相關資訊,請參閱 Amazon Cognito 開發人員指南中的程式碼範例

如需所有假設角色認證提供者設定的詳細資訊,請參閱本指南假設角色認證提供者中的。