本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM 角色
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 來存放程式碼,則可以使用具有 SSH金鑰或服務特定憑證IAM的使用者 CodeCommit ,以對您的儲存庫進行身分驗證。除了在 IAM Identity Center 中使用使用者進行一般身分驗證之外,建議您這麼做。IAM Identity Center 中的使用者是您人力中需要存取您的 AWS 帳戶 或雲端應用程式的人員。若要讓使用者存取 CodeCommit 您的儲存庫而不設定IAM使用者,您可以設定git-remote-codecommit公用程式。如需 IAM和 的詳細資訊 CodeCommit,請參閱 IAM認證 CodeCommit: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 帳戶 或另一個 中的IAM使用者 AWS 帳戶
-
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。如需詳細資訊,請參閱 使用者指南 中的建立角色以將許可委派給 AWS 服務 。 IAM
- AWS 服務連結角色
-
服務連結角色是連結至 的服務角色類型 AWS 服務。服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的 中 AWS 帳戶 ,並由 服務擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。
注意
如果當服務開始支援服務連結的角色時您已經在使用服務,您可能會收到一封電子郵件,宣告您帳戶中的新角色。在這種情況下,服務會自動在您的帳戶中建立服務連結的角色。您不需要採取任何動作來支援此角色,而且您不應手動刪除它。如需詳細資訊,請參閱 顯示在我的 AWS 帳戶中的新角色。
如需哪些服務支援使用服務連結角色的資訊,請參閱 AWS 使用 的 服務 IAM,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。如需詳細資訊,請參閱建立服務連結角色。
- 角色鏈結
-
角色鏈結是指使用角色透過 AWS CLI 或 擔任第二個角色API。例如,
RoleA
擁有擔任RoleB
的許可。您可以在 操作中使用RoleA
其長期使用者憑證,以啟用 User1 AssumeRole API擔任 。這會傳回RoleA
短期憑證。透過角色鏈結,您可以使用RoleA
的短期憑證,啟用 User1 擔任RoleB
。當您擔任角色時,您可以傳遞工作階段標籤,並將標籤設為可轉移。可轉移工作階段標籤會傳遞到角色鏈中所有的後續工作階段。若要進一步了解工作階段標籤,請參閱 在 中傳遞工作階段標籤 AWS STS。
角色鏈結將您的 AWS CLI 或 AWS API角色工作階段限制為最多一小時。當您使用 AssumeRoleAPI操作擔任角色時,您可以使用
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 服務身分的委託人是服務委託人 。使用角色信任政策中的主體元素來定義您信任擔任角色的主體。
如需您可以允許擔任角色之主體的詳細資訊和範例,請參閱 AWS JSON政策元素:Principal。
-
身分聯合會在外部身分提供者與 之間建立信任關係 AWS。您可以使用現有的 OpenID Connect (OIDC) 或安全宣告標記語言 (SAML) 2.0 供應商來管理誰可以存取 AWS 資源。當您使用 SAML OIDC和 2.0 設定這些外部身分提供者與 之間的信任關係時 AWS ,系統會將使用者指派給IAM角色。使用者也可以接收臨時憑證,其允許使用者存取您的 AWS 資源。
如需有關聯合身分使用者的詳細資訊,請參閱 身分提供者與聯合。
-
聯合使用者是來自 AWS Directory Service、您的企業使用者目錄或OIDC提供者的現有身分。這些稱為聯合身分使用者 。當透過身分提供者 請求存取時, 會將角色 AWS 指派給聯合身分使用者。
如需有關聯合身分使用者的詳細資訊,請參閱 聯合身分使用者和角色。
-
許可政策是以身分為基礎的政策,定義角色可以使用的動作和資源。文件是根據IAM政策語言的規則撰寫。
如需詳細資訊,請參閱IAMJSON策略參考。
-
許可界限是一項進階功能,您可以在其中使用政策來限制身分型政策可授予角色的最大許可。您不能將許可界限用到服務連結的角色。
如需詳細資訊,請參閱IAM 實體的許可界限。