

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# 既存の `aws-auth ConfigMap` エントリをアクセスエントリに移行する
<a name="migrating-access-entries"></a>

クラスター上の `aws-auth` `ConfigMap` にエントリを追加した場合は、`aws-auth` `ConfigMap` 内の既存のエントリのアクセスエントリを作成することをお勧めします。アクセスエントリを作成したら、そのエントリを `ConfigMap` から削除できます。`aws-auth``ConfigMap` のエントリに[アクセスポリシー](access-policies.md)を関連付けることはできません。アクセスポリシーを IAM プリンシパルに関連付けるには、アクセスエントリを作成します。

**重要**  
クラスターが `API_AND_CONFIGMAP` 認証モードで、`aws-auth` `ConfigMap` およびアクセスエントリの両方に同じ IAMロールのマッピングがある場合、ロールによってアクセスエントリのマッピングが認証に使用されます。アクセスエントリは、同じ IAM プリンシパルの `ConfigMap` エントリよりも優先されます。
[マネージドノードグループ](managed-node-groups.md)または [Fargate プロファイル](fargate-profile.md)用に Amazon EKS によってお使いのクラスターに作成された既存の `aws-auth` `ConfigMap` エントリを削除する際は、事前にそれらの特定リソースの正しいアクセスエントリが Amazon EKS クラスターに存在するかどうかを再確認してください。同等のアクセスエントリがない状態で Amazon EKS が `ConfigMap` で作成したエントリを削除した場合、クラスターが正しく機能しません。

## 前提条件
<a name="migrating_access_entries_prereq"></a>
+ アクセスエントリとアクセスポリシーに関する知識。詳細については、「[EKS アクセスエントリを使用して Kubernetes へのアクセスを IAM ユーザーに許可する](access-entries.md)」および「[アクセスポリシーをアクセスエントリに関連付ける](access-policies.md)」を参照してください。
+ 「[EKS アクセスエントリを使用して Kubernetes へのアクセスを IAM ユーザーに許可する](access-entries.md)」のトピックの前提条件に記載されているバージョンと同じかそれ以降のプラットフォームバージョンの既存のクラスター。
+ デバイスまたは AWS CloudShell にインストールされている `eksctl` コマンドラインツールのバージョン `0.215.0` 以降。`eksctl` をインストールまたはアップグレードするには`eksctl` ドキュメントの「[インストール](https://eksctl.io/installation)」を参照してください。
+ `kube-system` 名前空間内の `aws-auth` `ConfigMap` を変更する Kubernetes アクセス許可。
+ `CreateAccessEntry` および `ListAccessEntries` のアクセス許可を持つ AWS Identity and Access Management ロールまたはユーザー。詳細については、サービス認可リファレンスの「[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` 内の既存のエントリを表示します。*マイクラスター* の部分は自分のクラスター名に置き換えます。

   ```
   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` と同じ値を指定してください。出力例では、最後の 2 つのエントリを除くすべてのエントリのアクセスエントリを作成します。これらのエントリは Fargate プロファイルとマネージド型ノードグループ用に Amazon EKS によって作成されたものだからです。

1. 作成したすべてのアクセスエントリのエントリを `ConfigMap` から削除します。`ConfigMap` からエントリを削除しない場合、IAM プリンシパル ARN のアクセスエントリの設定によって `ConfigMap` エントリが上書きされます。*111122223333* は AWS アカウント ID に、*EKS-my-cluster-my-namespace-Viewers* は、`ConfigMap` のエントリに含まれるロールの名前に置き換えます。削除するエントリが IAM ロールではなく IAM ユーザー用のものである場合は、`role` を `user` に、*EKS-my-cluster-my-namespace-Viewers* をユーザー名に置き換えます。

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