本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM 角色是您可以在帳戶中建立的另一種 IAM 身分,具有特定的許可。IAM 角色類似於 IAM 使用者,因為同樣是 AWS 身分,也有許可政策可決定該身分在 AWS 中可執行和不可執行的操作。但是,角色的目的是讓需要它的任何人可代入,而不是單獨地與某個人員關聯。此外,角色沒有與之關聯的標準長期憑證,例如密碼或存取金鑰。反之,當您擔任角色時,其會為您的角色工作階段提供臨時安全性憑證。
您可以使用角色來提供通常無權存取您的 AWS 資源的使用者、應用程式或服務存取許可。例如,您可能需要向您 AWS 帳戶中的使用者授予對他們通常不擁有的資源存取許可,或是向一個 AWS 帳戶 的用戶授予對另一個帳戶中資源的存取許可。或者,您可能需要允許行動應用程式使用 AWS 資源,但是不希望將 AWS 索引鍵嵌入在應用程式中 (在其中難以更新索引鍵,而且使用者可能會擷取它們)。有時,您需要提供已經具有在 AWS 外部 (例如,在您的企業目錄中) 定義身分的使用者對 AWS 的存取許可。或者,您可能需要向第三方授予存取您帳戶的許可,讓他們可以對您的資源執行稽核。
對於這些情況,您可以使用 IAM 角色來指派存取權限給 AWS 資源。本節介紹各種角色和它們的不同使用方式,如何從不同方式中選出適合的時機與方法,以及如何建立、管理、切換到 (或擔任) 和刪除角色。
注意
在您第一次建立 AWS 帳戶 時,系統預設不會建立任何角色。為帳戶新增服務時,這些服務可能會新增服務連結角色,以支援其使用案例。
服務連結角色是一種連結到 AWS 服務 的服務角色類型。服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的 AWS 帳戶 中,並由該服務所擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。
在您刪除服務連結角色之前,您必須先刪除這些角色的相關資源。如此可保護您 的資源,避免您不小心移除資源的存取許可。
如需哪些服務支援使用服務連結角色的資訊,請參閱 AWS 使用 IAM 的 服務,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。
何時建立 IAM 使用者 (而不是角色)
建議您僅將 IAM 使用者用於聯合身分使用者不支援的使用案例。以下是部分使用案例:
-
無法使用 IAM 角色的工作負載 - 您可以從需要存取 AWS 的位置執行工作負載。在某些情況下,您無法使用 IAM 角色提供暫時性憑證,例如針對 WordPress 外掛程式。在這些情況下,請將 IAM 使用者長期存取金鑰用於該工作負載,對 AWS 進行身分驗證。
-
第三方 AWS 用戶端:如果您正使用不支援使用 IAM Identity Center 進行存取的工具,例如第三方 AWS 用戶端或不在 AWS 上託管的廠商,請使用 IAM 使用者長期存取金鑰。
-
AWS CodeCommit 存取 – 如果您正使用 CodeCommit 儲存程式碼,則可以搭配 CodeCommit 的 SSH 金鑰或服務特定憑證使用 IAM 使用者,以便對您儲存庫進行身分驗證。除了將 IAM Identity Center 中的使用者用於一般身分驗證之外,我們也建議您這樣做。IAM Identity Center 中的使用者是您員工中需要存取 AWS 帳戶 或雲端應用程式的人員。若要將您 CodeCommit 儲存庫的存取權授予使用者,而不設定 IAM 使用者,您可以設定 git-remote-codecommit 公用程式。如需 IAM 和 CodeCommit 的詳細資訊,請參閱 CodeCommit 的 IAM 憑證:Git 憑證、SSH 金鑰和 AWS 存取金鑰。如需設定 git-remote-codecommit 公用程式的詳細資訊,請參閱《AWS CodeCommit 使用者指南》中的使用輪換憑證連線到 AWS CodeCommit 儲存庫。
-
Amazon Keyspaces (適用於 Apache Cassandra) 存取 – 在無法使用 IAM Identity Center 中的使用者的情況下,例如為了測試 Cassandra 相容性,您可以將 IAM 使用者搭配服務特定憑證使用,以便使用 Amazon Keyspaces 進行身分驗證。IAM Identity Center 中的使用者是您員工中需要存取 AWS 帳戶 或雲端應用程式的人員。您也可以使用暫時性憑證連線到 Amazon Keyspaces。如需詳細資訊,請參閱《Amazon Keyspaces (適用於 Apache Cassandra) 開發人員指南》中的透過 IAM 角色和 SigV4 外掛程式使用暫時性憑證連線到 Amazon Keyspaces。
-
緊急存取:無法存取身分提供者且必須在 AWS 帳戶 中採取動作的情況下。您可以將建立緊急存取 IAM 使用者列入彈性計劃中的一環。建議您使用多重要素驗證 (MFA) 嚴格控管緊急使用者憑證並加以保護。
角色術語和概念
以下是一些基本術語,可協助您開始使用角色。
- Role
-
您可以在帳戶中建立的 IAM 身分具有特定的許可。IAM 角色與 IAM 使用者有些相似處。角色和使用者都是具備許可政策的 AWS 身分,可決定身分在 AWS 中可執行和不可執行的操作。但是,角色的目的是讓需要它的任何人可代入,而不是單獨地與某個人員關聯。此外,角色沒有與之關聯的標準長期憑證,例如密碼或存取金鑰。反之,當您擔任角色時,其會為您的角色工作階段提供臨時安全性憑證。
角色可由以下項目擔任:
-
相同 AWS 帳戶或另一個 AWS 帳戶中的 IAM 使用者
-
相同帳戶中的 IAM 角色
-
服務主體,用於 AWS 服務和功能,例如:
-
可讓您在運算服務上執行程式碼的服務,例如 Amazon EC2 或 AWS Lambda
-
代表您對資源執行動作的功能,例如 Amazon S3 物件複寫
-
將臨時安全憑證交付至在 AWS 外部執行的應用程式的服務,例如 IAM Roles Anywhere 或 Amazon ECS Anywhere
-
-
透過外部身分提供者 (IdP) 服務進行驗證的外部使用者,並且該服務與 SAML 2.0 或 OpenID Connect 相容
-
- AWS 服務角色
-
服務角色是服務擔任的 IAM 角色,可代您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以委派許可權給 AWS 服務。
- AWS 服務連結角色
-
服務連結角色是一種連結到 AWS 服務 的服務角色類型。服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的 AWS 帳戶 中,並由該服務所擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。
注意
如果當服務開始支援服務連結的角色時您已經在使用服務,您可能會收到一封電子郵件,宣告您帳戶中的新角色。在這種情況下,服務會自動在您的帳戶中建立服務連結的角色。您不需要採取任何動作來支援此角色,而且您不應手動刪除它。如需詳細資訊,請參閱 顯示在我的 AWS 帳戶中的新角色。
如需哪些服務支援使用服務連結角色的資訊,請參閱 AWS 使用 IAM 的 服務,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。如需詳細資訊,請參閱建立服務連結角色。
- 角色鏈結
-
當您使用角色來透過 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
參數值,則操作失敗。 - 委派
-
授予許可給某人,以允許存取您控制的資源。委派涉及設定兩個帳戶間的信任。第一個是擁有資源的帳戶 (信任帳戶)。第二個是包含需要存取資源使用者的帳戶 (受信任帳戶)。受信任帳戶和信任帳戶可以是以下任何一個:
-
相同帳戶。
-
都在您的組織的控制之下的個別帳戶。
-
由不同組織擁有的兩個帳戶。
若要委派許可來存取資源,您要在具有連接兩個政策的信任帳戶中建立 IAM 角色。許可政策會授予角色的使用者所需的許可,以對資源執行預定的任務。信任政策會指定允許哪些受信任帳戶成員可擔任角色。
建立信任政策時,您無法在主體元素中指定萬用字元 (*) 做為 ARN 的一部分。信任政策會連接到信任帳戶中的角色,並且是許可的二分之一。另外一半是連接到受信任帳戶中使用者的許可政策,其允許切換為該使用者或擔任該角色 。擔任角色的使用者會暫時放棄其自己的許可,改為接受該角色的許可。當使用者退出或停止使用該角色時,會恢復原有的使用者許可。其他稱為外部 ID 的參數有助於確保在不是由相同組織控制的帳戶之間安全使用角色。
-
- 信任政策
-
JSON 政策文件,您會在其中定義您信任擔任角色的主體。角色信任政策是在 IAM 中連接至角色的以資源為基礎的必要政策。您在信任政策中可指定的主體包含使用者、角色、帳戶和服務。
- 跨帳戶存取的角色
-
將一個帳戶中的資源存取權,授予不同帳戶中受信任主體的角色。角色是授予跨帳戶存取權的主要方式。不過,一些 AWS 服務允許您直接將政策連接到資源 (而不是使用角色做為代理)。這些稱為以資源為基礎的政策,您可以用它們來授予另一個 AWS 帳戶 中的主體資源的存取權。其中一些資源包括 Amazon Simple Storage Service (S3) 儲存貯體、S3 Glacier 保存庫、Amazon Simple Notification Service (SNS) 主題以及 Amazon Simple Queue Service (SQS) 佇列。若要了解哪些服務支援以資源為基礎的政策,請參閱 AWS 使用 IAM 的 服務。如需有關以資源為基礎的政策詳細資訊,請參閱 IAM 中的跨帳戶資源存取。
其他資源
下列資源可協助您進一步了解與 IAM 角色相關的 IAM 術語。
-
主體是 AWS 中的實體,可以執行動作和存取資源。主體可以是 AWS 帳戶根使用者、IAM 使用者或角色。代表 AWS 服務身分的主體是服務主體。使用角色信任政策中的 Principal 元素,來定義您信任能夠擔任角色的主體。
如需您可以允許擔任角色之主體的詳細資訊和範例,請參閱 AWS JSON 政策元素: Principal。
-
聯合身分會在外部身分提供者和 AWS 之間建立信任關係。您可以使用現有的 OpenID Connect (OIDC) 或安全性聲明標記語言 (SAML) 2.0 提供者來管理誰可以存取 AWS 資源。當您使用 OIDC 和 SAML 2.0 設定這些外部身分提供者與 AWS 之間的信任關係,會將該使用者指派給 IAM 角色。使用者也可以接收臨時憑證,其允許使用者存取您的 AWS 資源。
如需有關聯合身分使用者的詳細資訊,請參閱 身分提供者與聯合。
-
聯合身分使用者是來自 AWS Directory Service、您的企業使用者目錄或 OIDC 提供者的現有身分。這些稱為聯合身分使用者。透過身分提供者身分提供者來請求存取時,AWS 會指派角色給聯合身分使用者。
如需有關聯合身分使用者的詳細資訊,請參閱 聯合身分使用者和角色。
-
許可政策是身分型政策,可定義角色可以使用的動作和資源。文件的撰寫會根據 IAM 政策語言的規則。
如需詳細資訊,請參閱IAM JSON 政策參考。
-
許可界限是一種進階功能,可供您使用政策,限制身分型政策可以授予角色的最大許可。您不能將許可界限用到服務連結的角色。
如需詳細資訊,請參閱IAM 實體的許可界限。