授與使用者切換角色的權限 - AWS Identity and Access Management

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

授與使用者切換角色的權限

當管理員建立用於跨帳戶存取的角色時,他們會在擁有角色和資源的帳戶 (信任帳戶) 和包含使用者的帳戶 (可信帳戶) 之間建立信任。若要執行此操作,信任帳戶的系統管理員要在角色的信任政策中將可信的帳戶編號指定為 Principal。這可能會允許可信帳戶中的任何使用者擔任該角色。要完成設定,信任帳戶的管理員必須為該帳戶中的特定群組或使用者提供切換到該角色的許可。

要授予許可以切換到角色
  1. 身為可信帳戶的管理員,請為使用者建立新政策,或編輯現有政策來新增必要元素。如需詳細資訊,請參閱 建立或編輯政策

  2. 然後,選擇您想要如何共享角色資訊:

    • 角色連結:向使用者傳送連結,讓他們進入已填寫所有詳細資訊的 Switch Role (切換角色) 頁面。

    • 帳戶 ID 或別名:為每個使用者提供角色名稱以及帳戶 ID 號碼或帳戶別名。使用者接著前往 Switch Role (切換角色) 頁面,然後手動新增詳細資訊。

    如需詳細資訊,請參閱 提供資訊給使用者

請注意,只有當您以IAM使用者、同盟角色或網頁識別SAML聯合角色身分登入時,才能切換角色。如果您以 AWS 帳戶根使用者登入,則無法切換角色。

重要

您無法將中的角色切換 AWS Management Console 到需要ExternalId值的角色。您只能透過呼叫支援ExternalId參數的方式切換到這類角色。AssumeRoleAPI

備註
  • 本主題討論使用者的政策,因為您最終會向使用者授予完成任務的許可。不過,我們不建議您直接向個別使用者授予許可。當使用者擔任角色時,他們會被指派得到與該角色關聯的許可。

  • 當您在中切換角色時 AWS Management Console,主控台一律會使用您的原始認證來授權交換器。無論您是以IAM使用者身分登入、以同盟角色身分登入,還是以網路識別SAML聯合角色身分登入,都適用此選項。例如,如果您切換到 RoleA,則IAM會使用原始使用者或同盟角色認證來判斷是否允許您採用 RoleA。如果您在使用 RoleA 時嘗試切換到 RoleB,仍會使用您的原始使用者或聯合身分角色憑證對您切換到 RoleB 的嘗試進行授權。RoleA 的憑證不會用於此動作。

建立或編輯政策

授予使用者擔任角色的許可政策必須包含在下列項目中擁有 Allow 效果的陳述式:

  • sts:AssumeRole 動作

  • Resource元素中角色的 Amazon 資源名稱(ARN)

取得政策的使用者被允許在所列資源上切換角色 (無論是透過群組成員還是直接連接)。

注意

如果 Resource 已設定為 *,則使用者可以在信任使用者帳戶的任何帳戶中擔任任何角色。(換句話說,角色的信任政策會將使用者的帳戶指定為 Principal)。我們建議您遵循最小權限原則,并僅為用戶需要的角色指定完整ARN的角色。

以下範例顯示一個政策,該政策僅允許使用者擔任一個帳戶中的角色。此外,政策使用萬用字元 (*) 指定,如果角色名稱以字元 Test 開頭並後跟任何其他字元組合,則使用者只能切換到該帳戶中的角色。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account-id:role/Test*" } }
注意

角色向使用者授予的許可不會新增到使用者已獲得的許可。當使用者切換到某個角色時,使用者可臨時放棄其原始許可以換取由該角色授予的許可。使用者退出該角色時,將自動恢復原始使用者許可。例如,假設使用者的許可允許使用 Amazon EC2 執行個體,但角色的許可政策不會授予這些許可。在這種情況下,使用者在使用角色時,無法在主控台中使用 Amazon EC2 執行個體。此外,透過以程式設計方式取得的臨時登入資料AssumeRole不適用於 Amazon EC2 執行個體。

提供資訊給使用者

建立一個角色並向使用者授予切換為該角色的許可後,您必須提供使用者下列項目:

  • 角色的名稱

  • 包含角色的帳戶 ID 或別名

您可以向使用者發送使用帳戶 ID 和角色名稱預先配置的連結,以簡化他們的存取操作。完成建立角色精靈後,您可以選取檢視角色橫幅,或在任何跨帳戶啟用之角色的角色摘要頁面上查看角色連結。

您還可使用以下格式來手動建構連結。請用您的帳戶 ID 或別名及角色名稱來替換下列範例中的兩個參數:

https://signin.aws.amazon.com/switchrole?account=your_account_ID_or_alias&roleName=optional_path/role_name

我們建議您將使用者導向到 從使用者切換到IAM角色 (主控台),以便向他們演練該過程。若要排除您在擔任角色時可能遇到的常見問題,請參閱 我無法擔任角色

考量事項
  • 如果您以程式設計方式建立角色,則可使用路徑以及名稱來建立角色。如果您這麼做,則必須為您的使用者提供完整的路徑和角色名稱以便在 AWS Management Console的 Switch Role (切換角色) 頁面上輸入。例如:division_abc/subdivision_efg/role_XYZ

  • 如果您以程式設計方式建立角色,則除了 RoleName 外,您還可以新增最長 512 個字元的 Path。角色名稱長度上限為 64 個字元。不過,若要將角色與中的「切換角色」功能搭配使用 AWS Management Console,則合併PathRoleName不能超過 64 個字元。

  • 基於安全考量,您可以檢閱 AWS CloudTrail 記錄檔以瞭解中執行動作的人員 AWS。您可以使用角色信任政策中的 sts:SourceIdentity 條件金鑰,請求使用者在擔任角色時指定身分。例如,您可以要求使IAM用者將自己的使用者名稱指定為其來源身分識別。這可以協助您判斷哪位使用者在 AWS中執行了特定動作。如需詳細資訊,請參閱sts:SourceIdentity。您亦可以使用 sts:RoleSessionName,請求使用者在擔任角色時指定工作階段名稱。當不同的主體使用角色時,這可協助您區分角色工作階段。