在您擁有的另一個 AWS 帳戶 IAM 使用者中提供存取權 - AWS Identity and Access Management

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

在您擁有的另一個 AWS 帳戶 IAM 使用者中提供存取權

您可以授與 IAM 使用者切換到您的角色 AWS 帳戶 或您擁有的其他角色中定義 AWS 帳戶 的角色的權限。

注意

如果要授予對您未擁有或無法控制的帳戶的存取許可,請參閱本主題後面的 提供訪問由第三方 AWS 帳戶 擁有

假設您擁有一個對組織來說至關重要的 Amazon EC2 執行個體。您可以使用這些許可來建立角色,而非直接授予使用者終止執行個體的許可。然後,允許管理員可以在需要終止執行個體時切換為該角色。這麼做,可為執行個體加入以下幾層保護:

  • 您必須向使用者明確授予擔任該角色的許可。

  • 您的使用者必須使用或 API 主動切換至角色, AWS Management Console 或使用 AWS CLI 或 AWS API 擔任該角色。

  • 您可以為角色加入多重要素驗證 (MFA) 保護,僅限登入 MFA 裝置的使用者才能擔任該角色。若要了解如何配置角色以使擔任角色的使用者必須先使用多重要素驗證 (MFA) 進行身分驗證,請參閱 設定受 MFA 保護的 API 存取

我們建議使用此方法強制實施最低權限。也就是僅限於特定任務需要時,才能使用升級的許可。藉由角色,您可以幫助防止意外更改敏感環境,如果您將它們與審核合併以協助確保僅在需要時才使用角色,將會有極大幫助。

在您出於此目的建立角色時,可在該角色的信任政策的 Principal 元素中依照 ID 指定其使用者需要存取許可的帳戶。隨後可以向這些其他帳戶中的特定使用者授予切換到角色的許可。若要了解在您信任區域 (受信任組織或帳戶) 外帳戶中的主體是否具有擔任您角色的許可,請參閱什麼是 IAM Access Analyzer?

一個帳戶中的使用者可以切換為相同或不同帳戶中的角色。使用角色過程中,使用者只能執行角色允許的操作並且只能存取角色允許的資源;其原始使用者許可處於暫停狀態。使用者退出角色時,恢復原始使用者許可。

使用不同的開發和生產帳戶的範例方案

想像一下,您的組織有多個可 AWS 帳戶 以將開發環境與生產環境隔離開來。開發帳戶中的使用者有時可能需要存取生產帳戶中的資源。例如在將更新從開發環境推廣到生產環境時,可能就需要跨帳戶存取許可。儘管您可以為在兩個帳戶中工作的使用者建立單獨的身分 (和密碼),多個帳戶的憑證管理還是會為身分管理帶來難題。在以下圖表中,所有使用者都透過開發帳戶進行管理,但部分開發人員需要對生產帳戶進行有限存取。開發帳戶有兩個群組:測試人員和開發人員,每個群組有其專屬的政策。

使用角色將許可指派給在不同帳戶中的使用者
  1. 生產帳戶中的一名管理員使用 IAM 在該帳戶中建立 UpdateApp 角色。在角色中,管理員定義信任政策,該政策將開發帳戶指定為 Principal,這表示開發帳戶中的授權使用者可以使用 UpdateApp 角色。管理員也可以為角色定義許可政策,該政策指定名為 productionapp 之 Amazon S3 儲存貯體的讀取和寫入許可。

    然後,管理員將與需要擔任角色的任何人共用該角色的帳號和名稱。該資訊是角色的帳號和名稱 (針對 AWS 主控台使用者) 或 Amazon 資源名稱 (ARN) (用於 AWS CLI 或 AWS API 存取)。角色 ARN 類似於 arn:aws:iam::123456789012:role/UpdateApp,其中角色名為 UpdateApp,而且角色使用帳戶號碼 123456789012 所建立。

    注意

    管理員可以選擇是否配置角色,以便擔任角色的使用者必須先使用多重要素驗證 (MFA) 進行身分驗證。如需詳細資訊,請參閱 設定受 MFA 保護的 API 存取

  2. 在開發帳戶中,管理員向開發人員群組的成員授予切換為角色的許可。這是通過授予開發人員組調用UpdateApp角色的 AWS Security Token Service (AWS STS)AssumeRoleAPI 的權限來完成的。開發帳戶中的開發人員群組的所有 IAM 使用者現在都可以切換為生產帳戶中的 UpdateApp 角色。不在開發人員群組中的其他使用者無權切換為該角色,因此無法存取生產帳戶中的 S3 儲存貯體。

  3. 使用者請求切換為該角色:

    • AWS 控制台:用戶在導航欄上選擇帳戶名稱,然後選擇切換角色。使用者指定帳戶 ID (或別名) 和角色名稱。或者,使用者可以按一下管理員在電子郵件中發送的連結。透過該連結,使用者可以前往已填寫詳細資訊的 Switch Role (切換角色) 頁面。

    • AWS API/AWS CLI:開發帳戶「開發人員」群組中的使用者呼叫AssumeRole函數以取得角色的UpdateApp認證。使用者將 UpdateApp 角色的 ARN 指定為呼叫的一部分。如果測試人員群組中的使用者發出相同請求,請求將失敗,因為測試人員沒有針對 AssumeRole 角色 ARN 呼叫 UpdateApp 的許可。

  4. AWS STS 返回臨時憑據:

    • AWS 控制台:使用角色的信任策略 AWS STS 驗證請求,以確保請求來自受信任的實體(它是:開發帳戶)。驗證後,將暫時的安全登入資料 AWS STS傳回主 AWS 控台。

    • API/CLI:根據角色的信任策略 AWS STS 驗證請求,以確保請求來自受信任的實體(它是:開發帳戶)。驗證後,將臨時安全登入資料 AWS STS傳回應用程式。

  5. 臨時認證允許訪問資 AWS 源:

    • AWS 控制台: AWS 控制台代表用戶使用臨時憑據進行所有後續控制台操作(在此情況下)讀取和寫入productionapp值區。主控台無法存取生產帳戶中的任何其他資源。使用者退出角色時,使用者的許可恢復為切換為角色之前所擁有的原始許可。

    • API/CLI:應用程式使用臨時安全性憑證更新 productionapp 儲存貯體。應用程式只能使用臨時安全性憑證讀取和寫入 productionapp 儲存貯體,無法存取生產帳戶的任何其他資源。應用程式不必退出角色,只需在後續 API 呼叫中停止使用臨時憑證並使用原始憑證。

其他資訊

如需詳細資訊,請參閱下列內容: