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

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

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

您可以向 IAM 使用者授予許可,以便切換至您 AWS 帳戶 中的角色,或切換至您擁有的其他 AWS 帳戶 中定義的角色。

注意

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

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

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

  • 您的使用者必須使用 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 Resource Name (ARN) (對於 AWS CLI 或 AWS API 存取)。角色 ARN 類似於 arn:aws:iam::123456789012:role/UpdateApp,其中角色名為 UpdateApp,而且角色使用帳戶號碼 123456789012 所建立。

    注意

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

  2. 在開發帳戶中,管理員向開發人員群組的成員授予切換為角色的許可。執行此操作的方法是向開發人員群組授予針對 AWS Security Token Service 角色呼叫 AWS STS (AssumeRole) UpdateApp API 的許可。開發帳戶中的開發人員群組的所有 IAM 使用者現在都可以切換為生產帳戶中的 UpdateApp 角色。不在開發人員群組中的其他使用者無權切換為該角色,因此無法存取生產帳戶中的 S3 儲存貯體。

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

    • AWS 主控台:使用者選擇導覽列上的帳戶名,並選擇 Switch Role (切換角色)。使用者指定帳戶 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 呼叫中停止使用臨時憑證並使用原始憑證。

其他資源

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