들어가며

크레딧이 부여된 하나의 계정에서 각 팀원마다 IAM 사용자를 생성하여 구성된 EKS 클러스터에 로컬에서 액세스하려고 했다.

1. aws configure 명령으로 각 IAM 사용자의 액세스 키로 AWS 자격 증명도 등록했다.
2. aws eks --region [Region name] update-kubeconfig --name [EKS name]을 통해 Kubeconfig 파일 내 클러스터의 접속 정보도 업데이트했다.
문제 인식

kubectl get no 명령으로 팀원 모두가 워커 노드를 조회했지만
You must be logged in to the server (the server has asked for the client to provide credentials) 에러가 발생했다.
모두가 공통적인 에러가 발생한 것은 명확하게 놓친 부분이 있을 것이라 생각하고 AWS 공식 문서를 찾아보기 시작했다.
문제 원인
Amazon EKS 클러스터가 생성되면 클러스터를 생성한 주체에게 Kubernetes 클러스터 관리자 권한이 영구적으로 부여되므로 따라서 다른 IAM 사용자라면 기본적으로 접근 권한이 없다.
따라서 IAM 사용자가 EKS Cluster에 접근 할 때 권한을 줘야한다.
문제 해결
이때 AWS Identity and Access Management(IAM) 주체와 OIDC 공급자의 사용자가 되는 두가지 방법이 있다.
우리는 간편하게 전자의 방법을 이용할 것인데 2023년 12월에 출시된 EKS Cluster Access Management로 인해 EKS 대시보드에서 쉽게 IAM 사용자의 액세스 권한을 추가할 수 있다.
이전엔 aws-auth ConfigMap을 수정하는 방법으로 복잡했지만 더 편리해졌다.

액세스 관리에 들어간다.

ConfigMap을 이용한 액세스 관리가 아닌 EKS API를 이용할 것이므로 EKS API 및 ConfigMap을 선택한다.
EKS API를 선택하지 않는 이유는 위로 올라가면 아래로 내려올 수 없다고 하니 완벽히 쿠버네티스 환경이 구축된 다음 EKS API 단독 선택을 고려하도록 해야할 것이다.

IAM 액세스 항목의 액세스 정책 생성을 누른다.

IAM 보안 주체에서 IAM 사용자를 선택하고 사용자 이름을 설정한다.

쿠버네티스 API 서버에 접속을 위해 적절한 정책을 추가하고 생성한다.

정상적으로 적절한 정책을 부여받아 액세스 항목에 등록된 IAM 사용자는 쿠버네티스 API 서버에 접속하여 어러 작업을 할 수 있었다.
관련 공식 문서
A deep dive into simplified Amazon EKS access management controls | Amazon Web Services
Introduction Since the initial Amazon Elastic Kubernetes Service (Amazon EKS) launch, it has supported AWS Identity and Access Management (AWS IAM) principals as entities that can authenticate against a cluster. This was done to remove the burden—from ad
aws.amazon.com
EKS Cluster Access Management
Grant IAM users and roles access to Kubernetes APIs - Amazon EKS
Once the access entry method is enabled, it cannot be disabled. If the ConfigMap method is not enabled during cluster creation, it cannot be enabled later. All clusters created before the introduction of access entries have the ConfigMap method enabled.
docs.aws.amazon.com
IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여
'클라우드 환경 구축 프로젝트 > Kubernetes' 카테고리의 다른 글
| [Kubernetes] Kube-Ops-View 도입을 통한 노드 및 파드 확장 및 축소 시각화 보드 제공 (0) | 2024.11.13 |
|---|---|
| [Kubernetes] AWS EKS Karpenter 1.0 버전 기반 노드 Auto Scailing 최적화 (0) | 2024.10.11 |
| [Kubernetes] AWS EKS 웹 콘솔에서 쿠버네티스 환경 구성하기 (1) | 2024.09.03 |