

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# Amazon EKS 的 Identity and Access Management
<a name="security-iam"></a>

 AWS Identity and Access Management (IAM) 是一種 AWS 服務，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可以控制*驗證* (已登入) 和*授權* (具有許可) 來使用 Amazon EKS 資源。IAM 是一項服務 AWS ，您可以免費使用。

## 目標對象
<a name="security-iam-audience"></a>

使用 AWS Identity and Access Management (IAM) 的方式會有所不同，取決於您在 Amazon EKS 中執行的工作。

 **服務使用者** ‒ 如果您使用 Amazon EKS 執行任務，您的管理員會為您提供您需要的憑證和許可。隨著您為了執行作業而使用的 Amazon EKS 功能數量變多，您可能會需要額外的許可。了解存取許可的管理方式可協助您向管理員請求正確的許可。如果您無法存取 Amazon EKS 中的功能，請參閱 [疑難排解 IAM](security-iam-troubleshoot.md)。

 **服務管理員** – 若您在公司負責管理 Amazon EKS 資源，您應該具備服務使用的完整存取權限。您的任務是判斷服務使用者應存取的 Amazon EKS 功能和資源。接著，您必須將請求提交給您的 IAM 管理員，來變更您服務使用者的許可。檢閱此頁面上的資訊，了解 IAM 的基本概念。若要進一步了解貴公司可搭配 Amazon EKS 使用 IAM 的方式，請參閱 [Amazon EKS 如何搭配 IAM 運作](security-iam-service-with-iam.md)。

 **IAM 管理員** – 如果您是 IAM 管理員，建議您掌握如何撰寫政策以管理 Amazon EKS 存取權的詳細資訊。若要檢視您可以在 IAM 中使用 Amazon EKS 身分型政策範例，請參閱 [Amazon EKS 身分型政策範例](security-iam-id-based-policy-examples.md)。

## 使用身分驗證
<a name="security-iam-authentication"></a>

身分驗證是您 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色身分*進行身分驗證* （登入 AWS)。

您可以使用透過身分來源提供的登入資料，以聯合身分 AWS 的形式登入 。 AWS IAM Identity Center (IAM Identity Center) 使用者、您公司的單一登入身分驗證，以及您的 Google 或 Facebook 登入資料，都是聯合身分的範例。您以聯合身分登入時，您的管理員先前已設定使用 IAM 角色的聯合身分。當您使用聯合 AWS 身分存取 時，您會間接擔任角色。

