aws-auth アイデンティティマッピングからの移行
Amazon EKS を既に使用しているお客様は、クラスターへの IAM プリンシパルアクセスを管理するための aws-auth ConfigMap メカニズムに慣れているかもしれません。このセクションでは、この古いメカニズムからクラスターアクセスエントリを使用する方法への移行方法を示します。
IAM ロール eks-workshop-admins は、EKS 管理者権限を持つグループに使用される EKS クラスターに事前設定されています。aws-auth ConfigMap を確認してみましょう:
~$kubectl --context default get -n kube-system cm aws-auth -o yaml
apiVersion: v1
data:
mapRoles: |
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::1234567890:role/eksctl-eks-workshop-nodegroup-defa-NodeInstanceRole-acgt4WAVfXAA
username: system:node:{{EC2PrivateDNSName}}- groups:
- system:masters
rolearn: arn:aws:iam::1234567890:role/eks-workshop-admins
username: cluster-admin
mapUsers: |
[]
kind: ConfigMap
metadata:
creationTimestamp: "2024-05-09T15:21:57Z"
name: aws-auth
namespace: kube-system
resourceVersion: "5186190"
uid: 2a1f9dc7-e32d-44e5-93b3-e5cf7790d95e
この IAM ロールになりすましてアクセス権を確認しましょう:
~$aws eks update-kubeconfig --name $EKS_CLUSTER_NAME \
--role-arn $ADMINS_IAM_ROLE --alias admins --user-alias admins
どのポッドでも一覧表示できるはずです。例えば:
~$kubectl --context admins get pod -n carts
NAME READY STATUS RESTARTS AGE
carts-6d4478747c-vvzhm 1/1 Running 0 5m54s
carts-dynamodb-d9f9f48b-k5v99 1/1 Running 0 15d
次に、この IAM ロールの aws-auth ConfigMap エントリを削除しましょう。便宜上 eksctl を使用します:
~$eksctl delete iamidentitymapping --cluster $EKS_CLUSTER_NAME --arn $ADMINS_IAM_ROLE
先ほどと同じコマンドを試すと、今度はアクセスが拒否されます:
~$kubectl --context admins get pod -n carts
error: You must be logged in to the server (Unauthorized)
クラスター管理者がクラスターに再度アクセスできるようにアクセスエントリを追加しましょう:
~$aws eks create-access-entry --cluster-name $EKS_CLUSTER_NAME \
--principal-arn $ADMINS_IAM_ROLE
次に、AmazonEKSClusterAdminPolicy ポリシーを使用して、このプリンシパルのアクセスポリシーを関連付けます:
~$aws eks associate-access-policy --cluster-name $EKS_CLUSTER_NAME \
--principal-arn $ADMINS_IAM_ROLE \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
--access-scope type=cluster
これでアクセスが再び機能していることをテストできます:
~$kubectl --context admins get pod -n carts
NAME READY STATUS RESTARTS AGE
carts-6d4478747c-vvzhm 1/1 Running 0 5m54s
carts-dynamodb-d9f9f48b-k5v99 1/1 Running 0 15d
これらの手順に従うことで、IAM ロールを aws-auth ConfigMap から、Amazon EKS クラスターへのアクセスをより合理的に管理する新しいクラスターアクセス管理 API の使用に正常に移行しました。