向使用者授予切換角色的許可 - AWS Identity and Access Management

向使用者授予切換角色的許可

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

若要授予使用者切換到某個角色的許可,則信任帳戶的管理員會為使用者建立新政策。或者,管理員可能會編輯現有的政策,以新增必要的元素。管理員隨後可向使用者傳送連結,讓使用者進入已填寫所有詳細資訊的 Switch Role (切換角色) 頁面。或者,管理員可以為使用者提供包含角色的帳戶 ID 號或帳戶別名以及角色名稱。使用者接著前往 Switch Role (切換角色) 頁面,然後手動新增詳細資訊。有關使用者如何切換角色的詳細資訊,請參閱 切換到角色 (主控台)

請注意,您只能在以 IAM 使用者身分登入時切換角色。當您以 AWS 帳戶 根使用者身分登入時,無法切換角色。

重要

您無法將 AWS Management Console中的角色切換到需要 ExternalId 值的角色。您只能透過呼叫支援 ExternalId 參數的 AssumeRole API 來切換到此類角色。

Notes
  • 本主題討論「使用者」的政策,因為我們最終會向使用者授予完成任務的許可。但是,最佳實務為不要直接向個別使用者授予許可。為方便管理,我們建議向 IAM 群組分配政策並授予許可,然後讓使用者成為相應群組的成員。

  • 當您在 AWS Management Console 中切換角色時,主控台一律使用您的原始憑證對切換操作進行授權。無論您作為 IAM 使用者、SAML 聯合角色還是 Web 聯合身分角色登入,上述情形均適用。例如,如果您切換到 RoleA,它會使用您的原始使用者或聯合角色憑證確定是否允許您擔任 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 和角色名稱預先配置的連結,可讓使用者更輕鬆地執行操作。在 Create Role (建立角色) 精靈的最終頁面上,或在啟用跨帳戶功能之任何角色的 Role Summary (角色摘要) 頁面上,都可以看到角色連結。

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

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

我們建議您將使用者導向到 切換到角色 (主控台) 以領導他們逐步完成該過程。

Considerations

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

  • 如果您以程式設計方式建立角色,則除了 RoleName 外,您還可以新增最長 512 個字元的 Path。角色名稱長度上限為 64 個字元。但是,若要透過 AWS Management Console 中的 Switch Role (切換角色) 功能使用角色,則結合的 PathRoleName 不能超過 64 個字元。

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