根據您的使用者類型，您可以登入 AWS 管理主控台 或 AWS 存取入口網站。如需登入的詳細資訊 AWS，請參閱 * AWS 登入使用者指南*中的[如何登入 AWS 您的帳戶](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

如果您以 AWS 程式設計方式存取 ， AWS 會提供軟體開發套件 (SDK) 和命令列界面 (CLI)，以使用您的登入資料以密碼編譯方式簽署您的請求。如果您不使用 AWS 工具，則必須自行簽署請求。如需使用建議方法自行簽署請求的詳細資訊，請參閱《*IAM 使用者指南*》中的[簽署 AWS API 請求](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)。

無論您使用何種身分驗證方法，您可能都需要提供額外的安全性資訊。例如， AWS 建議您使用多重要素驗證 (MFA) 來提高帳戶的安全性。若要進一步了解，請參閱《* AWS IAM Identity Center 使用者指南*》中的[多重要素驗證](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-mfa.html)和《*IAM 使用者指南*》中的[在 中使用多重要素驗證 (MFA) AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

### AWS 帳戶根使用者
<a name="security-iam-authentication-rootuser"></a>

當您建立 AWS 帳戶時，您會從一個登入身分開始，該身分可完整存取帳戶中的所有 AWS 服務和資源。此身分稱為 AWS 帳戶*根使用者*，可透過使用您用來建立帳戶的電子郵件地址和密碼登入來存取。強烈建議您不要以根使用者處理日常作業。保護您的根使用者憑證，並將其用來執行只能由根使用者執行的任務。如需這些任務的完整清單，了解需以根使用者登入的任務，請參閱《*IAM 使用者指南*》中的[需要根使用者憑證的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### IAM 使用者和群組
<a name="security-iam-authentication-iamuser"></a>

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)是您 AWS 帳戶中的身分，具有單一人員或應用程式的特定許可。建議您盡可能依賴臨時憑證，而不是擁有建立長期憑證 (例如密碼和存取金鑰) 的 IAM 使用者。但是如果特定使用案例需要擁有長期憑證的 IAM 使用者，建議您輪換存取金鑰。如需更多資訊，請參閱《*IAM 使用者指南*》中的[為需要長期憑證的使用案例定期輪換存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials)。

[IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)是一種指定 IAM 使用者集合的身分。您無法以群組身分登入。您可以使用群組來一次為多名使用者指定許可。群組可讓管理大量使用者許可的程序變得更為容易。例如，您可以擁有一個名為 *IAMAdmins* 的群組，並給予該群組管理 IAM 資源的許可。

使用者與角色不同。使用者只會與單一人員或應用程式建立關聯，但角色的目的是在由任何需要它的人員取得。使用者擁有永久的長期憑證，但角色僅提供暫時憑證。如需進一步了解，請參閱*IAM 使用者指南*中的[建立 IAM 使用者 (而非角色) 的時機](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)。

### IAM 角色
<a name="security-iam-authentication-iamrole"></a>

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的身分。它類似 IAM 使用者，但不與特定的人員相關聯。您可以透過切換角色暫時在 中擔任 AWS 管理主控台 IAM 角色。 [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)您可以透過呼叫 CLI AWS 或 AWS API 操作或使用自訂 URL 來擔任角色。如需使用角色的方法詳細資訊，請參閱 *IAM 使用者指南*中的[使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)。

使用暫時憑證的 IAM 角色在下列情況中非常有用：
+  **聯合身分使用者存取** – 如需向聯合身分指派許可，請建立角色，並為角色定義許可。當聯合身分進行身分驗證時，該身分會與角色建立關聯，並獲授予由角色定義的許可。如需有關聯合角色的相關資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html)中的*為第三方身分提供者建立角色*。如果您使用 IAM Identity Center，則需要設定許可集。為控制身分驗證後可以存取的內容，IAM Identity Center 將許可集與 IAM 中的角色相關聯。如需許可集的資訊，請參閱《* AWS IAM Identity Center 使用者指南*》中的[許可集](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)。
+  **暫時 IAM 使用者許可** – IAM 使用者或角色可以擔任 IAM 角色來暫時針對特定任務採用不同的許可。
+  **跨帳戶存取權**：您可以使用 IAM 角色，允許不同帳戶中的某人 (信任的主體) 存取您帳戶的資源。角色是授予跨帳戶存取權的主要方式。不過，對於某些 AWS 服務，您可以將政策直接連接到資源 （而不是使用角色做為代理）。如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《*IAM 使用者指南*》中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。
+  **跨服務存取** – 有些 AWS 服務使用其他服務中的功能 AWS 。例如，當您在服務中進行呼叫時，該服務通常會在 Amazon EC2 中執行應用程式或將物件儲存在 Amazon Simple Storage Service (Amazon S3) 中。服務可能會使用呼叫主體的許可、使用服務角色或使用服務連結角色來執行此作業。
  +  **轉送存取工作階段 (FAS)** – 當您使用 IAM 使用者或角色在其中執行動作時 AWS，您會被視為委託人。使用某些服務時，您可能會執行某個動作，進而在不同服務中啟動另一個動作。FAS 使用呼叫 AWS 服務的委託人許可，結合請求 AWS 服務，向下游服務提出請求。只有當服務收到需要與其他 AWS 服務或資源互動才能完成的請求時，才會提出 FAS 請求。在此情況下，您必須具有執行這兩個動作的許可。如需提出 FAS 請求時的政策詳細資訊，請參閱[轉發存取工作階段](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。
  +  **服務角色** – 服務角色是服務擔任的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)，可代表您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
  +  **服務連結角色** – 服務連結角色是連結至 服務的一種 AWS 服務角色。服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的帳戶中 AWS ，並由服務擁有。IAM 管理員可以檢視，但不能編輯服務連結角色的許可。
+  **在 Amazon EC2 上執行的應用程式** – 您可以使用 IAM 角色來管理在 EC2 執行個體上執行之應用程式的臨時登入資料，以及提出 AWS CLI 或 AWS API 請求。這是在 EC2 執行個體內儲存存取金鑰的較好方式。若要將 AWS 角色指派給 EC2 執行個體並將其提供給其所有應用程式，您可以建立連接至執行個體的執行個體描述檔。執行個體設定檔包含該角色，並且可讓 EC2 執行個體上執行的程式取得暫時憑證。如需詳細資訊，請參閱 *IAM 使用者指南*中的[利用 IAM 角色來授予許可給 Amazon EC2 執行個體上執行的應用程式](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。

如需了解是否要使用 IAM 角色或 IAM 使用者，請參閱 *IAM 使用者指南*中的[建立 IAM 角色 (而非使用者) 的時機](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role)。

## 使用政策管理存取權
<a name="security-iam-access-manage"></a>

您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策是 中的物件， AWS 當與身分或資源建立關聯時， 會定義其許可。當委託人 （使用者、根使用者或角色工作階段） 發出請求時， 會 AWS 評估這些政策。政策中的許可決定是否允許或拒絕請求。大多數政策會以 JSON 文件 AWS 形式存放在 中。如需 JSON 政策文件結構和內容的詳細資訊，請參閱《*IAM 使用者指南*》中的 [JSON 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

預設情況下，使用者和角色沒有許可。若要授予使用者對其所需資源執行動作的許可，IAM 管理員可以建立 IAM 政策。然後，管理員可以將 IAM 政策新增至角色，使用者便能擔任這些角色。

IAM 政策定義該動作的許可，無論您使用何種方法來執行操作。例如，假設您有一個允許 `iam:GetRole` 動作的政策。具有該政策的使用者可以從 AWS 管理主控台、 CLI 或 AWS API AWS 取得角色資訊。

### 身分型政策
<a name="security-iam-access-manage-id-based-policies"></a>

身分型政策是可以附加到身分 (例如 IAM 使用者、使用者群組或角色) 的 JSON 許可政策文件。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。若要了解如何建立身分類型政策，請參閱 *IAM 使用者指南*中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

身分型政策可進一步分類成*內嵌政策*或*受管政策*。內嵌政策會直接嵌入單一使用者、群組或角色。受管政策是獨立的政策，您可以連接到 AWS 帳戶中的多個使用者、群組和角色。受管政策包括 AWS 受管政策和客戶受管政策。如需了解如何在受管政策及內嵌政策間選擇，請參閱 *IAM 使用者指南*中的[在受管政策和內嵌政策間選擇](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#choosing-managed-or-inline)。

### 資源型政策
<a name="security-iam-access-manage-resource-based-policies"></a>

資源型政策是附加到資源的 JSON 政策文件。資源型政策的最常見範例是 IAM *角色信任政策*和 Amazon S3 *儲存貯體政策*。在支援資源型政策的服務中，服務管理員可以使用它們來控制對特定資源的存取權限。對於附加政策的資源，政策會定義指定的主體可以對該資源執行的動作以及在何種條件下執行的動作。您必須在資源型政策中[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。委託人可以包括帳戶、使用者、角色、聯合身分使用者 AWS 或服務。

資源型政策是位於該服務中的內嵌政策。您無法在以資源為基礎的政策中使用來自 IAM 的 AWS 受管政策。

### 存取控制清單 (ACL)
<a name="security-iam-access-manage-acl"></a>

存取控制清單 (ACL) 可控制哪些主體 (帳戶成員、使用者或角色) 擁有存取某資源的許可。ACL 類似於資源型政策，但它們不使用 JSON 政策文件格式。

Amazon S3、 AWS WAF 和 Amazon VPC 是支援 ACLs的服務範例。如需進一步了解 ACL，請參閱《Amazon Simple Storage Service 開發人員指南》**中的[存取控制清單 (ACL) 概觀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

### 其他政策類型
<a name="security-iam-access-manage-other-policies"></a>

 AWS 支援其他較不常見的政策類型。這些政策類型可設定較常見政策類型授予您的最大許可。
+  **許可界限** – 許可範圍是一種進階功能，可供您設定身分型政策能授予 IAM 實體 (IAM 使用者或角色) 的最大許可。您可以為實體設定許可界限。所產生的許可會是實體的身分類型政策和其許可界限的交集。會在 `Principal` 欄位中指定使用者或角色的資源型政策則不會受到許可界限限制。所有這類政策中的明確拒絕都會覆寫該允許。如需許可界限的詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+  **服務控制政策 (SCPs)** – SCPs是 JSON 政策，可指定 AWS Organizations 中組織或組織單位 (OU) 的最大許可。 AWS Organizations 是一項服務，用於分組和集中管理您企業擁有的多個 AWS 帳戶。若您啟用組織中的所有功能，您可以將服務控制政策 (SCP) 套用到任何或所有帳戶。SCP 會限制成員帳戶中實體的許可，包括每個 AWS 帳戶根使用者。如需 Organizations 和 SCPs的詳細資訊，請參閱* AWS 《 Organizations 使用者指南*》中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+  **工作階段政策** – 工作階段政策是一種進階政策，您可以在透過撰寫程式的方式建立角色或聯合身分使用者的暫時工作階段時，做為參數傳遞。所產生工作階段的許可會是使用者或角色的身分型政策和工作階段政策的交集。許可也可以來自資源型政策。所有這類政策中的明確拒絕都會覆寫該允許。如需詳細資訊，請參《*IAM 使用者指南*》中的[工作階段政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多種政策類型
<a name="security-iam-access-manage-multiple-policies"></a>

當多種類型的政策適用於請求時，產生的許可會更複雜而無法理解。若要了解如何 AWS 在涉及多個政策類型時決定是否允許請求，請參閱《*IAM 使用者指南*》中的[政策評估邏輯](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# Amazon EKS 如何搭配 IAM 運作
<a name="security-iam-service-with-iam"></a>

在您使用 IAM 管理對 Amazon EKS 的存取權之前，您應該了解哪些 IAM 功能可以與 Amazon EKS 搭配使用。若要全面了解 Amazon EKS 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《IAM *使用者指南*》中的[AWS 與 IAM 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

**Topics**
+ [Amazon EKS 身分型政策](#security-iam-service-with-iam-id-based-policies)
+ [Amazon EKS 資源型政策](#security-iam-service-with-iam-resource-based-policies)
+ [以 Amazon EKS 標籤為基礎的授權](#security-iam-service-with-iam-tags)
+ [Amazon EKS IAM 角色](#security-iam-service-with-iam-roles)

## Amazon EKS 身分型政策
<a name="security-iam-service-with-iam-id-based-policies"></a>

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。Amazon EKS 支援特定動作、資源和條件索引鍵。若要了解您在 JSON 政策中使用的所有元素，請參閱《IAM 使用者指南》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 動作
<a name="security-iam-service-with-iam-id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策動作通常具有與相關聯 AWS API 操作相同的名稱。有一些例外狀況，例如沒有相符的 API 操作的*僅限許可動作*。也有一些作業需要政策中的多個動作。這些額外的動作稱為*相依動作*。

政策會使用動作來授予執行相關聯動作的許可。

Amazon EKS 中的政策動作會在動作之前使用下列字首：`eks:`。例如，若要授予某人取得 Amazon EKS 叢集描述性資訊的許可，請在其政策中加入 `DescribeCluster` 動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。

若要在單一陳述式中指定多個動作，請用逗號分隔，如下所示：

```
"Action": ["eks:action1", "eks:action2"]
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，若要指定開頭是 `Describe` 文字的所有動作，請包含以下動作：

```
"Action": "eks:Describe*"
```

若要查看 Amazon EKS 動作的清單，請參閱*服務授權參考*中的 [Amazon Elastic Kubernetes Service 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)。

### Resources
<a name="security-iam-service-with-iam-id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。陳述式必須包含 `Resource` 或 `NotResource` 元素。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。您可以針對支援特定資源類型的動作 (*稱為資源層級許可*) 來這麼做。

對於不支援資源層級許可的動作 (例如列出操作)，請使用萬用字元 (\$1) 來表示陳述式適用於所有資源。

```
"Resource": "*"
```

Amazon EKS 叢集資源有以下 ARN。

```
 arn:aws: eks:region-code:account-id:cluster/cluster-name
```

如需 ARNs 格式的詳細資訊，請參閱 [Amazon 資源名稱 (ARNs) AWS 和服務命名空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

例如，若要在您的陳述式中指定具有 *my-cluster* 名稱的叢集，請使用以下 ARN：

```
"Resource": "arn:aws: eks:region-code:111122223333:cluster/my-cluster"
```

若要指定屬於特定帳戶和 AWS 區域的所有叢集，請使用萬用字元 (\$1)：

```
"Resource": "arn:aws: eks:region-code:111122223333:cluster/*"
```

有些 Amazon EKS 動作無法對特定資源執行，例如用來建立資源的動作。在這些情況下，您必須使用萬用字元 (\$1)。

```
"Resource": "*"
```

若要查看 Amazon EKS 資源類型及其 ARN 的詳細資訊，請參閱*服務授權參考*中的 [Amazon Elastic Kubernetes Service 定義的資源](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-resources-for-iam-policies)。若要了解您可以使用哪些動作指定每個資源的 ARN，請參閱 [Amazon Elastic Kubernetes Service 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)。

### 條件索引鍵
<a name="security-iam-service-with-iam-id-based-policies-conditionkeys"></a>

Amazon EKS 會定義自己的一組條件索引鍵，也支援使用一些全域條件金鑰。若要查看所有 AWS 全域條件金鑰，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

將 OpenID Connect 提供商關聯到您的叢集時，您可以設定條件索引鍵。如需詳細資訊，請參閱[範例 IAM 政策](authenticate-oidc-identity-provider.md#oidc-identity-provider-iam-policy)。

所有 Amazon EC2 操作都支援 `aws:RequestedRegion` 和 `ec2:Region` 條件索引鍵。如需詳細資訊，請參閱[範例：限制對特定 AWS 區域的存取](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region)。

如需 Amazon EKS 條件金鑰的清單，請參閱*服務授權參考*中的 [Amazon Elastic Kubernetes Service 定義的條件](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-policy-keys)。若要了解您可以搭配哪些動作和資源使用條件索引鍵，請參閱 [Amazon Elastic Kubernetes Service 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)。

### 範例
<a name="security-iam-service-with-iam-id-based-policies-examples"></a>

若要檢視 Amazon EKS 身分型政策的範例，請參閱 [Amazon EKS 身分型政策範例](security-iam-id-based-policy-examples.md)。

當您建立 Amazon EKS 叢集時，建立該叢集的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)會由 Amazon EKS 控制平面中叢集的角色型存取控制 (RBAC) 組態來自動授予 `system:masters` 許可。此主體不會出現在任何可見的組態中，因此請務必記下最初建立叢集的主體。若要賦予其他 IAM 主體與叢集互動的能力，您必須編輯 Kubernetes 中的 `aws-auth ConfigMap` 並用 `group` 的名稱建立一個 Kubernetes `rolebinding` 或 `clusterrolebinding`，其名稱是您在 `aws-auth ConfigMap` 中指定的名稱。

如需使用 ConfigMap 代理程式組態檔案的詳細資訊，請參閱 [授予 IAM 使用者和角色對 Kubernetes APIs存取權](grant-k8s-access.md)。

## Amazon EKS 資源型政策
<a name="security-iam-service-with-iam-resource-based-policies"></a>

Amazon EKS 不支援資源型政策。

## 以 Amazon EKS 標籤為基礎的授權
<a name="security-iam-service-with-iam-tags"></a>

您可以將標籤連接至 Amazon EKS 資源，或是在請求中將標籤傳遞至 Amazon EKS。若要根據標籤控制存取，請使用 `aws:ResourceTag/key-name `、`aws:RequestTag/key-name ` 或 `aws:TagKeys` 條件索引鍵，在政策的[條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中，提供標籤資訊。如需標記 Amazon EKS 資源的詳細資訊，請參閱 [使用標籤組織 Amazon EKS 資源](eks-using-tags.md)。如需您在條件索引鍵下可使用哪些標籤動作的詳細資訊，請參閱《[服務授權參考](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)》中的 [Amazon EKS 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)。

## Amazon EKS IAM 角色
<a name="security-iam-service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。

### 將暫時憑證與 Amazon EKS 搭配使用
<a name="security-iam-service-with-iam-roles-tempcreds"></a>

您可以搭配聯合使用暫時憑證、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

Amazon EKS 支援使用臨時憑證。

### 服務連結角色
<a name="security-iam-service-with-iam-roles-service-linked"></a>

 [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)可讓 AWS 服務存取其他服務中的資源，以代表您完成 動作。服務連結角色會顯示在您的 IAM 帳戶中，並由該服務所擁有。管理員可以檢視，但不能編輯服務連結角色的許可。

Amazon EKS 支援服務連結角色。如需建立或管理 Amazon EKS 服務連結角色的詳細資訊，請參閱 [使用 Amazon EKS 的服務連結角色](using-service-linked-roles.md)。

### 服務角色
<a name="security-iam-service-with-iam-roles-service"></a>

此功能可讓服務代表您擔任[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-role)。此角色可讓服務存取其他服務中的資源，以代表您完成動作。服務角色會出現在您的 IAM 帳戶中，且由該帳戶所擁有。這表示 IAM 管理員可以變更此角色的許可。不過，這樣可能會破壞此服務的功能。

Amazon EKS 支援服務角色。如需詳細資訊，請參閱[Amazon EKS 叢集 IAM 角色](cluster-iam-role.md)及[Amazon EKS 節點 IAM 角色](create-node-role.md)。

### 在 Amazon EKS 中選擇 IAM 角色
<a name="security-iam-service-with-iam-roles-choose"></a>

當您在 Amazon EKS 中建立叢集資源時，您必須選擇一個角色，以允許 Amazon EKS 代表您存取數個其他 AWS 資源。如果您之前已建立服務角色，則 Amazon EKS 會提供一個角色清單供您選擇。請務必選擇連接 Amazon EKS 受管政策的角色。如需詳細資訊，請參閱[檢查現有的叢集角色](cluster-iam-role.md#check-service-role)及[檢查現有的節點角色](create-node-role.md#check-worker-node-role)。

# Amazon EKS 身分型政策範例
<a name="security-iam-id-based-policy-examples"></a>

根據預設，IAM 使用者和角色不具備建立或修改 Amazon EKS 資源的許可。他們也無法使用 、 AWS CLI AWS 管理主控台或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策，授予使用者和角色在指定資源上執行特定 API 作業的所需許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 使用者或群組。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《IAM 使用者指南》中的[在 JSON 標籤上建立政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

當您建立 Amazon EKS 叢集時，建立該叢集的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)會由 Amazon EKS 控制平面中叢集的角色型存取控制 (RBAC) 組態來自動授予 `system:masters` 許可。此主體不會出現在任何可見的組態中，因此請務必記下最初建立叢集的主體。若要賦予其他 IAM 主體與叢集互動的能力，您必須編輯 Kubernetes 中的 `aws-auth ConfigMap` 並用 `group` 的名稱建立一個 Kubernetes `rolebinding` 或 `clusterrolebinding`，其名稱是您在 `aws-auth ConfigMap` 中指定的名稱。

如需使用 ConfigMap 代理程式組態檔案的詳細資訊，請參閱 [授予 IAM 使用者和角色對 Kubernetes APIs存取權](grant-k8s-access.md)。

**Topics**
+ [政策最佳實務](#security-iam-service-with-iam-policy-best-practices)
+ [使用 Amazon EKS 主控台](#security-iam-id-based-policy-examples-console)
+ [允許 IAM 使用者檢視他們自己的許可](#security-iam-id-based-policy-examples-view-own-permissions)
+ [在 AWS 雲端上建立 Kubernetes 叢集](#policy-create-cluster)
+ [在 Outpost 上建立本機 Kubernetes 叢集](#policy-create-local-cluster)
+ [更新 Kubernetes 叢集](#policy-example1)
+ [所有叢集的清單或描述](#policy-example2)

## 政策最佳實務
<a name="security-iam-service-with-iam-policy-best-practices"></a>

身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 Amazon EKS 資源。這些動作可能會對您的帳戶產生成本 AWS 。當您建立或編輯身分型政策時，請遵循下列準則及建議事項：
+  **開始使用 AWS 受管政策並邁向最低權限許可** – 若要開始將許可授予您的使用者和工作負載，請使用將許可授予許多常見使用案例的 * AWS 受管政策*。它們可在您的帳戶中使用 AWS 。我們建議您定義特定於使用案例 AWS 的客戶受管政策，以進一步減少許可。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+  **套用最低權限許可** – 設定 IAM 政策的許可時，請僅授予執行任務所需的許可。為實現此目的，您可以定義在特定條件下可以對特定資源採取的動作，這也稱為*最低權限許可*。如需使用 IAM 套用許可的更多相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+  **使用 IAM 政策中的條件進一步限制存取權** – 您可以將條件新增至政策，以限制動作和資源的存取。例如，您可以撰寫政策條件，指定必須使用 SSL 傳送所有請求。如果透過 AWS CloudFormation 等特定服務使用 AWS 服務動作，您也可以使用條件來授予服務動作的存取權。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+  **使用 IAM Access Analyzer 驗證 IAM 政策，確保許可安全且可正常運作** – IAM Access Analyzer 驗證新政策和現有政策，確保這些政策遵從 IAM 政策語言 (JSON) 和 IAM 最佳實務。IAM Access Analyzer 提供 100 多項政策檢查及切實可行的建議，可協助您撰寫安全且實用的政策。如需更多資訊，請參閱 *IAM 使用者指南*中的 [IAM Access Analyzer 政策驗證](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+  **需要多重要素驗證 (MFA)** – 如果您的案例需要 IAM 使用者或 AWS 帳戶中的根使用者，請開啟 MFA 以提高安全性。如需在呼叫 API 操作時請求 MFA，請將 MFA 條件新增至您的政策。如需更多資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)中的*設定 MFA 保護的 API 存取*。

如需 IAM 中最佳實務的相關資訊，請參閱 *IAM 使用者指南*中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 Amazon EKS 主控台
<a name="security-iam-id-based-policy-examples-console"></a>

若要存取 Amazon EKS 主控台，[IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)必須擁有最基本的一組許可。這些許可允許委託人列出和檢視您 AWS 帳戶中 Amazon EKS 資源的詳細資訊。如果您建立比最低必要許可更嚴格的身分型政策，則對於具有該政策的主體而言，主控台將無法如預期運作。

為了確保您的 IAM 主體仍然可以使用 Amazon EKS 主控台，建立擁有唯一名稱的政策，例如 `AmazonEKSAdminPolicy`。將政策連接至主體。如需詳細資訊，請參閱 *IAM 使用者指南*中的[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

**重要**  
下列範例政策可讓主體檢視主控台內的**組態**標籤上的資訊。若要檢視 中**概觀****和資源**索引標籤的相關資訊 AWS 管理主控台，委託人也需要 Kubernetes 許可。如需詳細資訊，請參閱[所需的許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)。

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "eks.amazonaws.com"
                }
            }
        }
    ]
}
```

對於僅呼叫 CLI 或 AWS API AWS 的主體，您不需要允許最低主控台許可。反之，只需允許存取符合您嘗試執行之 API 作業的動作就可以了。

## 允許 IAM 使用者檢視他們自己的許可
<a name="security-iam-id-based-policy-examples-view-own-permissions"></a>

此範例會示範如何建立政策，允許 IAM 使用者檢視連接到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 CLI 或 AWS API AWS 以程式設計方式完成此動作的許可。

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 在 AWS 雲端上建立 Kubernetes 叢集
<a name="policy-create-cluster"></a>

此範例政策包含用於在 *us-west-2* AWS 區域中建立名為 *my-cluster* 的 Amazon EKS 叢集所需的最低許可。您可以將 AWS 區域取代為您要建立叢集 AWS 的區域。如果您看到警告，指出**政策中的動作不支援資源層級許可，並要求您在 `All resources`**中選擇 AWS 管理主控台，則可以安全地忽略它。如果您的帳戶已具有 *AWSServiceRoleForAmazonEKS* 角色，您可以移除來自政策的 `iam:CreateServiceLinkedRole` 動作。如果您曾在帳戶中建立 Amazon EKS 叢集，則此角色已存在，除非您已將其刪除。

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:CreateCluster",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "iam:AWSServiceName": "eks"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/cluster-role-name"
        }
    ]
}
```

## 在 Outpost 上建立本機 Kubernetes 叢集
<a name="policy-create-local-cluster"></a>

此範例政策包含用於在 *us-west-2* AWS 區域的 Outpost 上建立名為 *my-cluster* 的 Amazon EKS 本機叢集所需的最低許可。您可以將 AWS 區域取代為您要建立叢集 AWS 的區域。如果您看到警告，指出**政策中的動作不支援資源層級許可，並要求您在 `All resources`**中選擇 AWS 管理主控台，則可以安全地忽略它。如果您的帳戶已具有 `AWSServiceRoleForAmazonEKSLocalOutpost` 角色，您可以移除來自政策的 `iam:CreateServiceLinkedRole` 動作。如果您曾在帳戶中建立位於 Outpost 上的 Amazon EKS 本機叢集，則此角色已存在，除非您已將其刪除。

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:CreateCluster",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        },
        {
            "Action": [
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "iam:GetRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/outposts.eks-local.amazonaws.com/AWSServiceRoleForAmazonEKSLocalOutpost"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": "arn:aws:iam::111122223333:role/cluster-role-name"
        },
        {
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:TagInstanceProfile",
                "iam:AddRoleToInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": "arn:aws:iam::*:instance-profile/eks-local-*",
            "Effect": "Allow"
        }
    ]
}
```

## 更新 Kubernetes 叢集
<a name="policy-example1"></a>

此範例政策包含更新 us*-west-2Region 中名為 my-cluster* 的叢集所需的最低許可。 AWS 

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:UpdateClusterVersion",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        }
    ]
}
```

## 所有叢集的清單或描述
<a name="policy-example2"></a>

此範例政策包含列出及說明帳戶中所有叢集所需的最低許可。[IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)必須能夠列出和描述叢集，才能使用 AWS CLI `update-kubeconfig` 命令。

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster",
                "eks:ListClusters"
            ],
            "Resource": "*"
        }
    ]
}
```

# 使用 Amazon EKS 的服務連結角色
<a name="using-service-linked-roles"></a>

Amazon Elastic Kubernetes Service 可使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

**Topics**
+ [使用 Amazon EKS 叢集的角色](using-service-linked-roles-eks.md)
+ [使用 Amazon EKS 節點群組的角色](using-service-linked-roles-eks-nodegroups.md)
+ [使用 Amazon EKS Fargate 描述檔的角色](using-service-linked-roles-eks-fargate.md)
+ [使用角色將 Kubernetes 叢集連線至 Amazon EKS](using-service-linked-roles-eks-connector.md)
+ [使用位於 Outpost 上的 Amazon EKS 本機叢集的角色](using-service-linked-roles-eks-outpost.md)
+ [使用 Amazon EKS 儀表板的角色](using-service-linked-roles-eks-dashboard.md)

# 使用 Amazon EKS 叢集的角色
<a name="using-service-linked-roles-eks"></a>

Amazon Elastic Kubernetes Service 可使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務資訊，請參閱[《可搭配 IAM 運作的 AWS 服務》](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-linked roles** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions-eks"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKS` 的服務連結角色。該角色可讓 Amazon EKS 管理您帳戶中的叢集。連接的政策允許角色管理下列資源：網路介面、安全群組、記錄和 VPC。

**注意**  
`AWSServiceRoleForAmazonEKS` 服務連結角色並非叢集建立所需的角色。如需詳細資訊，請參閱 [Amazon EKS 叢集 IAM 角色](cluster-iam-role.md)。

`AWSServiceRoleForAmazonEKS` 服務連結角色信任下列服務擔任角色：
+  `eks.amazonaws.com` 

此角色許可政策允許 Amazon EKS 對指定資源完成下列動作：
+  [AmazonEKSServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServiceRolePolicy.html) 

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或是 AWS API 中建立群組時，Amazon EKS 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立叢集時，Amazon EKS 會再次為您建立服務連結角色。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKS` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中選擇**叢集**。

1. 如果您的叢集具有任何節點群組或 Fargate 描述檔，則必須先將其刪除，才能刪除叢集。如需詳細資訊，請參閱 [從您的叢集刪除受管節點群組](delete-managed-node-group.md) 及 [刪除 Fargate 描述檔](delete-fargate-profile.md)。

1. 在 **Clusters** (叢集) 頁面上，選擇您要刪除的叢集，然後選擇 **Delete** (刪除)。

1. 在刪除確認視窗中輸入叢集的名稱，然後選擇 **Delete** (刪除)。

1. 重複對您帳戶中的任何其他叢集執行此程序。等候所有刪除作業完成。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks"></a>

使用 IAM 主控台、AWS CLI 或 AWS API 來刪除 `AWSServiceRoleForAmazonEKS` 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon EKS 服務連結角色的支援區域
<a name="slr-regions-eks"></a>

Amazon EKS 在所有提供服務的區域中支援使用服務連結角色。如需詳細資訊，請參閱 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html) (Amazon EKS 端點和配額)。

# 使用 Amazon EKS 節點群組的角色
<a name="using-service-linked-roles-eks-nodegroups"></a>

Amazon EKS 會使用 AWS Identity and Access Management (IAM) [服務連結的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務資訊，請參閱[《可搭配 IAM 運作的 AWS 服務》](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-linked roles** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions-eks-nodegroups"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKSNodegroup` 的服務連結角色。該角色可讓 Amazon EKS 管理您帳戶中的節點群組。連接的 `AWSServiceRoleForAmazonEKSNodegroup` 政策允許角色管理下列資源：Auto Scaling 群組、安全群組、啟動範本和 IAM 執行個體設定檔。如需詳細資訊，請參閱 [AWS 受管政策：AWSServiceRoleForAmazonEKSNodegroup](security-iam-awsmanpol.md#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。

`AWSServiceRoleForAmazonEKSNodegroup` 服務連結角色信任下列服務擔任角色：
+  `eks-nodegroup.amazonaws.com` 

此角色許可政策允許 Amazon EKS 對指定資源完成下列動作：
+  [AWSServiceRoleForAmazonEKSNodegroup](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForAmazonEKSNodegroup.html) 

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks-nodegroups"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或是 AWS API 中建立節點群組時，Amazon EKS 會為您建立服務連結角色。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。Amazon EKS 自 2017 年 1 月 1 日開始支援服務連結角色，若您在這之前就有使用此服務，則 Amazon EKS 會在帳戶中建立 AWSServiceRoleForAmazonEKSNodegroup 角色。若要進一步了解，請參閱[顯示在我的 IAM 帳戶中的新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

### 在 Amazon EKS (AWS API) 中建立服務連結角色
<a name="create-service-linked-role-service-api-eks-nodegroups"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或是 AWS API 中建立受管節點群組時，Amazon EKS 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立另一個受管節點群組時，Amazon EKS 會再次為您建立服務連結角色。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks-nodegroups"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKSNodegroup` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks-nodegroups"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks-nodegroups"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中選擇**叢集**。

1. 選取 **Compute** (運算) 標籤。

1. 在 **Node Groups** (節點群組) 區段中，選擇要刪除的節點群組。

1. 在刪除確認視窗中，輸入節點群組的名稱，然後選擇 **Delete** (刪除)。

1. 重複對叢集中的任何其他節點群組執行此程序。等候所有刪除作業完成。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks-nodegroups"></a>

使用 IAM 主控台、AWS CLI 或 AWS API 來刪除 `AWSServiceRoleForAmazonEKSNodegroup` 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon EKS 服務連結角色的支援區域
<a name="slr-regions-eks-nodegroups"></a>

Amazon EKS 在所有提供服務的區域中支援使用服務連結角色。如需詳細資訊，請參閱 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html) (Amazon EKS 端點和配額)。

# 使用 Amazon EKS Fargate 描述檔的角色
<a name="using-service-linked-roles-eks-fargate"></a>

Amazon EKS 會使用 AWS Identity and Access Management (IAM) [服務連結的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務資訊，請參閱[《可搭配 IAM 運作的 AWS 服務》](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-linked roles** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions-eks-fargate"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKSForFargate` 的服務連結角色。該角色允許 Amazon EKS Fargate 設定 Fargate Pod 所需的 VPC 聯網。已連接的政策允許角色建立和刪除彈性網路介面，並描述彈性網路介面和資源。

`AWSServiceRoleForAmazonEKSForFargate` 服務連結角色信任下列服務以擔任角色：
+  `eks-fargate.amazonaws.com` 

此角色許可政策允許 Amazon EKS 對指定資源完成下列動作：
+  [AmazonEKSForFargateServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSForFargateServiceRolePolicy.html) 

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks-fargate"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或 AWS API 中建立 Fargate 描述檔時，Amazon EKS 會為您建立服務連結角色。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。Amazon EKS 自 2019 年 12 月 13 日開始支援服務連結角色，若您在這之前就有使用此服務，則 Amazon EKS 會在帳戶中建立 AWSServiceRoleForAmazonEKSForFargate 角色。若要進一步了解，請參閱[顯示在我的 IAM 帳戶中的新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

### 在 Amazon EKS (AWS API) 中建立服務連結角色
<a name="create-service-linked-role-service-api-eks-fargate"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或 AWS API 中建立 Fargate 描述檔時，Amazon EKS 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立另一個受管節點群組時，Amazon EKS 會再次為您建立服務連結角色。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks-fargate"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKSForFargate` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks-fargate"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks-fargate"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中選擇**叢集**。

1. 在 **Clusters (叢集)** 頁面上，選取您的叢集。

1. 選取 **Compute** (運算) 標籤。

1. 如果 **Fargate Profiles** (Fargate 描述檔) 區段中有任何 Fargate 描述檔，請個別選取每個描述檔，然後選擇 **Delete** (刪除)。

1. 在刪除確認視窗中輸入描述檔的名稱，然後選擇 **Delete** (刪除)。

1. 針對叢集中的任何其他 Fargate 描述檔，以及您帳戶中的任何其他叢集，重複此程序。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks-fargate"></a>

使用 IAM 主控台、AWS CLI 或 AWS API 來刪除 AWSServiceRoleForAmazonEKSForFargate 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon EKS 服務連結角色的支援區域
<a name="slr-regions-eks-fargate"></a>

Amazon EKS 在所有提供服務的區域中支援使用服務連結角色。如需詳細資訊，請參閱 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html) (Amazon EKS 端點和配額)。

# 使用角色將 Kubernetes 叢集連線至 Amazon EKS
<a name="using-service-linked-roles-eks-connector"></a>

Amazon EKS 使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色是由 Amazon EKS 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務的資訊，請參閱[可搭配 IAM 運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-Linked Role** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions-eks-connector"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKSConnector` 的服務連結角色。該角色可讓 Amazon EKS 連接 Kubernetes 叢集。連接的政策可讓角色管理必要的資源，以連接到已註冊的 Kubernetes 叢集。

`AWSServiceRoleForAmazonEKSConnector` 服務連結角色信任下列服務以擔任角色：
+  `eks-connector.amazonaws.com` 

此角色許可政策允許 Amazon EKS 對指定資源完成下列動作：
+  [AmazonEKSConnectorServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSConnectorServiceRolePolicy.html) 

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

此角色使用 SSM (Systems Manager) 許可來建立安全連線和管理連線的 Kubernetes 叢集。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks-connector"></a>

您不需要手動建立一個服務連結角色來連線叢集。當您在 AWS 管理主控台、 CLI、 `eksctl`或 AWS API AWS 中連接叢集時，Amazon EKS 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。在連線叢集時，Amazon EKS 會再次為您建立服務連結角色。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks-connector"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKSConnector` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks-connector"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks-connector"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中選擇**叢集**。

1. 在 **Clusters (叢集)** 頁面上，選取您的叢集。

1. 選取 **Deregister** (取消註冊) 索引標籤，然後選取 **OK** (確定) 索引標籤。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks-connector"></a>

使用 IAM 主控台、CLI AWS 或 AWS API 來刪除 AWSServiceRoleForAmazonEKSConnector 服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

# 使用位於 Outpost 上的 Amazon EKS 本機叢集的角色
<a name="using-service-linked-roles-eks-outpost"></a>

Amazon Elastic Kubernetes Service 可使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務資訊，請參閱[《可搭配 IAM 運作的 AWS 服務》](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-linked roles** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKSLocalOutpost` 的服務連結角色。該角色可讓 Amazon EKS 管理您帳戶中的本機叢集。已連結的政策允許角色管理下列資源：網路介面、安全群組、日誌和 Amazon EC2 執行個體。

**注意**  
`AWSServiceRoleForAmazonEKSLocalOutpost` 服務連結角色並非叢集建立所需的角色。如需詳細資訊，請參閱 [Amazon EKS 叢集 IAM 角色](cluster-iam-role.md)。

`AWSServiceRoleForAmazonEKSLocalOutpost` 服務連結角色信任下列服務擔任角色：
+  `outposts.eks-local.amazonaws.com` 

此角色許可政策允許 Amazon EKS 對指定資源完成下列動作：
+  [AmazonEKSServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServiceRolePolicy.html) 

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks-outpost"></a>

您不需要手動建立一個服務連結角色。當您在 AWS 管理主控台、AWS CLI 或是 AWS API 中建立群組時，Amazon EKS 會為您建立服務連結角色。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立叢集時，Amazon EKS 會再次為您建立服務連結角色。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks-outpost"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKSLocalOutpost` 服務連結角色。因為可能有各種實體會參考服務連結角色，所以您無法在建立角色之後變更其名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks-outpost"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks-outpost"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中選擇 Amazon EKS **Clusters** (叢集)。

1. 如果您的叢集具有任何節點群組或 Fargate 描述檔，則必須先將其刪除，才能刪除叢集。如需詳細資訊，請參閱 [從您的叢集刪除受管節點群組](delete-managed-node-group.md) 及 [刪除 Fargate 描述檔](delete-fargate-profile.md)。

1. 在 **Clusters** (叢集) 頁面上，選擇您要刪除的叢集，然後選擇 **Delete** (刪除)。

1. 在刪除確認視窗中輸入叢集的名稱，然後選擇 **Delete** (刪除)。

1. 重複對您帳戶中的任何其他叢集執行此程序。等候所有刪除作業完成。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks-outpost"></a>

使用 IAM 主控台、AWS CLI 或 AWS API 來刪除 `AWSServiceRoleForAmazonEKSLocalOutpost` 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon EKS 服務連結角色的支援區域
<a name="slr-regions-eks-connector"></a>

Amazon EKS 在所有提供服務的區域中支援使用服務連結角色。如需詳細資訊，請參閱 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html) (Amazon EKS 端點和配額)。

# 使用 Amazon EKS 儀表板的角色
<a name="using-service-linked-roles-eks-dashboard"></a>

Amazon EKS 儀表板使用此服務連結角色，來彙整多個區域及帳戶的叢集資源相關資訊。儀表板整合了 AWS Organizations，以便安全地讀取組織中多個帳戶的相關資訊。

若要深入了解 Amazon EKS 儀表板，請參閱：[使用 EKS 儀表板檢視叢集資源的彙總資料](cluster-dashboard.md)。

## 背景介紹
<a name="_background"></a>

Amazon EKS 會使用 AWS Identity and Access Management (IAM) [服務連結的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義，且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon EKS 更為簡單，因為您不必手動新增必要的許可。Amazon EKS 定義其服務連結角色的許可，除非另有定義，否則僅有 Amazon EKS 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。如此可保護您的 Amazon EKS 資源，避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務資訊，請參閱[《可搭配 IAM 運作的 AWS 服務》](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，尋找 **Service-linked roles** (服務連結角色) 欄中顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Amazon EKS 的服務連結角色許可
<a name="service-linked-role-permissions-eks-dashboard"></a>

Amazon EKS 會使用名為 `AWSServiceRoleForAmazonEKSDashboard` 的服務連結角色。該角色可讓 Amazon EKS 生成並顯示 EKS 儀表板，包括叢集資源的彙整資訊。連接的 `AmazonEKSDashboardServiceRolePolicy` 政策允許角色管理下列資源：Auto Scaling 群組、安全群組、啟動範本和 IAM 執行個體設定檔。如需詳細資訊，請參閱 [AWS 受管政策：AmazonEKSDashboardServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSDashboardServiceRolePolicy)。

`AWSServiceRoleForAmazonEKSDashboard` 服務連結角色信任下列服務擔任角色：
+  `dashboard.eks.amazonaws.com` 

若要檢視 JSON 政策文件的最新版本，請參閱《AWS 受管政策參考指南》中的 [AmazonEKSDashboardServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSDashboardServiceRolePolicy.html#AmazonEKSDashboardServiceRolePolicy-json)。

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Amazon EKS 的服務連結角色
<a name="create-service-linked-role-eks-dashboard"></a>

您不需要手動建立一個服務連結角色。若您在 AWS 主控台中啟用儀表板，Amazon EKS 可為您建立服務連結角色。

若要了解啟用 EKS 儀表板的相關詳細資訊，請參閱 [設定 EKS 儀表板與 AWS Organizations 的整合](cluster-dashboard-orgs.md)。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。

## 編輯 Amazon EKS 的服務連結角色
<a name="edit-service-linked-role-eks-dashboard"></a>

Amazon EKS 不允許您編輯 `AWSServiceRoleForAmazonEKSDashboard` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《IAM 使用者指南》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Amazon EKS 的服務連結角色
<a name="delete-service-linked-role-eks-dashboard"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，務必清除您的服務連結角色，之後才能以手動方式將其刪除。

### 清除服務連結角色
<a name="service-linked-role-review-before-delete-eks-dashboard"></a>

在您使用 IAM 刪除服務連結角色之前，您必須先刪除該角色所使用的任何資源。

**注意**  
若 Amazon EKS 服務在您試圖刪除資源時正在使用該角色，刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

若要了解停用 EKS 儀表板的相關詳細資訊，請參閱 [設定 EKS 儀表板與 AWS Organizations 的整合](cluster-dashboard-orgs.md)。

### 手動刪除服務連結角色
<a name="slr-manual-delete-eks-dashboard"></a>

使用 IAM 主控台、AWS CLI 或 AWS API 來刪除 `AWSServiceRoleForAmazonEKSDashboard` 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon EKS 服務連結角色的支援區域
<a name="slr-regions-eks-dashboard"></a>

Amazon EKS 在所有提供服務的區域中支援使用服務連結角色。如需詳細資訊，請參閱 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html) (Amazon EKS 端點和配額)。

# Amazon EKS Pod 執行 IAM 角色
<a name="pod-execution-role"></a>

在 AWS Fargate 基礎設施上執行 Pod 需要 Amazon EKS Pod 執行角色。

當您的叢集在 AWS Fargate 基礎設施上建立 Pod 時，在 Fargate 基礎設施上執行的元件必須代表您呼叫 AWS APIs。如此一來，他們可以執行動作，例如從 Amazon ECR 提取容器映像，或將日誌路由到其他 AWS 服務。Amazon EKS Pod 執行角色提供進行此類工作的 IAM 許可。

建立 Fargate 描述檔時，您必須使用描述檔為在 Fargate 基礎結構上執行的 Amazon EKS 元件指定 Pod 執行角色。此角色會新增至叢集的 Kubernetes [角色型存取控制](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (RBAC)，以進行身分授權。這可讓在 Fargate 基礎結構上執行的 `kubelet` 向您的 Amazon EKS 叢集註冊，以便它可以在該叢集中作為節點出現。

**注意**  
Fargate 設定檔的 IAM 角色必須與 Amazon EC2 節點群組不同。

**重要**  
在 Fargate Pod 中執行的容器，無法採用與 Pod 執行角色相關聯的 IAM 許可。若要授予 Fargate Pod 中的容器存取其他服務的許可 AWS ，您必須[為服務帳戶使用 IAM 角色](iam-roles-for-service-accounts.md)。

建立 Fargate 設定檔之前，您必須建立具有 [AmazonEKSFargatePodExecutionRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSFargatePodExecutionRolePolicy.html) 的 IAM 角色。

## 檢查是否有正確設定的現有 Pod 執行角色
<a name="check-pod-execution-role"></a>

您可使用以下程序，檢查您的帳戶是否已有正確設定的 Amazon EKS Pod 執行角色。為了避免出現混淆代理人安全問題，根據 `SourceArn` 的角色限制存取是非常重要的一環。您可以視需要修改執行角色，以納入對其他叢集上的 Fargate 描述檔的支援。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 在 **Roles** (角色) 頁面上，搜尋 **Amazon EKS Fargate Pod Execution Role** (Amazon EKS Fargate Pod 執行角色) 的角色清單。如果該角色不存在，請參閱 [建立 Amazon EKS Pod 執行角色](#create-pod-execution-role) 以建立角色。如果該角色存在，請選取角色。

1. 在 **Amazon EKS Fargate Pod Execution Role** (Amazon EKS Fargate Pod 執行角色) 頁面上，執行下列動作：

   1. 選擇**許可**。

   1. 確定 **AmazonEKSFargatePodExecutionRolePolicy** Amazon 受管政策已連接至角色。

   1. 選擇 **Trust relationships (信任關係)**。

   1. 選擇 **Edit trust policy** (編輯信任政策)。

1. 在 **Edit trust policy** (編輯信任政策)頁面上，確認信任關係包含以下政策，並且在叢集上具有 Fargate 描述檔的行。若是如此，請選擇 **Cancel** (取消)。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Condition": {
            "ArnLike": {
               "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
            }
         },
         "Principal": {
           "Service": "eks-fargate-pods.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

   如果政策相符，但沒有指定叢集上的 Fargate 描述檔的行，您可以在 `ArnLike` 物件頂端新增以下行。將 *region-code* 取代為您的叢集所在的 AWS 區域，將 *111122223333* 取代為您的 帳戶 ID，將 *my-cluster* 取代為您的叢集名稱。

   ```
   "aws:SourceArn": "arn:aws: eks:region-code:111122223333:fargateprofile/my-cluster/*",
   ```

   如果政策不相符，請將完整前一個政策複製到表單中，然後選擇 **Update policy** (更新政策)。將 *region-code* 取代為您的叢集所在的 AWS 區域。如果您想要在帳戶的所有 AWS 區域中使用相同的角色，請將 *region-code* 取代為 `*`。使用帳戶 ID 取代 *111122223333*，然後使用叢集名稱取代 *my-cluster*。若要在您的帳戶中的所有叢集使用相同角色，請使用 `*` 取代 *my-cluster*。

## 建立 Amazon EKS Pod 執行角色
<a name="create-pod-execution-role"></a>

如果您還沒有叢集的 Amazon EKS Pod 執行角色，您可以使用 AWS 管理主控台 或 AWS CLI 來建立它。

 AWS 管理主控台   

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 在 **Roles** (角色) 頁面上，選擇 **Create role** (建立角色)。

1. 在 **Select trusted entity** (選取信任的實體) 頁面上，執行以下作業：

   1. 在**信任的實體類型**區段中，選擇** AWS 服務**。

   1. 從** AWS 其他服務的使用案例**下拉式清單中，選擇 **EKS**。

   1. 選擇 **EKS - Fargate Pod**。

   1. 選擇**下一步**。

1. 在 **Add permissions** (新增許可) 頁面上，選擇 **Next** (下一步)。

1. 在 **Name, review, and create** (命名、檢閱和建立) 頁面上，執行以下作業：

   1. 針對 **Role name** (角色名稱)，為您的角色輸入唯一名稱 (例如 `AmazonEKSFargatePodExecutionRole`)。

   1. 藉由連接標籤做為鍵值對，在**新增標籤 (選用)** 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊，請參閱《IAM 使用者指南》**中的[標記 IAM 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

   1. 選擇建**立角色**。

1. 在 **Roles** (角色) 頁面上，搜尋 **Amazon EKS Fargate Pod Execution Role** (Amazon EKS Fargate Pod 執行角色) 的角色清單。選擇角色。

1. 在 **Amazon EKS Fargate Pod Execution Role** (Amazon EKS Fargate Pod 執行角色) 頁面上，執行下列動作：

   1. 選擇 **Trust relationships (信任關係)**。

   1. 選擇 **Edit trust policy** (編輯信任政策)。

1. 在 **Edit trust policy** (編輯信任政策) 頁面上，執行下列動作：

   1. 請複製以下內容，並在 **Edit trust policy** (編輯信任政策) 表單貼上。將 *region-code* 取代為您的叢集所在的 AWS 區域。如果您想要在帳戶的所有 AWS 區域中使用相同的角色，請將 *region-code* 取代為 `*`。使用帳戶 ID 取代 *111122223333*，然後使用叢集名稱取代 *my-cluster*。若要在您的帳戶中的所有叢集使用相同角色，請使用 `*` 取代 *my-cluster*。

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Condition": {
               "ArnLike": {
                  "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
               }
            },
            "Principal": {
              "Service": "eks-fargate-pods.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. 選擇**更新政策**。

 AWS CLI  

1. 複製以下內容並在名為 `pod-execution-role-trust-policy.json` 的檔案貼上。將 *region-code* 取代為您的叢集所在的 AWS 區域。如果您想要在帳戶的所有 AWS 區域中使用相同的角色，請將 *region-code* 取代為 `*`。使用帳戶 ID 取代 *111122223333*，然後使用叢集名稱取代 *my-cluster*。若要在您的帳戶中的所有叢集使用相同角色，請使用 `*` 取代 *my-cluster*。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Condition": {
            "ArnLike": {
               "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
            }
         },
         "Principal": {
           "Service": "eks-fargate-pods.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. 建立 Pod 執行 IAM 角色。

   ```
   aws iam create-role \
     --role-name AmazonEKSFargatePodExecutionRole \
     --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
   ```

1. 將必要的 Amazon EKS 受管 IAM 政策連接到角色。

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \
     --role-name AmazonEKSFargatePodExecutionRole
   ```

# Amazon EKS 連接器 IAM 角色
<a name="connector-iam-role"></a>

您可以連接 Kubernetes 叢集，以在 中檢視它們 AWS 管理主控台。若要連接至 Kubernetes 叢集，請建立 IAM 角色。

## 檢查是否有現有的 EKS 連接器角色
<a name="check-connector-role"></a>

您可使用以下程序，檢查帳戶是否已有 Amazon EKS 連接器角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋 `AmazonEKSConnectorAgentRole` 的角色清單。如果包含 `AmazonEKSConnectorAgentRole` 的角色不存在，請參閱 [建立 Amazon EKS 連接器代理程式角色](#create-connector-role) 以建立角色。如果包含 `AmazonEKSConnectorAgentRole` 的角色存在，請選取角色以檢視連接的政策。

1. 選擇**許可**。

1. 確定 **AmazonEKSConnectorAgentPolicy** 受管政策已附加到該角色。如果已連接政策，則您的 Amazon EKS 連接器角色應已設定妥當。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係包含下列政策。如果信任關係符合下列政策，請選擇 **Cancel** (取消)。如果信任關係不符合，請將政策複製到**編輯信任政策**視窗中，然後選擇**更新政策**。

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ssm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

## 建立 Amazon EKS 連接器代理程式角色
<a name="create-connector-role"></a>

您可以使用 AWS 管理主控台 or AWS CloudFormation 來建立連接器代理程式角色。

 AWS CLI  

1. 建立名為 `eks-connector-agent-trust-policy.json` 的檔案，其中包含用於 IAM 角色的下列 JSON。

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ssm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

1. 建立名為 `eks-connector-agent-policy.json` 的檔案，其中包含用於 IAM 角色的下列 JSON。

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "SsmControlChannel",
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel"
               ],
               "Resource": "arn:aws:eks:*:*:cluster/*"
           },
           {
               "Sid": "ssmDataplaneOperations",
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenDataChannel",
                   "ssmmessages:OpenControlChannel"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. 使用信任政策和您在先前清單項目中建立的政策，建立 Amazon EKS 連接器代理程式角色。

   ```
   aws iam create-role \
        --role-name AmazonEKSConnectorAgentRole \
        --assume-role-policy-document file://eks-connector-agent-trust-policy.json
   ```

1. 將政策連接到 Amazon EKS 連接器代理程式角色。

   ```
   aws iam put-role-policy \
        --role-name AmazonEKSConnectorAgentRole \
        --policy-name AmazonEKSConnectorAgentPolicy \
        --policy-document file://eks-connector-agent-policy.json
   ```

 AWS CloudFormation  

1. 將下列 AWS CloudFormation 範本儲存至本機系統上的文字檔案。
**注意**  
此範本也會建立服務連結角色，否則會在呼叫 `registerCluster` API 時建立。如需詳細資訊，請參閱 [使用角色將 Kubernetes 叢集連線至 Amazon EKS](using-service-linked-roles-eks-connector.md)。

   ```
   ---
   AWSTemplateFormatVersion: '2010-09-09'
   Description: 'Provisions necessary resources needed to register clusters in EKS'
   Parameters: {}
   Resources:
     EKSConnectorSLR:
       Type: AWS::IAM::ServiceLinkedRole
       Properties:
         AWSServiceName: eks-connector.amazonaws.com
   
     EKSConnectorAgentRole:
       Type: AWS::IAM::Role
       Properties:
         AssumeRolePolicyDocument:
           Version: '2012-10-17'
           Statement:
             - Effect: Allow
               Action: [ 'sts:AssumeRole' ]
               Principal:
                 Service: 'ssm.amazonaws.com'
   
     EKSConnectorAgentPolicy:
       Type: AWS::IAM::Policy
       Properties:
         PolicyName: EKSConnectorAgentPolicy
         Roles:
           - {Ref: 'EKSConnectorAgentRole'}
         PolicyDocument:
           Version: '2012-10-17'
           Statement:
             - Effect: 'Allow'
               Action: [ 'ssmmessages:CreateControlChannel' ]
               Resource:
               - Fn::Sub: 'arn:${AWS::Partition}:eks:*:*:cluster/*'
             - Effect: 'Allow'
               Action: [ 'ssmmessages:CreateDataChannel', 'ssmmessages:OpenDataChannel', 'ssmmessages:OpenControlChannel' ]
               Resource: "*"
   Outputs:
     EKSConnectorAgentRoleArn:
       Description: The agent role that EKS connector uses to communicate with AWS services.
       Value: !GetAtt EKSConnectorAgentRole.Arn
   ```

1. 開啟 [AWS CloudFormation 主控台](https://console.aws.amazon.com/cloudformation/)。

1. 選擇 **Create stack (建立堆疊) > 使用新資源 (標準)**。

1. 針對 **Specify template (指定範本)**，選擇 **Upload a template file (上傳範本檔案)**，然後選擇 **Choose file (選擇檔案)**。

1. 選擇您剛建立的檔案，然後選擇 **Next (下一步)**。

1. 針對 **Stack name (堆疊名稱)**，輸入您角色的名稱 (例如 `eksConnectorAgentRole`)，然後選擇 **Next (下一步)**。

1. 在 **Configure stack options** (設定堆疊選項) 頁面，選擇 **Next** (下一步)。

1. 在 **Review** (檢閱) 頁面上，檢閱您的資訊，確認該堆疊可能會建立 IAM 資源，並選擇 **Create stack** (建立堆疊)。

# AWS Amazon Elastic Kubernetes Service 的 受管政策
<a name="security-iam-awsmanpol"></a>

 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新 AWS 受管政策中定義的許可，則更新會影響政策連接的所有主體身分 （使用者、群組和角色）。當新 AWS 服務啟動或新 API 操作可用於現有服務時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 受管政策：AmazonEKS\$1CNI\$1Policy
<a name="security-iam-awsmanpol-amazoneks-cni-policy"></a>

您可以將 `AmazonEKS_CNI_Policy` 連接到 IAM 實體。在建立 Amazon EC2 節點群組之前，必須將此政策連接到[節點 IAM 角色](create-node-role.md)，或連接到由適用於 Kubernetes 的 Amazon VPC CNI 外掛程式專門使用的 IAM 角色。這樣一來，可以代表您執行動作。我們建議您將政策連接至僅供外掛程式使用的角色。如需詳細資訊，請參閱[使用 Amazon VPC CNI 將 IP 指派給 Pod](managing-vpc-cni.md)及[設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md)。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ec2:*NetworkInterface` 和 `ec2:*PrivateIpAddresses` ** – 允許 Amazon VPC CNI 外掛程式執行動作，例如佈建彈性網路介面和 Pod 的 IP 位址，以便為在 Amazon EKS 中執行的應用程式提供聯網。
+  ** `ec2` 讀取動作** – 允許 Amazon VPC CNI 外掛程式執行動作，例如對執行個體與子網路進行描述，以查看 Amazon VPC 子網路中可用 IP 位址的數量。VPC CNI 可使用每個子網路中空閒的 IP 位址，選擇建立彈性網路介面時，使用最空閒 IP 位址的子網路。

若要檢視 JSON 政策文件的最新版本，請參閱[《 受管政策參考指南》中的 AmazonEKS\$1CNI\$1Policy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html#AmazonEKS_CNI_Policy-json)。 AWS 

## AWS 受管政策：AmazonEKSClusterPolicy
<a name="security-iam-awsmanpol-amazoneksclusterpolicy"></a>

您可以將 `AmazonEKSClusterPolicy` 連接到 IAM 實體。建立叢集之前，您必須具有連接了此政策的[叢集 IAM 角色](cluster-iam-role.md)。由 Amazon EKS 管理的 Kubernetes 叢集會代表您呼叫其他 AWS 服務。他們會執行此作業，以管理您搭配本服務使用的資源。

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `autoscaling` ** – 讀取和更新 Auto Scaling 群組的組態。Amazon EKS 不會使用這些許可，但會保留在政策中以確保回溯相容性。
+  ** `ec2` ** – 使用與 Amazon EC2 節點相關聯的磁碟區和網路資源。這是必要項目，以便 Kubernetes 控制平面可以將執行個體加入叢集，並動態佈建和管理 Kubernetes 持久性磁碟區請求的 Amazon EBS 磁碟區。
+  ** `ec2` ** - 刪除由 VPC CNI 建立的彈性網路介面。此動作很必要，這樣一來 EKS 就能在 VPC CNI 非預期退出的情況下，清理留下的彈性網路介面。
+  ** `elasticloadbalancing` ** – 使用 Elastic Load Balancer，並將節點作為目標新增至 Elastic Load Balancers。這是必要項目，以便 Kubernetes 控制平台可以動態佈建 Kubernetes 服務要求的 Elastic Load Balancer。
+  ** `iam` ** – 建立服務連結角色。這是必要項目，以便 Kubernetes 控制平面可以動態佈建 Kubernetes 服務要求的 Elastic Load Balancer。
+  ** `kms` ** – 從 AWS KMS 讀取金鑰。這是 Kubernetes 控制平面支援在 `etcd` 中存放的 Kubernetes 秘密之[秘密加密](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)的必要條件。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html#AmazonEKSClusterPolicy-json)。

## AWS 受管政策：AmazonEKSDashboardConsoleReadOnly
<a name="security-iam-awsmanpol-amazoneksdashboardconsolereadonly"></a>

您可以將 `AmazonEKSDashboardConsoleReadOnly` 連接到 IAM 實體。

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `eks` ** - 以唯讀方式存取 EKS 儀表板資料、資源及叢集版本資訊。這允許檢視 EKS 相關的指標及叢集組態詳細資訊。
+  ** `organizations` ** - AWS Organizations 資訊的唯讀存取權，包括：
  + 檢視組織詳細資訊與服務存取權
  + 列示組織根目錄、帳戶與組織單位
  + 檢視組織結構

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSDashboardConsoleReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSDashboardConsoleReadOnly.html#AmazonEKSDashboardConsoleReadOnly-json)。

## AWS 受管政策：AmazonEKSFargatePodExecutionRolePolicy
<a name="security-iam-awsmanpol-amazoneksfargatepodexecutionrolepolicy"></a>

您可以將 `AmazonEKSFargatePodExecutionRolePolicy` 連接到 IAM 實體。在建立 Fargate 描述檔之前，您必須先建立 Fargate Pod 執行角色並將此政策連接至該角色。如需詳細資訊，請參閱[步驟 2：建立 Fargate Pod 執行角色](fargate-getting-started.md#fargate-sg-pod-execution-role)及[定義哪些 Pod 在啟動時會使用 AWS Fargate](fargate-profile.md)。

此政策授予角色許可，該許可提供在 Fargate 上執行 Amazon EKS Pod 所需的其他 AWS 服務資源的存取權。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ecr` ** – 允許在 Fargate 上執行的 Pod 提取存放在 Amazon ECR 中的容器映像。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSFargatePodExecutionRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSFargatePodExecutionRolePolicy.html#AmazonEKSFargatePodExecutionRolePolicy-json)。

## AWS 受管政策：AmazonEKSConnectorServiceRolePolicy
<a name="security-iam-awsmanpol-AmazonEKSConnectorServiceRolePolicy"></a>

您不得將 `AmazonEKSConnectorServiceRolePolicy` 連接到 IAM 實體。此政策會連接到服務連結角色，而此角色可讓 Amazon EKS 代表您執行動作。如需詳細資訊，請參閱[使用角色將 Kubernetes 叢集連線至 Amazon EKS](using-service-linked-roles-eks-connector.md)。

該角色可讓 Amazon EKS 連接 Kubernetes 叢集。連接的政策可讓角色管理必要的資源，以連接到已註冊的 Kubernetes 叢集。

 **許可詳細資訊** 

此政策包含下列允許 Amazon EKS 完成下列任務的許可。
+  ** `SSM Management` ** – 建立、描述和刪除 SSM 啟用，以及取消註冊受管執行個體。這允許基本 Systems Manager 操作。
+  ** `Session Management` ** – 啟動專門針對 EKS 叢集的 SSM 工作階段，並使用 AmazonEKS 文件執行非互動式命令。
+  ** `IAM Role Passing` ** – 將 IAM 角色特別傳遞至 SSM 服務，由將傳遞角色限制為 的條件控制`ssm.amazonaws.com`。
+  ** `EventBridge Rules` ** – 建立 EventBridge 規則和目標，但僅限於由 管理時`eks-connector.amazonaws.com`。規則特別限於 AWS SSM 做為事件來源。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSConnectorServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSConnectorServiceRolePolicy.html)。

## AWS 受管政策：AmazonEKSForFargateServiceRolePolicy
<a name="security-iam-awsmanpol-amazoneksforfargateservicerolepolicy"></a>

您不得將 `AmazonEKSForFargateServiceRolePolicy` 連接到 IAM 實體。此政策會連接到服務連結角色，而此角色可讓 Amazon EKS 代表您執行動作。如需詳細資訊，請參閱`AWSServiceRoleforAmazonEKSForFargate`。

此政策授予 Amazon EKS 執行 Fargate 任務的必要許可。只有在您擁有 Fargate 節點時才會使用此政策。

 **許可詳細資訊** 

此政策包含下列允許 Amazon EKS 完成下列任務的許可。
+  ** `ec2` ** – 建立和刪除彈性網路介面，並描述彈性網路介面和資源。這是必要的，因此 Amazon EKS Fargate 服務可以設定 Fargate Pod 所需的 VPC 聯網。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSForFargateServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSForFargateServiceRolePolicy.html#AmazonEKSForFargateServiceRolePolicy-json)。

## AWS 受管政策：AmazonEKSComputePolicy
<a name="security-iam-awsmanpol-AmazonEKSComputePolicy"></a>

您可以將 `AmazonEKSComputePolicy` 連接到 IAM 實體。您可連接此政策至[叢集 IAM 角色](cluster-iam-role.md)，以便擴充 EKS 可在帳戶中管理的資源。

此政策授予 Amazon EKS 針對 EKS 叢集建立及管理 EC2 執行個體的必要許可，以及設定 EC2 的必要 IAM 許可。此外，此政策還授予 Amazon EKS 代您建立 EC2 Spot 服務連結角色的許可。

### 許可詳細資訊
<a name="_permissions_details"></a>

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ec2` 許可**：
  +  `ec2:CreateFleet` 和 `ec2:RunInstances` - 允許建立 EC2 執行個體，以及使用 EKS 叢集節點的特定 EC2 資源 (影像、安全群組、子網路)。
  +  `ec2:CreateLaunchTemplate` - 允許針對 EKS 叢集節點建立 EC2 啟動範本。
  + 此外，對於透過 EKS 叢集名稱及其他相關標籤標記的資源，此政策還包括限制使用這些 EC2 許可的條件。
  +  `ec2:CreateTags` - 允許新增標籤新增至透過 `CreateFleet`、`RunInstances` 與 `CreateLaunchTemplate` 動作建立的 EC2 資源。
+  ** `iam` 許可**：
  +  `iam:AddRoleToInstanceProfile` - 允許新增 IAM 角色至 EKS 運算執行個體設定檔。
  +  `iam:PassRole` - 允許傳遞必要的 IAM 角色至 EC2 服務。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSComputePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSComputePolicy.html#AmazonEKSComputePolicy-json)。

## AWS 受管政策：AmazonEKSNetworkingPolicy
<a name="security-iam-awsmanpol-AmazonEKSNetworkingPolicy"></a>

您可以將 `AmazonEKSNetworkingPolicy` 連接到 IAM 實體。您可連接此政策至[叢集 IAM 角色](cluster-iam-role.md)，以便擴充 EKS 可在帳戶中管理的資源。

制定此政策旨在授予 Amazon EKS 建立及管理 EKS 叢集網路介面的必要許可，以便控制平面與工作節點能夠正常通訊及運作。

### 許可詳細資訊
<a name="_permissions_details_2"></a>

此政策還授予以下許可，讓 Amazon EKS 能夠管理叢集的網路介面：
+  ** `ec2` 網路介面許可**：
  +  `ec2:CreateNetworkInterface` - 允許建立 EC2 網路介面。
  + 此政策包括各種條件，旨在將此許可的使用限制為標記有 EKS 叢集名稱與 Kubernetes CNI 節點名稱的網路介面。
  +  `ec2:CreateTags` - 允許新增標籤至透過 `CreateNetworkInterface` 動作建立的網路介面。
+  ** `ec2` 網路介面管理許可**：
  +  `ec2:AttachNetworkInterface`、`ec2:ModifyNetworkInterfaceAttribute`、 `ec2:DetachNetworkInterface` - 允許連接、修改網路介面屬性，以及將網路介面分離到 EC2 執行個體。
  +  `ec2:UnassignPrivateIpAddresses`、`ec2:UnassignIpv6Addresses`、`ec2:AssignPrivateIpAddresses`、`ec2:AssignIpv6Addresses` - 允許管理網路介面的 IP 位址指派。
  + 這些許可的使用限制為標記有 EKS 叢集名稱的網路介面。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSNetworkingPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSNetworkingPolicy.html#AmazonEKSNetworkingPolicy-json)。

## AWS 受管政策：AmazonEKSBlockStoragePolicy
<a name="security-iam-awsmanpol-AmazonEKSBlockStoragePolicy"></a>

您可以將 `AmazonEKSBlockStoragePolicy` 連接到 IAM 實體。您可連接此政策至[叢集 IAM 角色](cluster-iam-role.md)，以便擴充 EKS 可在帳戶中管理的資源。

此政策可授予 Amazon EKS 建立、管理及維護 EKS 叢集 EC2 磁碟區與快照的必要許可，從而支援控制平面與工作節點依據 Kubernetes 工作負載需求，來佈建及使用持續性儲存。

### 許可詳細資訊
<a name="_permissions_details_3"></a>

此 IAM 政策可授予以下許可，以便 Amazon EKS 能夠管理 EC2 磁碟區及快照：
+  ** `ec2` 磁碟區管理許可**：
  +  `ec2:AttachVolume`、`ec2:DetachVolume`、`ec2:ModifyVolume`、`ec2:EnableFastSnapshotRestores` - 允許連接、分離、修改及啟用 EC2 磁碟區的快速快照還原。
  + 這些許可的使用限制為標記有 EKS 叢集名稱的磁碟區。
  +  `ec2:CreateTags` - 允許新增標籤至透過 `CreateVolume` 與 `CreateSnapshot` 動作建立的 EC2 磁碟區及快照。
+  ** `ec2` 磁碟區建立許可**：
  +  `ec2:CreateVolume` - 允許建立全新的 EC2 磁碟區。
  + 對於透過 EKS 叢集名稱及其他相關標籤標記的磁碟區，此政策包括限制使用此許可的條件。
  +  `ec2:CreateSnapshot` - 允許建立全新的 EC2 磁碟區快照。
  + 對於透過 EKS 叢集名稱及其他相關標籤標記的快照，此政策包括限制使用此許可的條件。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSBlockStoragePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSBlockStoragePolicy.html#AmazonEKSBlockStoragePolicy-json)。

## AWS 受管政策：AmazonEKSLoadBalancingPolicy
<a name="security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy"></a>

您可以將 `AmazonEKSLoadBalancingPolicy` 連接到 IAM 實體。您可連接此政策至[叢集 IAM 角色](cluster-iam-role.md)，以便擴充 EKS 可在帳戶中管理的資源。

此 IAM 政策授予 Amazon EKS 使用各種 AWS 服務的必要許可，以管理 Elastic Load Balancer (ELBs) 和相關資源。

### 許可詳細資訊
<a name="_permissions_details_4"></a>

此政策授予的主要許可包括：
+  ** `elasticloadbalancing` **：允許建立、修改與管理 Elastic Load Balancer 及目標群組。這包括建立、更新與刪除負載平衡器、目標群組、接聽程式及規則的許可。
+  ** `ec2` **：允許建立及管理 Kubernetes 控制平面聯結執行個體至叢集，以及管理 Amazon EBS 磁碟區所需的安全群組。此外還允許描述及列示 EC2 資源，例如執行個體、VPC、子網路、安全群組，以及其他聯網資源。
+  ** `iam` **：允許針對 Elastic Load Balancing 建立服務連結角色，Kubernetes 控制平面動態佈建 ELB 必須使用該角色。
+  ** `kms` **：允許從 AWS KMS 讀取金鑰，這是 Kubernetes 控制平面支援加密存放在 等項目中的 Kubernetes 秘密所必需。
+  ** `wafv2` ** 和 ** `shield` **：允許關聯和取消關聯 Web ACLs，以及建立/刪除 Elastic Load Balancer AWS 的 Shield 保護。
+  ** `cognito-idp` **、** `acm` ** 及 ** `elasticloadbalancing` **：授予描述使用者集區用戶端、列示並描述憑證，以及描述目標群組的許可，Kubernetes 控制平面管理 Elastic Load Balancer 必須使用這些許可。

此政策還包括多項條件檢查，以確保使用 `eks:eks-cluster-name` 標籤，將許可範圍限定為正在管理的特定 EKS 叢集。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSLoadBalancingPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSLoadBalancingPolicy.html#AmazonEKSLoadBalancingPolicy-json)。

## AWS 受管政策：AmazonEKSMCPReadOnlyAccess
<a name="security-iam-awsmanpol-amazoneksmcpreadonlyaccess"></a>

您可以將 `AmazonEKSMCPReadOnlyAccess` 連接到 IAM 實體。此政策提供 Amazon EKS 資源和相關 AWS 服務的唯讀存取權，讓 Amazon EKS 模型內容通訊協定 (MCP) 伺服器能夠執行可觀測性和故障診斷操作，而無需對您的基礎設施進行任何修改。

 **許可詳細資訊** 

此政策包含下列許可，允許主體完成下列任務：
+  ** `eks` ** 允許主體描述和列出 EKS 叢集、節點群組、附加元件、存取項目、洞見，以及存取 Kubernetes API 以進行唯讀操作。
+  ** `iam` ** 允許主體擷取 IAM 角色、政策及其附件的相關資訊，以了解與 EKS 資源相關聯的許可。
+  ** `ec2` ** 允許主體描述 VPCs、子網路和路由表，以了解 EKS 叢集的網路組態。
+  ** `sts` ** 允許主體擷取呼叫者身分資訊以進行身分驗證和授權。
+  ** `logs` ** 允許主體啟動查詢並從 CloudWatch Logs 擷取查詢結果，以進行疑難排解和監控。
+  ** `cloudwatch` ** 允許主體擷取指標資料，以監控叢集和工作負載效能。
+  ** `eks-mcp` ** 允許主體在 Amazon EKS MCP Server 中叫用 MCP 操作和呼叫唯讀工具。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSMCPReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSMCPReadOnlyAccess.html)。

## AWS 受管政策：AmazonEKSServicePolicy
<a name="security-iam-awsmanpol-amazoneksservicepolicy"></a>

您可以將 `AmazonEKSServicePolicy` 連接到 IAM 實體。在 2020 年 4 月 16 日之前建立的叢集，需要您建立 IAM 角色並將此政策連接到該角色。在 2020 年 4 月 16 日或之後建立的叢集不需要您建立角色，也不需要您指派此政策。使用具有 `iam:CreateServiceLinkedRole` 許可的 IAM 委託人建立叢集，即會為您自動建立 [AWSServiceRoleforAmazonEKS](using-service-linked-roles-eks.md#service-linked-role-permissions-eks) 服務連結角色。服務連結角色已連接[受管政策：AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。

此政策允許 Amazon EKS 建立和管理操作 Amazon EKS 叢集所需的資源。

 **許可詳細資訊** 

此政策包含下列允許 Amazon EKS 完成下列任務的許可。
+  ** `eks` ** – 在您開始更新之後，更新叢集的 Kubernetes 版本。Amazon EKS 不會使用這些許可，但會保留在政策中以確保回溯相容性。
+  ** `ec2` ** – 使用彈性網路介面及其他網路資源和標籤。Amazon EKS 要求這樣做，以設定可促進節點與 Kubernetes 控制平面之間的通訊的網路。讀取安全群組相關資訊。更新安全群組標籤。
+  ** `route53` ** – 將 VPC 與託管區域建立關聯。Amazon EKS 必須執行這項操作，才能為您的 Kubernetes 叢集 API 伺服器啟用私有端點聯網。
+  ** `logs` ** – 日誌事件。這是必要項目，以便 Amazon EKS 可以將 Kubernetes 控制平面日誌運送到 CloudWatch。
+  ** `iam` ** – 建立服務連結角色。這是必需的，以便 Amazon EKScan 代表您建立 [Amazon EKS 的服務連結角色許可](using-service-linked-roles-eks.md#service-linked-role-permissions-eks) 服務連結角色。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSServicePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServicePolicy.html#AmazonEKSServicePolicy-json)。

## AWS 受管政策：AmazonEKSServiceRolePolicy
<a name="security-iam-awsmanpol-amazoneksservicerolepolicy"></a>

您不得將 `AmazonEKSServiceRolePolicy` 連接到 IAM 實體。此政策會連接到服務連結角色，而此角色可讓 Amazon EKS 代表您執行動作。如需詳細資訊，請參閱[Amazon EKS 的服務連結角色許可](using-service-linked-roles-eks.md#service-linked-role-permissions-eks)。使用具有 `iam:CreateServiceLinkedRole` 許可的 IAM 委託人建立叢集，即會為您自動建立 [AWSServiceRoleforAmazonEKS](using-service-linked-roles-eks.md#service-linked-role-permissions-eks) 服務連結角色且此政策會與此連接。

此政策允許服務連結角色代表您呼叫 AWS 服務。

 **許可詳細資訊** 

此政策包含下列允許 Amazon EKS 完成下列任務的許可。
+  ** `ec2` ** – 建立並描述彈性網路介面和 Amazon EC2 執行個體、叢集安全群組，以及建立叢集所需的 VPC。如需詳細資訊，請參閱[檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md)。讀取安全群組相關資訊。更新安全群組標籤。閱讀隨需容量保留的相關資訊。讀取 VPC 組態，包括路由表和網路 ACLs以在叢集洞察中偵測組態問題。
+  ** `ec2` 自動模式** – 終止 EKS 自動模式建立的 EC2 執行個體。如需詳細資訊，請參閱[利用 EKS 自動模式自動運作叢集基礎設施](automode.md)。
+  ** `iam` ** – 列出連接至 IAM 角色的所有受管政策。這是必要項目，以便 Amazon EKS 可以列出和驗證建立叢集所需的所有受管政策和許可。
+  **將 VPC 與託管區域建立關聯** – Amazon EKS 必須執行這項操作，才能為您的 Kubernetes 叢集 API 伺服器啟用私有端點聯網。
+  **Log event** (日誌事件) – 這是必要項目，以便 Amazon EKS 可以將 Kubernetes 控制平面日誌運送到 CloudWatch。
+  **放置指標** – 這是必要項目，以便 Amazon EKS 可以將 Kubernetes 控制平面日誌運送到 CloudWatch。
+  ** `eks` ** - 管理叢集對項目及政策的存取權，以便精細控制誰能存取 EKS 資源，及其可執行的動作。這包括在運算、聯網、負載平衡及儲存操作方面的關聯標準存取政策。
+  ** `elasticloadbalancing` ** - 建立、管理及刪除與 EKS 叢集關聯的負載平衡器及其元件 (接聽程式、目標群組、憑證)。檢視負載平衡器的屬性與運作狀態。
+  ** `events` ** - 建立和管理 EventBridge 規則，以監控與 EKS 叢集相關的 EC2 和 AWS 運作狀態事件，從而自動回應基礎設施變更和運作狀態提醒。
+  ** `iam` ** - 使用 "eks" 首碼來管理 EC2 執行個體設定檔，包括建立、刪除，以及角色關聯，管理 EKS 節點必須使用該首碼。允許描述任何執行個體描述檔，讓使用者能夠為其工作者節點定義要使用的自訂執行個體描述檔。
+  ** `pricing` ** ** `shield` ** - 存取 AWS 定價資訊和 Shield 保護狀態，為 EKS 資源啟用成本管理和進階安全功能。
+  **資源清理** - 在叢集清理操作期間，安全地刪除 EKS 標記的資源，包括磁碟區、快照、啟動範本，以及網路介面。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServiceRolePolicy.html#AmazonEKSServiceRolePolicy-json)。

## AWS 受管政策：AmazonEKSVPCResourceController
<a name="security-iam-awsmanpol-amazoneksvpcresourcecontroller"></a>

您可將 `AmazonEKSVPCResourceController` 政策連接到 IAM 身分。如果您使用的是[適用於 Pod 的安全群組](security-groups-for-pods.md)，您必須將此政策連接至 [Amazon EKS 叢集 IAM 角色](cluster-iam-role.md)，以代表您執行動作。

此政策會授予叢集角色許可，以管理節點的彈性網路介面和 IP 地址。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ec2` ** – 管理彈性網路介面和 IP 位址，以支援 Pod 安全群組和 Windows 節點。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSVPCResourceController](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSVPCResourceController.html#AmazonEKSVPCResourceController-json)。

## AWS 受管政策：AmazonEKSWorkerNodePolicy
<a name="security-iam-awsmanpol-amazoneksworkernodepolicy"></a>

您可以將 `AmazonEKSWorkerNodePolicy` 連接到 IAM 實體。您必須將此政策連接至您建立 Amazon EC2 節點時指定的 [IAM 角色](create-node-role.md)，從而可讓 Amazon EKS 代表您執行動作。如果您使用 `eksctl` 建立節點群組，則其會建立節點 IAM 角色並自動將此政策連接至角色。

此政策授予 Amazon EKS Amazon EC2 節點許可，以連接到 Amazon EKS 叢集。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ec2` ** – 讀取執行個體磁碟區和網路資訊。如此一來，Kubernetes 節點才能描述節點加入 Amazon EKS 叢集所需的 Amazon EC2 資源相關資訊，這是必要的。
+  ** `eks` ** – 選擇性地將叢集描述為節點引導的一部分。
+  ** `eks-auth:AssumeRoleForPodIdentity` ** – 允許擷取節點上 EKS 工作負載的憑證。必須要有這項，EKS Pod 身分識別才能正常運作。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html#AmazonEKSWorkerNodePolicy-json)。

## AWS 受管政策：AmazonEKSWorkerNodeMinimalPolicy
<a name="security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy"></a>

您無法將 AmazonEKSWorkerNodeMinimalPolicy 附加至您的 IAM 實體。您必須將此政策連接至您建立 Amazon EC2 節點時指定的 IAM 角色，從而可讓 Amazon EKS 代表您執行動作。

此政策授予 Amazon EKS Amazon EC2 節點許可，以連接到 Amazon EKS 叢集。此政策的許可比 AmazonEKSWorkerNodePolicy 少。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  `eks-auth:AssumeRoleForPodIdentity` – 允許擷取節點上 EKS 工作負載的憑證。必須要有這項，EKS Pod 身分識別才能正常運作。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodeMinimalPolicy.html#AmazonEKSWorkerNodeMinimalPolicy-json)。

## AWS 受管政策：AWSServiceRoleForAmazonEKSNodegroup
<a name="security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup"></a>

您不得將 `AWSServiceRoleForAmazonEKSNodegroup` 連接到 IAM 實體。此政策會連接到服務連結角色，而此角色可讓 Amazon EKS 代表您執行動作。如需詳細資訊，請參閱[Amazon EKS 的服務連結角色許可](using-service-linked-roles-eks-nodegroups.md#service-linked-role-permissions-eks-nodegroups)。

此政策可授予 `AWSServiceRoleForAmazonEKSNodegroup` 角色許可，允許它在您的帳戶中建立和管理 Amazon EC2 節點群組。

 **許可詳細資訊** 

此政策包含下列許可，這些許可能讓 Amazon EKS 完成下列任務：
+  ** `ec2` ** – 使用安全群組、標籤、容量保留和啟動範本。Amazon EKS 受管節點群組必須使用該項來啟用遠端存取組態，以及描述可在受管節點群組使用的容量保留。此外，Amazon EKS 受管節點群組代表您建立啟動範本。這是為了設定支援每個受管節點群組的 Amazon EC2 Auto Scaling 群組。
+  ** `iam` ** – 建立服務連結角色並傳遞角色。Amazon EKS 受管節點群組必須執行這項操作，才能管理建立受管節點群組時所傳遞之角色的執行個體描述檔。此執行個體描述檔適用於作為受管節點群組一部分的 Amazon EC2 執行個體。Amazon EKS 需要為其他服務 (例如 Amazon EC2 Auto Scaling 群組) 建立服務連結角色。這些許可會用於建立受管節點群組。
+  ** `autoscaling` ** – 使用安全的 Auto Scaling 群組。Amazon EKS 受管節點群組必須執行這項操作，才能管理支援每個受管節點群組的 Amazon EC2 Auto Scaling 群組。它也用於支援功能，例如在節點群組更新期間終止或回收節點時移出 Pod，以及管理在受管節點群組上設定的暖集區。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AWSServiceRoleForAmazonEKSNodegroup](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForAmazonEKSNodegroup.html#AWSServiceRoleForAmazonEKSNodegroup-json)。

## AWS 受管政策：AmazonEKSDashboardServiceRolePolicy
<a name="security-iam-awsmanpol-AmazonEKSDashboardServiceRolePolicy"></a>

您不得將 `AmazonEKSDashboardServiceRolePolicy` 連接到 IAM 實體。此政策會連接到服務連結角色，而此角色可讓 Amazon EKS 代表您執行動作。如需詳細資訊，請參閱[Amazon EKS 的服務連結角色許可](using-service-linked-roles-eks-dashboard.md#service-linked-role-permissions-eks-dashboard)。

此政策可授予 `AWSServiceRoleForAmazonEKSDashboard` 角色許可，允許它在您的帳戶中建立和管理 Amazon EC2 節點群組。

 **許可詳細資訊** 

此政策包括下列許可，用於提供完成下列任務的存取權：
+  ** `organizations` ** – 檢視 Organizations AWS 結構和帳戶的相關資訊。這包括下列各種許可：列示組織中的帳戶、檢視組織單位與根目錄、列示委派管理員、檢視可存取組織的服務，以及擷取組織與帳戶的詳細資訊。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSDashboardServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSDashboardServiceRolePolicy.html#AmazonEKSDashboardServiceRolePolicy-json)。

## AWS 受管政策：AmazonEBSCSIDriverPolicy
<a name="security-iam-awsmanpol-amazonebscsidriverservicerolepolicy"></a>

**重要**  
提供兩種新的 AWS受管 IAM 政策，可提供更嚴格的許可範圍：適用於標籤型範圍的 [AmazonEBSCSIDriverPolicyV2](#security-iam-awsmanpol-amazonebscsidriverpolicyv2)，或適用於叢集範圍隔離的 [AmazonEBSCSIDriverEKSClusterScopedPolicy](#security-iam-awsmanpol-amazonebscsidrivereksclusterscopedpolicy)。如果有興趣遷移，請參閱 [EBS CSI 驅動程式政策遷移](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/2918)。

此`AmazonEBSCSIDriverPolicy`政策允許 Amazon EBS 容器儲存介面 (CSI) 驅動程式代表您建立、修改、複製、連接、分離和刪除磁碟區。這包括修改現有磁碟區的標籤，以及在 EBS 磁碟區上啟用快速快照還原 (FSR)。它還授予 EBS CSI 驅動程式建立、鎖定、還原和刪除快照的許可，以及列出您的執行個體、磁碟區和快照。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEBSCSIDriverServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicy.html#AmazonEBSCSIDriverPolicy-json)。

## AWS 受管政策：AmazonEBSCSIDriverPolicyV2
<a name="security-iam-awsmanpol-amazonebscsidriverpolicyv2"></a>

`AmazonEBSCSIDriverPolicyV2` 政策是 更嚴格的替代方案`AmazonEBSCSIDriverPolicy`。它將 Amazon EBS CSI 驅動程式限制為僅管理以金鑰`ebs.csi.aws.com/cluster`設定為 標記的 EBS 磁碟區和快照`true`。資源`kubernetes.io/created-for/pvc/name`標籤也支援由樹狀內 Kubernetes 磁碟區外掛程式 (CSI 遷移磁碟區） 佈建的磁碟區。

如果從 遷移`AmazonEBSCSIDriverPolicy`，請參閱 [EBS CSI 驅動程式政策遷移](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/2918)。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEBSCSIDriverPolicyV2](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicyV2.html#AmazonEBSCSIDriverPolicyV2-json)。

## AWS 受管政策：AmazonEBSCSIDriverEKSClusterScopedPolicy
<a name="security-iam-awsmanpol-amazonebscsidrivereksclusterscopedpolicy"></a>

此`AmazonEBSCSIDriverEKSClusterScopedPolicy`政策限制 Amazon EBS CSI 驅動程式僅管理屬於特定 EKS 叢集的 EBS 磁碟區和快照。它需要資源標籤`ebs.csi.aws.com/cluster-name`才能符合 IAM 主體上的`eks-cluster-name`標籤，防止多個叢集共用相同 AWS 帳戶時跨叢集存取。執行個體上的連接和分離操作僅限於標記有 `eks:cluster-name` 標籤 （由受管節點群組上的 EKS 自動設定） 或 `ebs.csi.aws.com/cluster-name` 標籤 （適用於手動標記的執行個體） 的執行個體。

如果從 遷移`AmazonEBSCSIDriverPolicy`，請參閱 [EBS CSI 驅動程式政策遷移](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/2918)。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonEBSCSIDriverEKSClusterScopedPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverEKSClusterScopedPolicy.html#AmazonEBSCSIDriverEKSClusterScopedPolicy-json)。

## AWS 受管政策：AmazonEFSCSIDriverPolicy
<a name="security-iam-awsmanpol-amazonefscsidriverservicerolepolicy"></a>

`AmazonEFSCSIDriverPolicy` 政策可讓 Amazon EFS 容器儲存介面 (CSI) 代表您建立和刪除存取點。它還授予 Amazon EFS CSI 驅動程式許可，以列出您的存取點、檔案系統、掛載目標和 Amazon EC2 可用區域。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEFSCSIDriverPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEFSCSIDriverPolicy.html#AmazonEFSCSIDriverPolicy-json)。

## AWS 受管政策：AmazonS3FilesCSIDriverPolicy
<a name="security-iam-awsmanpol-amazons3filescsidriverservicerolepolicy"></a>

此`AmazonS3FilesCSIDriverPolicy`政策允許 Amazon EFS 容器儲存界面 (CSI) 代表您建立和刪除 Amazon S3 檔案存取點。它還授予 Amazon EFS CSI 驅動程式許可，以列出您的 Amazon S3 檔案存取點和檔案系統。

若要檢視最新版本的 JSON 政策文件，請參閱《 AWS 受管政策參考指南》中的 [AmazonS3FilesCSIDriverPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FilesCSIDriverPolicy.html#AmazonS3FilesCSIDriverPolicy-json)。

## AWS 受管政策：AmazonEKSLocalOutpostClusterPolicy
<a name="security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy"></a>

您可將此政策連接至 IAM 實體。建立本機叢集之前，您必須將此政策連接至您的[叢集角色](cluster-iam-role.md)。由 Amazon EKS 管理的 Kubernetes 叢集會代表您呼叫其他 AWS 服務。他們會執行此作業，以管理您搭配本服務使用的資源。

`AmazonEKSLocalOutpostClusterPolicy` 包含以下許可：
+  ** `ec2` 讀取動作** – 允許控制平面執行個體描述可用區域、路由表、執行個體，以及網路介面屬性。Amazon EC2 執行個體作為控制平面執行個體成功加入叢集所需的許可。
+  ** `ssm` ** – 允許 Amazon EC2 Systems Manager 連線至控制平面執行個體，Amazon EKS 會使用該連線進行通訊並管理帳戶中的本機叢集。
+  ** `logs` ** – 允許執行個體將日誌推送至 Amazon CloudWatch。
+  ** `secretsmanager` ** – 允許執行個體從 AWS Secrets Manager 安全地取得和刪除控制平面執行個體的引導資料。
+  ** `ecr` ** – 允許在控制平面執行個體上執行的 Pod 和容器提取存放在 Amazon Elastic Container Registry 中的容器映像。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSLocalOutpostClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSLocalOutpostClusterPolicy.html#AmazonEKSLocalOutpostClusterPolicy-json)。

## AWS 受管政策：AmazonEKSLocalOutpostServiceRolePolicy
<a name="security-iam-awsmanpol-amazonekslocaloutpostservicerolepolicy"></a>

您無法將此政策連接至 IAM 實體。使用具有 `iam:CreateServiceLinkedRole` 許可的 IAM 主體建立叢集時，Amazon EKS 會為您自動建立 [AWSServiceRoleforAmazonEKSLocalOutpost](using-service-linked-roles-eks-outpost.md) 服務連結角色且此政策會與此連接。此政策允許服務連結角色代表您為本機叢集呼叫 AWS 服務。

`AmazonEKSLocalOutpostServiceRolePolicy` 包含以下許可：
+  ** `ec2` ** – 允許 Amazon EKS 使用安全功能、網路和其他資源，成功啟動並管理帳戶中的控制平面執行個體。
+  ** `ssm`、`ssmmessages` ** – 允許 Amazon EC2 Systems Manager 連線至控制平面執行個體，Amazon EKS 會使用該連線進行通訊並管理帳戶中的本機叢集。
+  ** `iam` ** – 允許 Amazon EKS 管理與控制平面執行個體相關聯的執行個體設定檔。
+  ** `secretsmanager` ** - 允許 Amazon EKS 將控制平面執行個體的引導資料放入 AWS Secrets Manager，以便在執行個體引導期間安全地參考。
+  ** `outposts` ** – 允許 Amazon EKS 從您的帳戶取得 Outpost 資訊，以在 Outpost 中成功啟動本機叢集。

若要檢視 JSON 政策文件的最新版本，請參閱《 AWS 受管政策參考指南》中的 [AmazonEKSLocalOutpostServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSLocalOutpostServiceRolePolicy.html#AmazonEKSLocalOutpostServiceRolePolicy-json)。

## AWS 受管政策的 Amazon EKS 更新
<a name="security-iam-awsmanpol-updates"></a>

檢視自此服務開始追蹤 Amazon EKS AWS 受管政策更新以來的詳細資訊。

如需接收有關此特定文件頁面所有來源檔案變更的通知，您可透過 RSS 閱讀器來訂閱以下 URL：

```
https://github.com/awsdocs/amazon-eks-user-guide/commits/mainline/latest/ug/security/iam-reference/security-iam-awsmanpol.adoc.atom
```


| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  推出 [AmazonEBSCSIDriverPolicyV2](#security-iam-awsmanpol-amazonebscsidriverpolicyv2) 和 [AmazonEBSCSIDriverEKSClusterScopedPolicy](#security-iam-awsmanpol-amazonebscsidrivereksclusterscopedpolicy)。  |  引進 `AmazonEBSCSIDriverPolicyV2`和 `AmazonEBSCSIDriverEKSClusterScopedPolicy`作為 更嚴格的替代方案`AmazonEBSCSIDriverPolicy`。 會將 EBS CSI 驅動程式`AmazonEBSCSIDriverPolicyV2`範圍限定為標記為 `ebs.csi.aws.com/cluster` 的磁碟區和快照`true`。 會使用 `ebs.csi.aws.com/cluster-name`標籤將驅動程式`AmazonEBSCSIDriverEKSClusterScopedPolicy`範圍限定為屬於特定 EKS 叢集的磁碟區和快照。  |  2026 年 4 月 16 日  | 
|  已更新許可至 [AWS 受管政策：AmazonEKSLoadBalancingPolicy](#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy)。  |  已更新 `shield:CreateProtection`， 中的`shield:DeleteProtection`許可`AmazonEKSLoadBalancingPolicy`。這可讓 Amazon EKS 自動模式控制器新增防護。  |  2026 年 4 月 14 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSLoadBalancingPolicy](#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy)。  |  更新 中的`elasticloadbalancing:RegisterTargets`許可`AmazonEKSLoadBalancingPolicy`，以新增對多叢集和自訂目標群組繫結關係的支援  |  2026 年 3 月 20 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSLoadBalancingPolicy](#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy)。  |  在 中新增`elasticloadbalancing:ModifyIpPools`許可`AmazonEKSLoadBalancingPolicy`，以新增設定 ALB IPAM 集區的支援  |  2026 年 3 月 20 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSNetworkingPolicy](#security-iam-awsmanpol-AmazonEKSNetworkingPolicy)。  |  在 中新增`ec2:ModifyNetworkInterfaceAttribute`許可`AmazonEKSNetworkingPolicy`。這可讓 Amazon EKS 自動模式控制器修改與 EC2 執行個體相關的網路介面屬性  |  2026 年 2 月 3 日  | 
|  新增了許可至 [AWS 受管政策：AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  已將 `autoscaling:PutWarmPool`、 `autoscaling:DeleteWarmPool`和 `autoscaling:DescribeWarmPool`許可新增至 `AWSServiceRoleForAmazonEKSNodegroup`。這可讓 Amazon EKS 受管節點群組在整個節點群組生命週期中管理基礎 ASG 暖集區資源。  |  2026 年 2 月 17 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  針對 中的`iam:GetInstanceProfile`許可，移除目標執行個體描述檔名稱中的「eks」字首需求`AmazonEKSServiceRolePolicy`。這可讓 Amazon EKS Auto Mode 驗證和使用 NodeClasses 中的自訂執行個體描述檔，而不需要「eks」命名字首。  |  2026 年 2 月 2 日  | 
|  新增了許可至 [AmazonEBSCSIDriverPolicy](#security-iam-awsmanpol-amazonebscsidriverservicerolepolicy)。  |  新增允許 EBS CSI 驅動程式直接鎖定 EBS 快照的`ec2:LockSnapshot`許可。  |  2026 年 1 月 15 日  | 
|  推出了 [AWS 受管政策：AmazonEKSMCPReadOnlyAccess](#security-iam-awsmanpol-amazoneksmcpreadonlyaccess)。  |  Amazon EKS 推出了新的受管政策`AmazonEKSMCPReadOnlyAccess`，以在 Amazon EKS MCP Server 中啟用唯讀工具，以實現可觀測性和故障診斷。  |  2025 年 11 月 21 日  | 
|  新增了許可至 [AmazonEBSCSIDriverPolicy](#security-iam-awsmanpol-amazonebscsidriverservicerolepolicy)。  |  新增允許 EBS CSI 驅動程式直接複製 EBS 磁碟區的`ec2:CopyVolumes`許可。  |  2025 年 11 月 17 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  新增 `ec2:DescribeRouteTables`和 `ec2:DescribeNetworkAcls` 許可至 `AmazonEKSServiceRolePolicy`。這可讓 Amazon EKS 在叢集洞察中偵測混合節點的 VPC 路由表和網路 ACLs 的組態問題。  |  2025 年 10 月 22 日  | 
|  新增對 [AWSServiceRoleForAmazonEKSConnector](using-service-linked-roles-eks-connector.md) 的許可   |  新增`ssmmessages:OpenDataChannel`許可至 `AmazonEKSConnectorServiceRolePolicy`   |  2025 年 10 月 15 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)   |  此角色可連接全新存取政策 `AmazonEKSEventPolicy`。`ec2:DeleteLaunchTemplate` 與 `ec2:TerminateInstances` 的限制許可。  |  2025 年 8 月 26 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSLocalOutpostServiceRolePolicy](#security-iam-awsmanpol-amazonekslocaloutpostservicerolepolicy)   |  新增了 `ssmmessages:OpenDataChannel` 許可至 `AmazonEKSLocalOutpostServiceRolePolicy`。  |  2025 年 6 月 26 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSComputePolicy](#security-iam-awsmanpol-AmazonEKSComputePolicy)。  |  更新了 `ec2:RunInstances` 與 `ec2:CreateFleet` 動作的資源許可，以包括容量保留 ` arn:aws: ec2:*:*:capacity-reservation/*`。這樣一來，Amazon EKS 自動模式可使用帳戶中的 EC2 隨需容量保留來啟動執行個體。新增了 `iam:CreateServiceLinkedRole`，以允許 Amazon EKS 自動模式代您建立 EC2 Spot 服務連結角色 `AWSServiceRoleForEC2Spot`。  |  2025 年 6 月 20 日  | 
|  新增了許可至 [AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  新增了 `ec2:DescribeCapacityReservations` 許可，以允許 Amazon EKS 自動模式使用帳戶中的 EC2 隨需容量保留來啟動執行個體。  |  2025 年 6 月 20 日  | 
|  推出了 [AWS 受管政策：AmazonEKSDashboardConsoleReadOnly](#security-iam-awsmanpol-amazoneksdashboardconsolereadonly)。  |  推出了全新 `AmazonEKSDashboardConsoleReadOnly` 政策。  |  2025 年 6 月 19 日  | 
|  推出了 [AWS 受管政策：AmazonEKSDashboardServiceRolePolicy](#security-iam-awsmanpol-AmazonEKSDashboardServiceRolePolicy)。  |  推出了全新 `AmazonEKSDashboardServiceRolePolicy` 政策。  |  2025 年 5 月 21 日  | 
|  已新增許可至 [AmazonEKSClusterPolicy](#security-iam-awsmanpol-amazoneksclusterpolicy)。  |  新增了 `ec2:DeleteNetworkInterfaces` 許可，以允許 Amazon EKS 在 VPC CNI 在非預期退出的情況下，刪除留下的彈性網路介面。  |  2025 年 4 月 16 日  | 
|  新增了許可至 [AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  作為 EKS 1.33 發行版本的一部分，新增了 `ec2:RevokeSecurityGroupEgress` 與 `ec2:AuthorizeSecurityGroupEgress` 許可，以允許 EKS AI/ML 客戶新增安全群組輸出規則至與 EFA 相容的預設 EKS 叢集 SG。  |  2025 年 4 月 14 日  | 
|  新增了許可至 [AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  新增了許可，以終止 EKS 自動模式建立的 EC2 執行個體。  |  2025 年 2 月 28 日  | 
|  新增了許可至 [AmazonEBSCSIDriverPolicy](#security-iam-awsmanpol-amazonebscsidriverservicerolepolicy)。  |  新增了新的陳述式，來授權 EBS CSI 驅動程式還原所有快照。現有的政策之前允許此操作，但由於 `CreateVolume` 對 IAM 的處理有所變更，因此，需要新的明確的陳述式。 新增了 EBS CSI 驅動程式在現有磁碟區上修改標籤的功能。EBS CSI 驅動程式可透過 Kubernetes VolumeAttributesClasses 中的參數，來修改現有磁碟區的標籤。 新增了 EBS CSI 驅動程式在 EBS 磁碟區上啟用快速快照還原 (FSR) 的功能。藉助 EBS CSI 驅動程式，可透過 Kubernetes 儲存類別中的參數在新的磁碟區上啟用 FSR。  |  2025 年 1 月 13 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSLoadBalancingPolicy](#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy)。  |  更新了 `AmazonEKSLoadBalancingPolicy`，以允許列示與描述聯網及 IP 位址資源。  |  2024 年 12 月 26 日  | 
|  新增了許可至 [AWS 受管政策：AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  更新了 `AWSServiceRoleForAmazonEKSNodegroup`，以適用於中國區域。  |  2024 年 11 月 22 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSLocalOutpostClusterPolicy](#security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy)   |  新增 的`ec2:DescribeAvailabilityZones`許可，`AmazonEKSLocalOutpostClusterPolicy`讓叢集控制平面上的 AWS Cloud Controller Manager 可以識別每個節點所在的可用區域。  |  2024 年 11 月 21 日  | 
|  新增了許可至 [AWS 受管政策：AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  更新了 `AWSServiceRoleForAmazonEKSNodegroup` 政策，以允許透過 Amazon EKS 受管節點群組建立的執行個體的 `ec2:RebootInstances`。限制了針對 Amazon EC2 資源的 `ec2:CreateTags` 許可。  |  2024 年 11 月 20 日  | 
|  新增了許可至 [AWS 受管政策：AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  EKS 已更新 AWS 受管政策 `AmazonEKSServiceRolePolicy`。新增了針對下列各項的許可：EKS 存取政策、負載平衡器管理，以及自動化叢集資源清理。  |  2024 年 11 月 16 日  | 
|  推出了 [AWS 受管政策：AmazonEKSComputePolicy](#security-iam-awsmanpol-AmazonEKSComputePolicy)。  |  EKS 已更新 AWS 受管政策 `AmazonEKSComputePolicy`。更新了針對 `iam:AddRoleToInstanceProfile` 動作的資源許可。  |  2024 年 11 月 7 日  | 
|  推出了 [AWS 受管政策：AmazonEKSComputePolicy](#security-iam-awsmanpol-AmazonEKSComputePolicy)。  |   AWS 推出 `AmazonEKSComputePolicy`。  |  2024 年 11 月 1 日  | 
|  新增了許可至 `AmazonEKSClusterPolicy`   |  新增了 `ec2:DescribeInstanceTopology` 許可，以允許 Amazon EKS 將拓撲資訊作為標籤連接至節點。  |  2024 年 11 月 1 日  | 
|  推出了 [AWS 受管政策：AmazonEKSBlockStoragePolicy](#security-iam-awsmanpol-AmazonEKSBlockStoragePolicy)。  |   AWS 推出 `AmazonEKSBlockStoragePolicy`。  |  2024 年 10 月 30 日  | 
|  推出了 [AWS 受管政策：AmazonEKSLoadBalancingPolicy](#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy)。  |   AWS 推出 `AmazonEKSLoadBalancingPolicy`。  |  2024 年 10 月 30 日  | 
|  新增了許可至 [AmazonEKSServiceRolePolicy](#security-iam-awsmanpol-amazoneksservicerolepolicy)。  |  新增了 `cloudwatch:PutMetricData` 許可，以允許 Amazon EKS 發布指標至 Amazon CloudWatch。  |  2024 年 10 月 29 日  | 
|  推出了 [AWS 受管政策：AmazonEKSNetworkingPolicy](#security-iam-awsmanpol-AmazonEKSNetworkingPolicy)。  |   AWS 推出 `AmazonEKSNetworkingPolicy`。  |  2024 年 10 月 28 日  | 
|  新增了許可至 `AmazonEKSServicePolicy` 和 `AmazonEKSServiceRolePolicy`   |  新增了 `ec2:GetSecurityGroupsForVpc` 及關聯的標籤許可，以允許 EKS 讀取安全群組資訊及更新相關標籤。  |  2024 年 10 月 10 日  | 
|  推出了 [AmazonEKSWorkerNodeMinimalPolicy](#security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy)。  |   AWS 推出 `AmazonEKSWorkerNodeMinimalPolicy`。  |  2024 年 10 月 3 日  | 
|  已新增許可至 [AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  新增了 `autoscaling:ResumeProcesses` 及 `autoscaling:SuspendProcesses` 許可，以允許 Amazon EKS 在 Amazon EKS 受管 Auto Scaling 群組中暫停及恢復 `AZRebalance`。  |  2024 年 8 月 21 日  | 
|  已新增許可至 [AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  新增了 `ec2:DescribeCapacityReservations` 許可，以允許 Amazon EKS 描述使用者帳戶中容量保留。新增了 `autoscaling:PutScheduledUpdateGroupAction` 許可，以支援在 `CAPACITY_BLOCK` 節點群組設定排程擴展。  |  2024 年 6 月 27 日  | 
|   [AmazonEKS\$1CNI\$1Policy](#security-iam-awsmanpol-amazoneks-cni-policy) – 更新至現有的政策  |  Amazon EKS 新增了全新的 `ec2:DescribeSubnets` 許可，以允許適用於 Kubernetes 的 Amazon VPC CNI 外掛程式查看 Amazon VPC 子網路中的空閒 IP 位址數量。VPC CNI 可使用每個子網路中空閒的 IP 位址，選擇建立彈性網路介面時，使用最空閒 IP 位址的子網路。  |  2024 年 3 月 4 日  | 
|   [AmazonEKSWorkerNodePolicy](#security-iam-awsmanpol-amazoneksworkernodepolicy) – 更新至現有政策  |  Amazon EKS 新增了新的許可來允許 EKS Pod 身分識別。Amazon EKS Pod 身分識別代理程式使用節點角色。  |  2023 年 11 月 26 日  | 
|  引進 [AmazonEFSCSIDriverPolicy](#security-iam-awsmanpol-amazonefscsidriverservicerolepolicy)。  |   AWS 推出 `AmazonEFSCSIDriverPolicy`。  |  2023 年 7 月 26 日  | 
|  已新增許可至 [AmazonEKSClusterPolicy](#security-iam-awsmanpol-amazoneksclusterpolicy)。  |  在建立負載平衡器時，新增允許 Amazon EKS 在子網路自動探索期間取得 AZ 詳細資訊的 `ec2:DescribeAvailabilityZones` 許可。  |  2023 年 2 月 7 日  | 
|  已更新 [AmazonEBSCSIDriverPolicy](#security-iam-awsmanpol-amazonebscsidriverservicerolepolicy) 中的政策條件。  |  已移除在 `StringLike` 金鑰欄位中使用萬用字元的無效政策條件。也已將新條件 `ec2:ResourceTag/kubernetes.io/created-for/pvc/name: "*"` 新增至 `ec2:DeleteVolume`，允許 EBS CSI 驅動程式刪除由樹狀內外掛程式建立的磁碟區。  |  2022 年 11 月 17 日  | 
|  已新增許可至 [AmazonEKSLocalOutpostServiceRolePolicy](#security-iam-awsmanpol-amazonekslocaloutpostservicerolepolicy)。  |  已新增 `ec2:DescribeVPCAttribute`、`ec2:GetConsoleOutput` 和 `ec2:DescribeSecret`，以允許更好的先決條件驗證和受管生命週期控制。還將 `ec2:DescribePlacementGroups` 和 `"arn:aws: ec2:*:*:placement-group/*"` 新增至 `ec2:RunInstances`，以支援 Outposts 上的控制平面 Amazon EC2 執行個體的置放控制。  |  2022 年 10 月 24 日  | 
|  更新 [AmazonEKSLocalOutpostClusterPolicy](#security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy) 中的 Amazon Elastic Container Registry 許可。  |  已將動作 `ecr:GetDownloadUrlForLayer` 從所有資源區段移至限定範圍區段。已新增資源 ` arn:aws: ecr:*:*:repository/eks/ `。已移除資源 ` arn:aws: ecr:`。新增的 ` arn:aws: ecr:*:*:repository/eks/*` 資源涵蓋此資源。  |  2022 年 10 月 20 日  | 
|  已新增許可至 [AmazonEKSLocalOutpostClusterPolicy](#security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy)。  |  已新增 ` arn:aws: ecr:*:*:repository/kubelet-config-updater` Amazon Elastic Container Registry 儲存庫，以便叢集控制平面執行個體可以更新部分 `kubelet` 引數。  |  2022 年 8 月 31 日  | 
|  已引進 [AmazonEKSLocalOutpostClusterPolicy](#security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy)。  |   AWS 推出 `AmazonEKSLocalOutpostClusterPolicy`。  |  2022 年 8 月 24 日  | 
|  已引進 [AmazonEKSLocalOutpostServiceRolePolicy](#security-iam-awsmanpol-amazonekslocaloutpostservicerolepolicy).  |   AWS 推出 `AmazonEKSLocalOutpostServiceRolePolicy`。  |  2022 年 8 月 23 日  | 
|  引進 [Amazon EBS CSI Driver Policy](#security-iam-awsmanpol-amazonebscsidriverservicerolepolicy) (Amazon EBS CSI 驅動程式政策)。  |   AWS 推出 `AmazonEBSCSIDriverPolicy`。  |  2022 年 4 月 4 日  | 
|  已新增許可至 [AmazonEKSWorkerNodePolicy](#security-iam-awsmanpol-amazoneksworkernodepolicy)。  |  已新增 `ec2:DescribeInstanceTypes` 以啟用可自動發現發現執行個體層級屬性的 Amazon EKS 最佳化 AMI。  |  2022 年 3 月 21 日  | 
|  已新增許可至 [AWSServiceRoleForAmazonEKSNodegroup](#security-iam-awsmanpol-awsserviceroleforamazoneksnodegroup)。  |  已新增 `autoscaling:EnableMetricsCollection` 許可以允許 Amazon EKS 啟用指標收集。  |  2021 年 12 月 13 日  | 
|  已新增許可至 [AmazonEKSClusterPolicy](#security-iam-awsmanpol-amazoneksclusterpolicy)。  |  已新增 `ec2:DescribeAccountAttributes`、`ec2:DescribeAddresses` 以及 `ec2:DescribeInternetGateways` 許可，以允許 Amazon EKS 為 Network Load Balancer 建立服務連結角色。  |  2021 年 6 月 17 日  | 
|  Amazon EKS 已開始追蹤變更。  |  Amazon EKS 開始追蹤其 AWS 受管政策的變更。  |  2021 年 6 月 17 日  | 

# 疑難排解 IAM
<a name="security-iam-troubleshoot"></a>

本主題涵蓋一些搭配 Amazon EKS 使用 IAM 時可能遇到的常見錯誤，並提供解決方法。

## AccessDeniedException
<a name="iam-error"></a>

如果您在呼叫 AWS API 操作`AccessDeniedException`時收到 ，則您使用的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)憑證沒有發出該呼叫所需的許可。

```
An error occurred (AccessDeniedException) when calling the DescribeCluster operation:
User: arn:aws: iam::111122223333:user/user_name is not authorized to perform:
eks:DescribeCluster on resource: arn:aws: eks:region:111122223333:cluster/my-cluster
```

在先前的範例訊息中，使用者不具備呼叫 Amazon EKS `DescribeCluster` API 操作的許可。若要將 Amazon EKS 管理員許可提供給 IAM 主體，請參閱 [Amazon EKS 身分型政策範例](security-iam-id-based-policy-examples.md)。

如需關於 IAM 的一般資訊，請參閱《IAM 使用者指南》的[使用政策控制存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。

## 在**運算**索引標籤或**資源**索引標籤上看不到**節點**，且您在 中收到錯誤 AWS 管理主控台
<a name="security-iam-troubleshoot-cannot-view-nodes-or-workloads"></a>

您可能會看到內容為 `Your current user or role does not have access to Kubernetes objects on this EKS cluster` 的主控台錯誤訊息。請確定您 AWS 管理主控台 搭配 使用 的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)使用者具有必要的許可。如需詳細資訊，請參閱[所需的許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)。

## aws-auth `ConfigMap` 不會授予對叢集的存取權限
<a name="security-iam-troubleshoot-configmap"></a>

[AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) 不允許在 `ConfigMap` 中使用角色 ARN 的路徑。因此，在您指定 `rolearn` 之前，請移除該路徑。例如，請將 ` arn:aws: iam::111122223333:role/team/developers/eks-admin ` 變更為 ` arn:aws: iam::111122223333:role/eks-admin `。

## 我未獲得執行 iam:PassRole 的授權
<a name="security-iam-troubleshoot-passrole"></a>

如果您收到錯誤，告知您無權執行 `iam:PassRole` 動作，您的政策必須更新，允許您將角色傳遞給 Amazon EKS。

有些 AWS 服務可讓您將現有角色傳遞給該服務，而不是建立新的服務角色或服務連結角色。如需執行此作業，您必須擁有將角色傳遞至該服務的許可。

當名為 `marymajor` 的 IAM 使用者嘗試使用主控台在 Amazon EKS 中執行動作時，發生下列範例錯誤。但是，動作請求服務具備服務角色授予的許可。Mary 沒有將角色傳遞給服務的許可。

```
User: {arn-aws}iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在這種情況下，Mary 的政策必須更新，允許她執行 `iam:PassRole` 動作。

如果您需要協助，請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。

## 我想要允許 AWS 帳戶外的人員存取我的 Amazon EKS 資源
<a name="security-iam-troubleshoot-cross-account-access"></a>

您可以建立一個角色，讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務，您可以使用那些政策來授予人員存取您的資源的許可。

若要進一步了解，請參閱以下內容：
+ 若要了解 Amazon EKS 是否支援這些功能，請參閱 [Amazon EKS 如何搭配 IAM 運作](security-iam-service-with-iam.md)。
+ 若要了解如何在您擁有的 AWS 帳戶中提供資源的存取權，請參閱《[IAM 使用者指南》中的為您擁有的另一個 AWS 帳戶中的 IAM 使用者提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。 **
+ 若要了解如何將資源的存取權提供給第三方 AWS 帳戶，請參閱《*IAM 使用者指南*》中的[將存取權提供給第三方擁有 AWS 的帳戶](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 如需了解如何透過聯合身分提供存取權，請參閱《*IAM 使用者指南*》中的[將存取權提供給在外部進行身分驗證的使用者 (聯合身分)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《*IAM 使用者指南*》中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## Pod 容器會接收到下列錯誤：`An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: Credential should be scoped to a valid region`
<a name="security-iam-troubleshoot-wrong-sts-endpoint"></a>

如果您的應用程式明確向 AWS STS 全域端點 (`https://sts.amazonaws.com`) 提出請求，且您的 Kubernetes 服務帳戶設定為使用區域端點，則您的容器會收到此錯誤。您可以使用下列其中一種選項來解決此問題：
+ 更新您的應用程式程式碼，以移除對 AWS STS 全域端點的明確呼叫。
+ 更新應用程式的程式碼以明確呼叫區域端點，例如 `https://sts.us-west-2.amazonaws.com`。您的應用程式應內建備援，以便在 AWS 區域中的服務故障時挑選不同的 AWS 區域。如需詳細資訊，請參閱《IAM 使用者指南[AWS 》中的在 區域中管理 AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)。
+ 將服務帳戶設定為使用全域端點。叢集預設會使用區域端點。如需詳細資訊，請參閱[為服務帳戶設定 AWS Security Token Service 端點](configure-sts-endpoint.md)。

# Amazon EKS 叢集 IAM 角色
<a name="cluster-iam-role"></a>

每個叢集都需要一個 Amazon EKS 叢集 IAM 角色。受 Amazon EKS 管理的 Kubernetes 叢集使用此角色來管理節點，而[舊式雲端供應商](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/#legacy-cloud-provider)則使用此角色為服務建立具有 Elastic Load Balancing 的負載平衡器。

建立 Amazon EKS 叢集之前，您必須先建立具有以下任一 IAM 政策的 IAM 角色：
+  [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html) 
+ 自訂 IAM 政策。以下是 Kubernetes 叢集可管理節點的最低許可，但無法讓[舊式雲端供應商](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/#legacy-cloud-provider)建立具有 Elastic Load Balancing 的負載平衡器。您的自訂 IAM 政策必須至少擁有下列許可：

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "ec2:CreateTags"
        ],
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
          "ForAnyValue:StringLike": {
            "aws:TagKeys": "kubernetes.io/cluster/*"
          }
        }
      },
      {
        "Effect": "Allow",
        "Action": [
          "ec2:DescribeInstances",
          "ec2:DescribeNetworkInterfaces",
          "ec2:DescribeVpcs",
          "ec2:DescribeDhcpOptions",
          "ec2:DescribeAvailabilityZones",
          "ec2:DescribeInstanceTopology",
          "kms:DescribeKey"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

**注意**  
在 2023 年 10 月 3 日之前，每個叢集的 IAM 角色都必須使用 [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html)。  
在 2020 年 4 月 16 日之前，也必須使用 [AmazonEKSServicePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServicePolicy.html) 和 [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html)，且角色的建議名稱為 `eksServiceRole`。使用 `AWSServiceRoleForAmazonEKS` 服務連結角色時，[AmazonEKSServicePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServicePolicy.html) 政策不再需要針對 2020 年 4 月 16 日或之後建立的叢集。

## 檢查現有的叢集角色
<a name="check-service-role"></a>

您可使用以下程序，檢查您的帳戶是否已有 Amazon EKS 叢集角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋 `eksClusterRole` 的角色清單。如果包含 `eksClusterRole` 的角色不存在，請參閱 [建立 Amazon EKS 叢集角色](#create-service-role) 以建立角色。如果包含 `eksClusterRole` 的角色存在，請選取角色以檢視連接的政策。

1. 選擇**許可**。

1. 確定 **AmazonEKSClusterPolicy** 受管政策已附加到該角色。如果已連接政策，則您的 Amazon EKS 叢集角色應已設定妥當。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係包含下列政策。如果信任關係符合下列政策，請選擇 **Cancel** (取消)。如果信任關係不符合，請將政策複製到**編輯信任政策**視窗中，然後選擇**更新政策**。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

## 建立 Amazon EKS 叢集角色
<a name="create-service-role"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來建立叢集角色。

 AWS 管理主控台   

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 選擇 **Roles (角色)**，然後選擇 **Create role (建立角色)**。

1. 在**信任的實體類型**下，選取** AWS 服務**。

1. 從** AWS 其他服務的使用案例**下拉式清單中，選擇 **EKS**。

1. 針對您的使用案例選擇 **EKS - Cluster** (EKS - 叢集)，然後選擇 **Next** (下一步)。

1. 在 **Add permissions** (新增許可) 標籤上，選擇 **Next** (下一步)。

1. 針對 **Role name** (角色名稱)，為您的角色輸入唯一名稱 (例如 `eksClusterRole`)。

1. 針對 **Description** (描述)，輸入描述性文字，如 `Amazon EKS - Cluster role`。

1. 選擇建**立角色**。

 AWS CLI  

1. 將下列內容複製到名為 *cluster-trust-policy.json* 的檔案。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. 建立角色。您可以將 *eksClusterRole* 取代為您選擇的任何名稱。

   ```
   aws iam create-role \
     --role-name eksClusterRole \
     --assume-role-policy-document file://"cluster-trust-policy.json"
   ```

1. 將所需的 IAM 政策連接至角色。

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy \
     --role-name eksClusterRole
   ```

# Amazon EKS 節點 IAM 角色
<a name="create-node-role"></a>

Amazon EKS `kubelet` 節點協助程式會代表您呼叫 AWS APIs。節點透過 IAM 執行個體描述檔和關聯的政策，取得這些 API 呼叫的許可。啟動節點並在叢集中註冊之前，您必須先為那些節點建立啟動時要使用的 IAM 角色。這項要求會套用到運用 Amazon 提供的 Amazon EKS 最佳化 AMI，或是任何其他您打算使用的節點 AMI 來啟動的節點。此外，此要求皆適用於受管節點群組和自我管理節點。

**注意**  
您無法使用用於建立任何叢集的相同角色。

建立節點之前，您必須先建立具有以下許可的 IAM 角色：
+ `kubelet` 描述 VPC 中之 Amazon EC2 資源的許可，例如 [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html) 政策提供的許可。此政策也為 Amazon EKS Pod 身分識別代理程式提供許可。
+ `kubelet` 使用 Amazon Elastic Container Registry (Amazon ECR) 中之容器映像的許可，例如 [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryPullOnly.html) 政策提供的許可。由於用於聯網的內建附加元件會執行使用 Amazon ECR 容器映像的 Pod，因此需要 Amazon Elastic Container Registry (Amazon ECR) 容器映像的使用許可。
+ (選用) Amazon EKS Pod 身分識別代理程式使用 `eks-auth:AssumeRoleForPodIdentity` 動作擷取 Pod 憑證的許可。如果您不使用 [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html)，則除了 EC2 許可之外，您還必須提供此許可才能使用 EKS Pod 身分識別。
+ (選用) 如果您不使用 IRSA 或 EKS Pod 身分識別向 VPC CNI Pod 授予許可，則必須透過執行個體角色為 VPC CNI 提供許可。您可以使用 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) 受管政策 (如果您使用 `IPv4` 系列建立叢集) 或[您建立的 IPv6 政策](cni-iam-role.md#cni-iam-role-create-ipv6-policy) (如果您使用 `IPv6` 系列建立叢集)。但是，我們建議您將政策連接至專門用於 Amazon VPC CNI 附加元件的單獨角色，而不是將政策連接至此角色。如需為 Amazon VPC CNI 附加元件建立單獨角色的更多資訊，請參閱 [設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md)。
+ （選用） `kubelet`使用來自 Amazon ECR Public (public.ecr.aws) 之容器映像的許可，例如 [AmazonElasticContainerRegistryPublicReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElasticContainerRegistryPublicReadOnly.html) 政策所提供的許可。如果您從 ECR Public 提取容器映像，建議使用這些許可。如果沒有它們，提取將會成功，但可能會受到速率限制。

**注意**  
Amazon EC2 節點群組的 IAM 角色必須與 Fargate 設定檔不同。如需詳細資訊，請參閱[Amazon EKS Pod 執行 IAM 角色](pod-execution-role.md)。

## 檢查現有的節點角色
<a name="check-worker-node-role"></a>

您可使用以下程序，檢查您的帳戶是否已有 Amazon EKS 節點角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋 `eksNodeRole`、`AmazonEKSNodeRole` 或 `NodeInstanceRole` 的角色清單。如果具有這些名稱之一的角色不存在，請參閱 [建立 Amazon EKS 節點 IAM 角色](#create-worker-node-role) 以建立角色。如果包含 `eksNodeRole`、`AmazonEKSNodeRole` 或 `NodeInstanceRole` 的角色存在，請選取角色以檢視連接的政策。

1. 選擇**許可**。

1. 請確定 **AmazonEKSWorkerNodePolicy** 和 **AmazonEC2ContainerRegistryPullOnly** 受管政策已連接到該角色，或具有最低許可的自訂政策已連接至該角色。
**注意**  
如果 **AmazonEKS\$1CNI\$1Policy** 政策已連接至角色，我們建議將其移除，並轉而將其連接到映射至 `aws-node` Kubernetes 服務帳戶的 IAM 角色。如需詳細資訊，請參閱[設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md)。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係包含下列政策。如果信任關係符合下列政策，請選擇 **Cancel** (取消)。如果信任關係不符合，請將政策複製到**編輯信任政策**視窗中，然後選擇**更新政策**。

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

## 建立 Amazon EKS 節點 IAM 角色
<a name="create-worker-node-role"></a>

您可以使用 AWS 管理主控台 或 CLI 建立節點 IAM AWS 角色。

 AWS 管理主控台   

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 在 **Roles** (角色) 頁面上，選擇 **Create role** (建立角色)。

1. 在 **Select trusted entity** (選取信任的實體) 頁面上，執行以下作業：

   1. 在**信任的實體類型**區段中，選擇** AWS 服務**。

   1. 在 **Use case** (使用案例) 下，選擇 **EC2**。

   1. 選擇**下一步**。

1. 在**新增許可**頁面上，連接自訂政策或執行下列動作：

   1. 在 **Filter policies** (篩選政策) 方塊中，輸入 `AmazonEKSWorkerNodePolicy`。

   1. 勾選搜尋結果中 **AmazonEKSWorkerNodePolicy** 左側的核取方塊。

   1. 選擇 **Clear filters** (清除篩選條件)。

   1. 在 **Filter policies** (篩選政策) 方塊中，輸入 `AmazonEC2ContainerRegistryPullOnly`。

   1. 勾選搜尋結果中 **AmazonEC2ContainerRegistryPullOnly** 左側的核取方塊。

      **AmazonEKS\$1CNI\$1Policy** 受管政策或您建立的 [IPv6 政策](cni-iam-role.md#cni-iam-role-create-ipv6-policy)也必須連接至此角色或映射至 `aws-node` Kubernetes 服務帳戶的其他角色。建議您將政策指派給與 Kubernetes 服務帳戶相關聯的角色，而不要將政策指派給這個角色。如需詳細資訊，請參閱[設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md)。

   1. 選擇**下一步**。

1. 在 **Name, review, and create** (命名、檢閱和建立) 頁面上，執行以下作業：

   1. 針對 **Role name** (角色名稱)，為您的角色輸入唯一名稱 (例如 `AmazonEKSNodeRole`)。

   1. 針對 **Description** (描述)，請以描述性文字 (例如 `Amazon EKS - Node role`) 取代目前的文字。

   1. 藉由連接標籤做為鍵值對，在**新增標籤 (選用)** 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊，請參閱《IAM 使用者指南》**中的[標記 IAM 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

   1. 選擇建**立角色**。

 AWS CLI  

1. 執行下列命令以建立 `node-role-trust-relationship.json` 檔案。

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

1. 建立 IAM 角色。

   ```
   aws iam create-role \
     --role-name AmazonEKSNodeRole \
     --assume-role-policy-document file://"node-role-trust-relationship.json"
   ```

1. 將兩個所需的受管 IAM 政策連接到角色。

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \
     --role-name AmazonEKSNodeRole
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \
     --role-name AmazonEKSNodeRole
   ```

1. 根據您建立叢集所使用的 IP 系列，將以下 IAM 政策之一連接至 IAM 角色。政策必須連接到此角色或與 Kubernetes `aws-node` 服務帳戶相關聯的角色，且該帳戶可用於 Kubernetes 專用 Amazon VPC CNI 外掛程式。建議您將政策指派給與 Kubernetes 服務帳戶相關聯的角色。要將政策指派給與 Kubernetes 服務帳戶相關聯的角色，請參閱 [設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md)。
   + IPv4

     ```
     aws iam attach-role-policy \
       --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \
       --role-name AmazonEKSNodeRole
     ```
   + IPv6

     1. 複製下列文字並將它儲存至名為 `vpc-cni-ipv6-policy.json` 的檔案。

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:AssignIpv6Addresses",
                        "ec2:DescribeInstances",
                        "ec2:DescribeTags",
                        "ec2:DescribeNetworkInterfaces",
                        "ec2:DescribeInstanceTypes"
                    ],
                    "Resource": "*"
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:CreateTags"
                    ],
                    "Resource": [
                        "arn:aws:ec2:*:*:network-interface/*"
                    ]
                }
            ]
        }
        ```

     1. 建立 IAM 政策。

        ```
        aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
        ```

     1. 將 IAM 政策連接至 IAM 角色。使用您的帳戶 ID 取代 *111122223333*。

        ```
        aws iam attach-role-policy \
          --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \
          --role-name AmazonEKSNodeRole
        ```

# Amazon EKS 自動模式叢集 IAM 角色
<a name="auto-cluster-iam-role"></a>

每個叢集都需要一個 Amazon EKS 叢集 IAM 角色。由 Amazon EKS 管理的 Kubernetes 叢集會使用此角色，自動化儲存、聯網及運算自動擴展的常規任務。

建立 Amazon EKS 叢集之前，您必須先建立具有 EKS 自動模式所需 IAM 政策的 IAM 角色。您可以連接建議的 AWS IAM 受管政策，或建立具有同等許可的自訂政策。
+  [AmazonEKSComputePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSComputePolicy) 
+  [AmazonEKSBlockStoragePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSBlockStoragePolicy) 
+  [AmazonEKSLoadBalancingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy) 
+  [AmazonEKSNetworkingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSNetworkingPolicy) 
+  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) 

## EKS Auto 資源的自訂 AWS 標籤
<a name="tag-prop"></a>

根據預設，與 EKS Auto Mode 相關的受管政策不允許將使用者定義的標籤套用至 Auto Mode 佈建 AWS 的資源。如果您想要將使用者定義的標籤套用至 AWS 資源，您必須將其他許可連接到叢集 IAM 角色，並具有足夠的許可來建立和修改 AWS 資源上的標籤。以下是允許無限制標籤存取的政策範例：

### 檢視自訂標籤政策範例
<a name="auto-tag-policy"></a>

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Compute",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateFleet",
                "ec2:RunInstances",
                "ec2:CreateLaunchTemplate"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                },
                "StringLike": {
                    "aws:RequestTag/eks:kubernetes-node-class-name": "*",
                    "aws:RequestTag/eks:kubernetes-node-pool-name": "*"
                }
            }
        },
        {
            "Sid": "Storage",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume",
                "ec2:CreateSnapshot"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*:*:snapshot/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "Networking",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                },
                "StringLike": {
                    "aws:RequestTag/eks:kubernetes-cni-node-name": "*"
                }
            }
        },
        {
            "Sid": "LoadBalancer",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:CreateLoadBalancer",
                "elasticloadbalancing:CreateTargetGroup",
                "elasticloadbalancing:CreateListener",
                "elasticloadbalancing:CreateRule",
                "ec2:CreateSecurityGroup"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "ShieldProtection",
            "Effect": "Allow",
            "Action": [
                "shield:CreateProtection"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "ShieldTagResource",
            "Effect": "Allow",
            "Action": [
                "shield:TagResource"
            ],
            "Resource": "arn:aws:shield::*:protection/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        }
    ]
}
```

## 檢查現有的叢集角色
<a name="auto-cluster-iam-role-check"></a>

您可使用以下程序，檢查您的帳戶是否已有 Amazon EKS 叢集角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋 `AmazonEKSAutoClusterRole` 的角色清單。如果包含 `AmazonEKSAutoClusterRole` 的角色不存在，請參閱下一節中的指示以建立角色。如果包含 `AmazonEKSAutoClusterRole` 的角色存在，請選取角色以檢視連接的政策。

1. 選擇**許可**。

1. 確定 **AmazonEKSClusterPolicy** 受管政策已附加到該角色。如果已連接政策，則您的 Amazon EKS 叢集角色應已設定妥當。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係包含下列政策。如果信任關係符合下列政策，請選擇 **Cancel** (取消)。如果信任關係不符合，請將政策複製到**編輯信任政策**視窗中，然後選擇**更新政策**。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow", 
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession"
         ]
       }
     ]
   }
   ```

**注意**  
 AWS 不需要`AmazonEKSAutoClusterRole`此角色的名稱。

## 建立 Amazon EKS 叢集角色
<a name="auto-cluster-iam-role-create"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來建立叢集角色。

### AWS 管理主控台
<a name="auto-cluster-iam-role-console"></a>

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 選擇 **Roles (角色)**，然後選擇 **Create role (建立角色)**。

1. 在**信任的實體類型**下，選取** AWS 服務**。

1. 從** AWS 其他服務的使用案例**下拉式清單中，選擇 **EKS**。

1. 針對您的使用案例選擇 **EKS - Cluster** (EKS - 叢集)，然後選擇 **Next** (下一步)。

1. 在**新增許可**索引標籤上，選取政策，然後選擇**下一步**。
   +  [AmazonEKSComputePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSComputePolicy) 
   +  [AmazonEKSBlockStoragePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSBlockStoragePolicy) 
   +  [AmazonEKSLoadBalancingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy) 
   +  [AmazonEKSNetworkingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSNetworkingPolicy) 
   +  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) 

1. 針對 **Role name** (角色名稱)，為您的角色輸入唯一名稱 (例如 `AmazonEKSAutoClusterRole`)。

1. 針對 **Description** (描述)，輸入描述性文字，如 `Amazon EKS - Cluster role`。

1. 選擇建**立角色**。

### AWS CLI
<a name="auto-cluster-iam-role-cli"></a>

1. 將下列內容複製到名為 *cluster-trust-policy.json* 的檔案。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow", 
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession"
         ]
       }
     ]
   }
   ```

1. 建立角色。您可以將 *AmazonEKSAutoClusterRole* 取代為選擇的任何名稱。

   ```
   aws iam create-role \
     --role-name AmazonEKSAutoClusterRole \
     --assume-role-policy-document file://"cluster-trust-policy.json"
   ```

1. 將所需的 IAM 政策連接至角色：

 **AmazonEKSClusterPolicy**：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy
```

 **AmazonEKSComputePolicy**：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSComputePolicy
```

 **AmazonEKSBlockStoragePolicy**：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSBlockStoragePolicy
```

 **AmazonEKSLoadBalancingPolicy**：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSLoadBalancingPolicy
```

 **AmazonEKSNetworkingPolicy**：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSNetworkingPolicy
```

# Amazon EKS 自動模式節點 IAM 角色
<a name="auto-create-node-role"></a>

**注意**  
您無法使用用於建立任何叢集的相同角色。

建立節點之前，您必須先建立具有以下政策或同等許可的 IAM 角色：
+  [AmazonEKSWorkerNodeMinimalPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy) 
+  [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerRegistryPullOnly) 

## 檢查現有的節點角色
<a name="auto-create-node-role-check"></a>

您可使用以下程序，檢查您的帳戶是否已有 Amazon EKS 節點角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋 `AmazonEKSAutoNodeRole` 的角色清單。如果不存在具有該名稱的角色，請參閱下一節中的說明來建立角色。如果包含 `AmazonEKSAutoNodeRole` 的角色存在，請選取角色以檢視連接的政策。

1. 選擇**許可**。

1. 確保已附加上述所需的政策或同等的自訂政策。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係包含下列政策。如果信任關係符合下列政策，請選擇 **Cancel** (取消)。如果信任關係不符合，請將政策複製到**編輯信任政策**視窗中，然後選擇**更新政策**。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

## 建立 Amazon EKS 節點 IAM 角色
<a name="auto-create-node-role-iam"></a>

您可以使用 AWS 管理主控台 或 CLI 建立節點 IAM AWS 角色。

### AWS 管理主控台
<a name="auto-create-node-role-console"></a>

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 在 **Roles** (角色) 頁面上，選擇 **Create role** (建立角色)。

1. 在 **Select trusted entity** (選取信任的實體) 頁面上，執行以下作業：

   1. 在**信任的實體類型**區段中，選擇** AWS 服務**。

   1. 在 **Use case** (使用案例) 下，選擇 **EC2**。

   1. 選擇**下一步**。

1. 在**新增許可**頁面上，選擇以下政策：
   +  [AmazonEKSWorkerNodeMinimalPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy) 
   +  [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerRegistryPullOnly) 

1. 在 **Name, review, and create** (命名、檢閱和建立) 頁面上，執行以下作業：

   1. 針對 **Role name** (角色名稱)，為您的角色輸入唯一名稱 (例如 `AmazonEKSAutoNodeRole`)。

   1. 針對 **Description** (描述)，請以描述性文字 (例如 `Amazon EKS - Node role`) 取代目前的文字。

   1. 藉由連接標籤做為鍵值對，在**新增標籤 (選用)** 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊，請參閱《IAM 使用者指南》**中的[標記 IAM 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

   1. 選擇建**立角色**。

### AWS CLI
<a name="auto-create-node-role-cli"></a>

 **建立節點 IAM 角色** 

使用上一步中的 **node-trust-policy.json** 檔案來定義哪些實體可擔任該角色。執行下列命令以建立節點 IAM 角色：

```
aws iam create-role \
    --role-name AmazonEKSAutoNodeRole \
    --assume-role-policy-document file://node-trust-policy.json
```

 **請記下角色 ARN** 

建立角色後，擷取並儲存節點 IAM 角色的 ARN。您在後續步驟中將需要此 ARN。使用以下命令來取得 ARN：

```
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
```

 **連接必要的政策** 

將下列 AWS 受管政策連接至節點 IAM 角色，以提供必要的許可：

要連接 AmazonEKSWorkerNodeMinimalPolicy：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoNodeRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
```

要連接 AmazonEC2ContainerRegistryPullOnly：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoNodeRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
```

 **連接選用政策** 

如果您要從公有 ECR 提取容器映像，您應該將下列 AWS 受管政策連接至節點 IAM 角色，以確保您的節點可以向公有 ECR 進行身分驗證，並提取映像而不限流。

若要連接 AmazonElasticContainerRegistryPublicReadOnly：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoNodeRole \
    --policy-arn arn:aws: iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly
```

# Amazon EKS 功能 IAM 角色
<a name="capability-role"></a>

EKS 功能需要設定功能 IAM 角色 （或功能角色）。功能會使用此角色在 AWS 服務上執行動作，並透過自動建立的存取項目存取叢集中的 Kubernetes 資源。

在建立功能期間指定功能角色之前，您必須使用適當的信任政策和功能類型的許可來建立 IAM 角色。建立此 IAM 角色後，它可以重複使用於任意數量的功能資源。

## 功能角色需求
<a name="_capability_role_requirements"></a>

功能角色必須符合下列要求：
+ 角色必須與叢集和功能資源位於相同的 AWS 帳戶中
+ 該角色必須具有信任政策，允許 EKS 功能服務擔任該角色
+ 角色必須具有適合 功能類型和使用案例需求的許可 （請參閱 [依功能類型列出的許可](#capability-permissions))

## 功能角色的信任政策
<a name="capability-trust-policy"></a>

所有功能角色都必須包含下列信任政策：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
```

此信任政策允許 EKS：
+ 擔任角色以執行 AWS API 操作
+ 標記工作階段以進行稽核和追蹤

## 依功能類型列出的許可
<a name="capability-permissions"></a>

所需的 IAM 許可取決於您使用的功能和部署模型。

**注意**  
對於搭配 ACK 使用 IAM 角色選取器的生產部署，或在不使用 AWS 服務整合的情況下使用 kro 或 Argo CD 時，功能角色可能不需要信任政策以外的任何 IAM 許可。

 **kro (Kube Resource Orchestrator)**   
不需要 IAM 許可。您可以建立沒有連接政策的功能角色。 kro 只需要 Kubernetes RBAC 許可來建立和管理 Kubernetes 資源。

 ** AWS Kubernetes (ACK) 的控制器**   
ACK 支援兩種許可模型：  
+  **簡單設定 （開發/測試）**：將 AWS 服務許可直接新增至功能角色。這適用於入門、單一帳戶部署，或當所有使用者都需要相同的許可時。
+  **生產最佳實務**：使用 IAM 角色選取器實作最低權限存取。透過此方法，能力角色只需要擔任服務特定角色的`sts:AssumeRole`許可。您不會將 AWS 服務許可 （例如 S3 或 RDS) 新增至功能角色本身，這些許可會授予對應至特定命名空間的個別 IAM 角色。

  IAM 角色選取器啟用：
  + 命名空間層級許可隔離
  + 跨帳戶資源管理
  + 團隊特定的 IAM 角色
  + 最低權限安全模型

    IAM 角色選取器方法的功能角色政策範例：

    ```
    {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": [
            "arn:aws:iam::111122223333:role/ACK-S3-Role",
            "arn:aws:iam::111122223333:role/ACK-RDS-Role",
            "arn:aws:iam::444455556666:role/ACKCrossAccountRole"
          ]
        }
      ]
    }
    ```

    如需包含 IAM 角色選取器的詳細 ACK 許可組態，請參閱 [設定 ACK 許可](ack-permissions.md)。

 **Argo CD**   
預設不需要 IAM 許可。可能需要下列選用許可：  
+  ** AWS Secrets Manager**：如果使用 Secrets Manager 存放 Git 儲存庫登入資料
+  ** AWS CodeConnections**：如果使用 CodeConnections for Git 儲存庫身分驗證

  Secrets Manager 和 CodeConnections 的政策範例：

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "secretsmanager:GetSecretValue",
          "secretsmanager:DescribeSecret"
        ],
        "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*"
      },
      {
        "Effect": "Allow",
        "Action": [
          "codeconnections:UseConnection",
          "codeconnections:GetConnection"
        ],
        "Resource": "arn:aws:codeconnections:region:account-id:connection/*"
      }
    ]
  }
  ```

  如需詳細的 Argo CD 許可需求，請參閱 [Argo CD 考量事項](argocd-considerations.md)。

## 檢查現有功能角色
<a name="check-capability-role"></a>

您可以使用下列程序來檢查您的帳戶是否已有適合您使用案例的功能 IAM 角色。

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 搜尋您職能角色名稱的角色清單 （例如 `ACKCapabilityRole`或 `ArgoCDCapabilityRole`)。

1. 如果角色存在，請選取該角色以檢視連接的政策和信任關係。

1. 選擇 **Trust Relationships** (信任關係)，然後選擇 **Edit trust policy** (編輯信任政策)。

1. 確認信任關係符合[功能信任政策](#capability-trust-policy)。如果不相符，請更新信任政策。

1. 選擇**許可**，並確認角色具有適合您功能類型和使用案例的適當許可。

## 建立功能 IAM 角色
<a name="create-capability-role"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來建立功能角色。

 ** AWS 管理主控台 **   

1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

1. 選擇 **Roles (角色)**，然後選擇 **Create role (建立角色)**。

1. 在**信任的實體類型**下，選取**自訂信任政策**。

1. 將[功能信任政策](#capability-trust-policy)複製並貼到信任政策編輯器中。

1. 選擇**下一步**。

1. 在**新增許可**索引標籤上，選取或建立適合您功能類型的政策 （請參閱 [依功能類型列出的許可](#capability-permissions))。對於 kro，您可以略過此步驟。

1. 選擇**下一步**。

1. 針對**角色名稱**，輸入角色的唯一名稱，例如 `ACKCapabilityRole`、 `ArgoCDCapabilityRole`或 `kroCapabilityRole`。

1. 針對 **Description** (描述)，輸入描述性文字，如 `Amazon EKS - ACK capability role`。

1. 選擇建**立角色**。

 ** AWS CLI**   

1. 將[功能信任政策](#capability-trust-policy)複製到名為 的檔案`capability-trust-policy.json`。

1. 建立角色。將 取代`ACKCapabilityRole`為您所需的角色名稱。

   ```
   aws iam create-role \
     --role-name ACKCapabilityRole \
     --assume-role-policy-document file://capability-trust-policy.json
   ```

1. 將必要的 IAM 政策連接至角色。針對 ACK，為您要管理 AWS 的服務連接政策。針對 Argo CD，視需要連接 Secrets Manager 或 CodeConnections 的政策。對於 kro，您可以略過此步驟。

   具有 S3 許可的 ACK 範例：

   ```
   aws iam put-role-policy \
     --role-name ACKCapabilityRole \
     --policy-name S3Management \
     --policy-document file://s3-policy.json
   ```

## 疑難排解功能角色問題
<a name="troubleshooting-capability-role"></a>

 **功能建立失敗，並顯示「無效的 IAM 角色」**   
請驗證：  
+ 角色與叢集位於相同的帳戶中
+ 信任政策符合[功能信任政策](#capability-trust-policy) 
+ 您有 角色的`iam:PassRole`許可

 **功能顯示許可錯誤**   
請驗證：  
+ 角色具有 功能類型的必要 IAM 許可
+ 角色的 叢集上存在存取項目
+ 視需要設定其他 Kubernetes 許可 （請參閱 [其他 Kubernetes 許可](capabilities-security.md#additional-kubernetes-permissions))

 **ACK 資源失敗，並出現「許可遭拒」錯誤**   
請驗證：  
+ 角色具有使用案例所需的 IAM 許可
+ 對於參考秘密的 ACK 控制器，請確定您已將範圍為適當命名空間的`AmazonEKSSecretReaderPolicy`存取項目政策建立關聯。

如需更多故障診斷指引，請參閱 [EKS 功能的安全考量](capabilities-security.md)。