角色術語和概念 - AWS Identity and Access Management

角色術語和概念

以下是一些基本術語,可協助您開始使用角色。

角色

您可以在帳戶中建立的 IAM 身分具有特定的許可。IAM 角色與 IAM 使用者有些相似處。角色和使用者都是具備許可政策的 AWS 身分,可決定身分在 AWS 中可執行和不可執行的操作。但是,角色的目的是讓需要它的任何人可代入,而不是單獨地與某個人員關聯。此外,角色沒有與之關聯的標準長期憑證,例如密碼或存取金鑰。反之,當您擔任角色時,其會為您的角色工作階段提供臨時安全性憑證。

角色可由以下項目使用:

  • 所在 AWS 帳戶與角色相同的 IAM 使用者

  • IAM 使用者所在的 AWS 帳戶與角色不同

  • 由 AWS 提供的 Web 服務,例如 Amazon Elastic Compute Cloud (Amazon EC2)

  • 透過外部身分提供者 (IdP) 服務進行驗證的外部使用者,並且該服務與 SAML 2.0 或 OpenID Connect 或自訂建置的身分經紀人相容。

AWS 服務角色

服務會擔任的角色以代表您在您的帳戶中執行動作。當您設定部分 AWS 服務環境時,您必須定義讓服務擔任的角色。此服務角色必須包含服務存取 AWS 資源所需的所有許可。各個服務的服務角色不同,但許多都可讓您選擇許可,只要您符合該服務所記錄的需求。您可以從 IAM 內建立、修改和刪除服務角色。

EC2 執行個體的 AWS 服務角色

應用程式在 Amazon EC2 執行個體上執行的特殊類型服務角色可代為在您的帳戶中執行動作。此角色會在啟動時指派至 EC2 執行個體。在該執行個體上執行的應用程式可取得臨時安全憑證,並執行允許該角色執行的動作。如需有關使用 EC2 執行個體的服務角色的詳細資訊,請參閱 使用 IAM 角色為在 Amazon EC2 執行個體上執行的應用程式授予許可

AWS 服務連結角色

直接連結至 AWS 服務的獨特類型的服務角色。服務連結的角色由服務預先定義,並包含所有該服務代表您呼叫其他 AWS 服務所需的許可。連結的服務也定義您如何建立、修改和刪除服務連結的角色。服務可能會自動建立或刪除角色。做為服務中精靈或程序一部分,它也許可讓您建立、修改或刪除角色。或者,它可能要求您使用 IAM 來建立或刪除角色。不論何種方式,服務連結的角色可讓設定服務更為簡單,因為您不必手動新增必要的許可。

注意

如果當服務開始支援服務連結的角色時您已經在使用服務,您可能會收到一封電子郵件,宣告您帳戶中的新角色。在這種情況下,服務會自動在您的帳戶中建立服務連結的角色。您不需要採取任何動作來支援此角色,而且您不應手動刪除它。如需詳細資訊,請參閱 顯示在我的 AWS 帳戶中的新角色

如需哪些服務支援使用服務連結角色的資訊,請參閱 可搭配 IAM 運作的 AWS 服務,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。如果服務不包含建立、修改或刪除服務連結角色的文件,則您可以使用 IAM 主控台、AWS CLI 或 API。如需詳細資訊,請參閱 使用服務連結角色

角色鏈結

當您使用角色來透過 AWS CLI 或 API 擔任第二個角色時會發生角色鏈結。例如,RoleA 擁有擔任 RoleB 的許可。您可以透過在 AssumeRole API 操作中使用長期使用者憑證,啟用 User1 擔任 RoleA。這會傳回 RoleA 短期憑證。透過角色鏈結,您可以使用 RoleA 的短期憑證,啟用 User1 擔任 RoleB

當您擔任角色時,您可以傳遞工作階段標籤,並將標籤設為可轉移。可轉移工作階段標籤會傳遞到角色鏈中所有的後續工作階段。若要進一步了解工作階段標籤,請參閱 在 AWS STS 中傳遞工作階段標籤

角色鏈結會將您的 AWS CLI 或 AWS API 角色工作階段限制在最長一個小時。當您使用 AssumeRole API 操作來擔任角色時,可以使用 DurationSeconds 參數指定角色工作階段的持續時間。您可以指定參數值高達 43200 秒 (12 小時),這取決於您角色的最大工作階段持續時間設定 。然而,如果在您使用角色鏈結來擔任角色時,並提供大於一小時的 DurationSeconds 參數值,則操作失敗。

