15장 kubeconfig·Access Entry·RBAC 세 문을 구분한다
aws eks update-kubeconfig는 cluster endpoint와 authentication command를 local kubeconfig에 적는다. 권한 자체를 새로 주는 명령이 아니다.
aws eks update-kubeconfig --name flownote-lab --region ap-northeast-2
kubectl config current-context
kubectl auth can-i get pods --all-namespaces
사람은 federation role, CI는 전용 deploy role을 사용한다. Access Entry는 IAM principal을 EKS access policy 또는 Kubernetes group에 연결한다. namespace 단위 application deploy라면 cluster-admin을 주지 않는다.
aws eks create-access-entry
--cluster-name flownote-lab
--principal-arn arn:aws:iam::111122223333:role/FlowNoteDeployRole
--type STANDARD
aws eks associate-access-policy
--cluster-name flownote-lab
--principal-arn arn:aws:iam::111122223333:role/FlowNoteDeployRole
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy
--access-scope type=namespace,namespaces=flownote
AWS access policy는 편리한 시작점이다. 더 세밀한 verb·resource 제한이 필요하면 Access Entry의 Kubernetes group과 Role/RoleBinding을 사용한다. kubectl auth can-i --list -n flownote 출력은 identity가 실제로 가진 Kubernetes 권한을 확인하는 증거다.