

 **協助改進此頁面** 

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

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

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

# 遷移現有 `aws-auth ConfigMap` 項目至存取項目
<a name="migrating-access-entries"></a>

如果您已將項目新增至叢集上的 `aws-auth` `ConfigMap`，則建議您為 `aws-auth` `ConfigMap` 中的現有項目建立存取項目。建立存取項目後，您可以從 `ConfigMap` 中移除對應項目。您無法將[存取政策](access-policies.md)與 `aws-auth` `ConfigMap` 中的項目建立關聯。如果您想要將存取政策與 IAM 主體相關聯，則請建立存取項目。

**重要**  
當叢集處於 `API_AND_CONFIGMAP` 身分驗證模式，且在 `aws-auth` `ConfigMap` 和存取項目中具有相同 IAM 角色的映射時，該角色將會使用存取項目的映射進行身分驗證。存取項目的優先順序高於相同 IAM 主體的 `ConfigMap` 項目。
在將 Amazon EKS 為[受管節點群組](managed-node-groups.md)或 [Fargate 設定檔](fargate-profile.md)建立的現有 `aws-auth` `ConfigMap` 項目移除至您的叢集之前，請仔細檢查 Amazon EKS 叢集中是否存在這些特定資源的正確存取項目。如果您在沒有相同存取項目的情況下移除 Amazon EKS 在 `ConfigMap` 中建立的項目，叢集將無法正常運作。

## 先決條件
<a name="migrating_access_entries_prereq"></a>
+ 熟悉存取項目和存取政策。如需詳細資訊，請參閱[使用 EKS 存取項目授予 IAM 使用者 Kubernetes 的存取權](access-entries.md)及[將存取政策與存取項目建立關聯](access-policies.md)。
+ 現有叢集的平台版本等於或高於 [使用 EKS 存取項目授予 IAM 使用者 Kubernetes 的存取權](access-entries.md) 物件主題之「先決條件」部分中列出的版本。
+ 裝置或 AWS CloudShell 上安裝的`eksctl`命令列工具版本 `0.215.0`或更新版本。如需有關安裝或更新 `eksctl` 的指示，請參閱 `eksctl` 文件中的[安裝](https://eksctl.io/installation)一節。
+ 修改 `kube-system` 命名空間中的 `aws-auth` `ConfigMap` 的 Kubernetes 許可。
+ Identity AWS and Access Management 角色或具有下列許可的使用者： `CreateAccessEntry`和 `ListAccessEntries`。如需詳細資訊，請參閱《服務授權參考》中的 [Amazon Elastic Kubernetes Service 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)一節。

## `eksctl`
<a name="migrating_access_entries_eksctl"></a>

1. 檢視 `aws-auth ConfigMap` 中的現有項目。使用您叢集的名稱取代 {{my-cluster}}。

   ```
   eksctl get iamidentitymapping --cluster my-cluster
   ```

   範例輸出如下。

   ```
   ARN                                                                                             USERNAME                                GROUPS                                                  ACCOUNT
   arn:aws: iam::111122223333:role/EKS-my-cluster-Admins                                            Admins                                  system:masters
   arn:aws: iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers                              my-namespace-Viewers                    Viewers
   arn:aws: iam::111122223333:role/EKS-my-cluster-self-managed-ng-1                                 system:node:{{EC2PrivateDNSName}}       system:bootstrappers,system:nodes
   arn:aws: iam::111122223333:user/my-user                                                          my-user
   arn:aws: iam::111122223333:role/EKS-my-cluster-fargateprofile1                                   system:node:{{SessionName}}             system:bootstrappers,system:nodes,system:node-proxier
   arn:aws: iam::111122223333:role/EKS-my-cluster-managed-ng                                        system:node:{{EC2PrivateDNSName}}       system:bootstrappers,system:nodes
   ```

1.  為在上一個輸出中傳回的您建立的任何 `ConfigMap` 項目的 [建立存取項目](creating-access-entries.md)。建立存取項目時，請確保為 `ARN`、`USERNAME`、`GROUPS` 和 `ACCOUNT` 指定與輸出中傳回的值相同的值。在範例輸出中，您將為最後兩個項目之外的所有項目建立存取項目，因為這些項目是由 Amazon EKS 為 Fargate 描述檔和受管節點群組建立的。

1. 從 `ConfigMap` 中刪除您建立的任何存取項目對應的項目。如果您沒有從 `ConfigMap` 中刪除對應項目，則對應 IAM 主體 ARN 的存取項目的設定將覆寫 `ConfigMap` 項目。將 {{111122223333}} 取代為 AWS 您的帳戶 ID，並將 {{EKS-my-cluster-my-namespace-Viewers}} 取代為 中項目中角色的名稱`ConfigMap`。如果您要移除的項目用於 IAM 使用者而不是 IAM 角色，請用 `user` 取代 `role`，並用使用者名稱取代 {{EKS-my-cluster-my-namespace-Viewers}}。

   ```
   eksctl delete iamidentitymapping --arn arn:aws: iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers --cluster my-cluster
   ```