AWS 不會使用角色來處理,將許可授予 EC2 執行個體上執行的應用程式做為角色鏈結。

委派

授予許可給某人,以允許存取您控制的資源。委派涉及設定兩個帳戶間的信任。第一個是擁有資源的帳戶 (信任帳戶)。第二個是包含需要存取資源使用者的帳戶 (受信任帳戶)。受信任帳戶和信任帳戶可以是以下任何一個:

  • 相同帳戶。

  • 都在您的組織的控制之下的個別帳戶。

  • 由不同組織擁有的兩個帳戶。

若要委派許可來存取資源,您要在具有連接兩個政策的信任帳戶中建立 IAM 角色許可政策會授予角色的使用者所需的許可,以對資源執行預定的任務。信任政策會指定允許哪些受信任帳戶成員可擔任角色。

當您建立信任政策時,您無法指定萬用字元 (*) 做為委託人。信任政策會連接到信任帳戶中的角色,並且是許可的二分之一。另外一半是連接到受信任帳戶中使用者的許可政策,其允許切換為該使用者或擔任該角色 。擔任角色的使用者會暫時放棄其自己的許可,改為接受該角色的許可。當使用者退出或停止使用該角色時,會恢復原有的使用者許可。其他稱為外部 ID 的參數有助於確保在不是由相同組織控制的帳戶之間安全使用角色。

聯合

在外部身分提供者和 AWS 之間建立信任關係。使用者可以登入 Web 身分提供者,例如 Login with AmazonFacebookGoogle 或任何與 OpenID Connect (OIDC) 相容的 IdP。使用者也可以登入企業身分系統,該系統與安全性聲明標記語言 (SAML) 2.0 相容,例如 Microsoft Active Directory Federation Services。當您使用 OIDC 和 SAML 2.0 設定這些外部身分提供者與 AWS 之間的信任關係,會將該使用者指派給 IAM 角色。使用者也可以接收臨時憑證,其允許使用者存取您的 AWS 資源。

聯合身分使用者

您可以使用 AWS Directory Service、您企業使用者目錄或 Web 身分提供者現有的使用者身分,而不需要建立 IAM 使用者。這些稱為聯合身分使用者。透過身分提供者來請求存取時,AWS 會指派角色給聯合身分使用者。如需有關聯合身分使用者的詳細資訊,請參閱《IAM 使用者指南》中的聯合身分使用者和角色

信任政策

JSON 政策文件,您會在其中定義您信任擔任角色的委託人。角色信任政策是在 IAM 中連接至角色的以資源為基礎的必要政策。您在信任政策中可指定的委託人包含使用者、角色、帳戶和服務。

許可政策

使用 JSON 格式的許可文件,您會在其中定義角色可以使用哪些動作和資源。文件的撰寫會根據 IAM 政策語言的規則。

許可界限

一種進階功能,可供您使用政策,限制以身分為基礎的政策可以授予角色的最大許可。您不能將許可界限用到服務連結的角色。如需詳細資訊,請參閱 IAM 實體的許可界限

Principal

AWS 中的實體,可以執行動作和存取資源。委託人可以是 AWS 帳戶 根使用者、IAM 使用者或角色。您可以授予許可以兩種方法之一來存取資源:

  • 您可以將許可政策連接到使用者 (直接或間接透過群組) 或角色。

  • 對於那些支援資源類型政策的服務,您可以在連接到資源之政策的 Principal 元素中識別委託人。

如果您參照做為委託人的 AWS 帳戶,它通常表示在該帳戶中定義的任何委託人。

注意

您無法在角色的信任政策的 Principal 元素中使用萬用字元 (*)。

跨帳戶存取的角色

將一個帳戶中的資源存取權,授予不同帳戶中受信任委託人的角色。角色是授予跨帳戶存取的主要方式。不過,一些 AWS 服務允許您直接將政策連接到資源 (而不是使用角色做為代理)。這些稱為以資源為基礎的政策,您可以用它們來授予另一個 AWS 帳戶中的委託人資源的存取權。其中一些資源包括 Amazon Simple Storage Service (S3) 儲存貯體、S3 Glacier 保存庫、Amazon Simple Notification Service (SNS) 主題以及 Amazon Simple Queue Service (SQS) 佇列。若要了解哪些服務支援以資源為基礎的政策,請參閱 可搭配 IAM 運作的 AWS 服務。如需有關以資源為基礎的政策詳細資訊,請參閱 IAM 角色與基於資源的政策有何差異