EKS 클러스터앱의 IAM 권한 단순화할수 있는 Amazon EKS Pod Identity에 대해 알아봅시다.
IRSA로 사용하는 방법이네요~
EKS는 클러스터 외부의 AWS서비스와 연결하는데 필요한 Pod의 IAM 권한 연결하도록 Amazon Pod Identity 도입함.
Pod Identity는 IRSA사용한다.
OIDC (OpenID Connect) 공급자를 참조하지 않는다.= 여러 EKS클러스터에서 IAM 역할 사용이 가능해짐.
1
Node EC2에 IAM role을 부여하는 방법
이경우 해당 Node에 있는 모든 Pod가 권한을 가진다.
보안에 취약한 방법이다.
2
Access-Key를 Pod에서 사용하는 SDK나 CLI에 설정하는 방법.
보안에 취약한다. Access-Key 관리가 필요하다.
3
IRSA사용하는 방법.
IRSA는 IAM Role for Service Account
쿠버네티스의 서비스 어카운트를 사용하여 Pod의 권한을 IAM Role로 제어할 수 있다.
특정 Pod만 node 밖에 있는 AWS 서비스를 사용할 수 있게 해 준다.
특정 Pod에만 권한을 주므로 보안적인 측면에서 적합하다.
네임스페이스 별로 각각 다른 서비스 어카운트를 만들어 해당 Pod에 각각 다른 IAM Role을 부여할 수 있다.
1
node에서 Agent를 Daemon Set으로 실행해야 함
2
Agent를 실행하기 위해 EKS Pod Identity Agent라는 새로운 추가 기능(Add-on)을 제공함.
클러스터에 EKS Pod Identity Agent 애드온이 미리 설치되어 있어야 한다.
addon 설치는 eksctl이나 테라폼으로도 가능하다.
3
addon 설치법?
EKS 대시보드 > EKS 클러스터 > Add-ons > Get more add-ons > Amazon EKS Pod Identity Agent 클릭해 설치한다.
1
Pod에 연결할 IAM Role 생성
예) S3접근 정책 , Role 생성
2
생성된 IAM Role에 신뢰 관계 정책 설정 = pods.eks.amazonaws.com으로 보안주체를 등록
3
IAM role과 쿠버네티스 서비스 어커운트 연결
EKS클러스터 > Access탭 > Pod Identity association선택
쿠버네티스 네임스페이스와 서비스 어카운트를 드롭 다운 메뉴에서 선택가능하다.
4
확인?
Pod Identity association 목록에서 적용 되었는지 확인하자.
1
AWS IAM권한을 획득하도록 쿠버네티스 애플리케이션 구성하는 방법을 간소화 하는 새로운 기능인 EKS Pod Identity 기능 생김.
2
클러스터에 EKS Pod Identity Agent 애드온이 미리 설치되어 있어야 한다.
https://brunch.co.kr/@topasvga/3303
https://brunch.co.kr/@topasvga/3623
감사합니다.