EKS コンソールでは、EKS クラスターの設定のみでなく、Kubernetes クラスターで実行されるワークロードに関する情報を確認できます。EKS コンソールで Kubernetes クラスターのワークロードを表示するには、EKS コンソールを操作する IAM ユーザーまたは IAM ロールに Kubernetes クラスター内の権限を付与する必要があります。
EKS では、クラスターを作成した IAM ユーザーや IAM ロールに対して、コントロールプレーンのクラスター RBAC 設定で、system:masters
アクセス許可が自動的に付与されます。クラスターを操作する権限を他の AWS ユーザーやロールに付与するには、Kubernetes 内の aws-auth
ConfigMap を編集する必要があります。
本ワークショップでは、Cloud9 環境をホストしている EC2 インスタンスに割り当てた IAM ロールを使用して EKS クラスターを作成しました。そのため、以降の手順にて、マネジメントコンソールを操作している IAM ユーザーや IAM ロールに対して Kubernetes クラスター内の権限を付与するために aws-auth
ConfigMap を編集します。
aws-auth
ConfigMap の編集ここでは、eksctl
を利用して aws-auth
ConfigMap にマネジメントコンソールを操作している IAM ユーザーまたは IAM ロールのマッピングを追加します。
c9builder=$(aws cloud9 describe-environment-memberships --environment-id=$C9_PID --query 'memberships[*].userArn' --output text)
if echo ${c9builder} | grep -q user; then
rolearn=${c9builder}
echo Role ARN: ${rolearn}
elif echo ${c9builder} | grep -q assumed-role; then
assumedrolename=$(echo ${c9builder} | awk -F/ '{print $(NF-1)}')
rolearn=$(aws iam get-role --role-name ${assumedrolename} --query Role.Arn --output text)
echo Role ARN: ${rolearn}
fi
続いて、以下のコマンドを実行します。
eksctl create iamidentitymapping --cluster eksworkshop-eksctl --arn ${rolearn} --group system:masters --username admin
kubectl
を実行して aws-auth
ConfigMap の内容を確認します。
kubectl describe configmap -n kube-system aws-auth
aws-auth
ConfigMap にマッピングが追加されたことを確認した後、EKS コンソールからワークロードが表示されることを確認します。