포도가게의 개발일지
[K8S] AWS EKS IRSA 동작 본문
반응형
AWS EKS IRSA 동작
- 결국 k8s에는 role을 service account를 주어 pod이 k8s resource에 대한 접근권한을 얻는 방식이다.
- 그럼 k8s의 pod들은 aws resource에 대한 접근권한을 어떻게 얻을까?
- 첫번째 node에 iam role을 주어 pod이 자동으로 사용한다.
- 두번째 iam user의 access key를 pod에서 직접 사용한다.
- 세번째 AWS IRSA(IAM Role for Service Account)를 사용한다.
- 우선 pod이 어떻게 aws resource에 접근할까?
- 전달 받은 jwt(id token)과 arn을 이용하여 STS를 통해 정책 및 trust relation(role의 사용가능여부)을 확인한다.
- jwt(id token)를 발급해준 IDP(eks oidc provider)를 통해 jwt 가 유효한지 확인한다.
- STS가 token(temp credential)을 이용하여 resource에 접근한다.
- 그럼 jwt(id token)은 pod에 언제 주입되는걸까?
- pod이 생성되거나 수정될때 role arn을 service account의 annotation에 eks.amazonaws.com/role-arn에 붙이게 되면. pod identity webhook을 통해 eks api에 요청이 가게 된다.
- oidc ipd를 통해 jwt(id. token)을 만들어지며 volume에 mount되며 해당 file의 path는 AWS_WEB_IDENTITY_TOKEN_FILE에 환경변수로 AWS_ROLE_ARN과 함께 pod에 주입된다.
- 이 모든과정은 pod에 service account가 장착될때만 동작하는 flow이다.
'Tech' 카테고리의 다른 글
바닥부터 LangChain(0) (3) | 2024.12.20 |
---|---|
[k8s] Strategy for Gitops (0) | 2024.04.27 |
쿠버네티스(k8s) (0) | 2023.03.19 |
Track g4dn inference server OOM (0) | 2023.01.08 |
Monorepo vs Multirepo (1) | 2022.10.05 |
Comments