AWS EKS를 생성하고, 노드 및 파드에 접속하여 공부해보면서 OIDC가 생성 되면 , IAM Identity Center 에 등록하곤 했었는데요.
문득 OIDC 가 뭐고 이걸 왜 등록 해야하는지에 대해 궁금해졌습니다. 그래서 이것이 어떤 역할을 하게 되는지에 대해서 작성해보려 합니다.

EKS를 생성하면 OIDC 제공자(OpenID Connect Provider) 가 자동으로 생성됩니다.
이 OIDC 제공자는 Kubernetes API 서버가 AWS IAM과 연동할 수 있도록 해주는데요.
Kubernetes 내부에서는 kubectl 명령어를 실행할 때 IAM 사용자의 역할(Role)을 기반으로 인증을 수행해야 합니다.
기본적으로 EKS 클러스터는 IAM 인증을 사용하지만, IAM 자체는 Kubernetes 네이티브 RBAC(Role-Based Access Control)를 모릅니다.
그래서 OIDC를 이용해 IAM과 Kubernetes의 인증 체계를 연결하는 방식으로 동작하게 됩니다.
IAM Identity Center(기존 SSO)를 EKS OIDC와 연동하면 AWS IAM Identity Center 사용자가 EKS에 접근할 수 있습니다. 이러한 이유로 EKS 생성 후 OIDC를 Identity Center에 추가해줘야 하는데요.
OIDC를 통해 EKS가 AWS IAM과 연동됨.
→ "EKS가 AWS IAM 역할(Role)을 사용할 수 있음"을 의미.
IAM Identity Center를 사용하면, AWS IAM 역할을 통해 EKS에 접근 가능
→ 즉, AWS IAM Identity Center에서 특정 사용자나 그룹을 IAM Role에 매핑하면, 해당 사용자는 kubectl을 사용하여 EKS에 접근 가능.
IAM Role과 Kubernetes RBAC 연결
→ IAM Role이 EKS의 Kubernetes RBAC와 연결되면, 해당 Role을 가진 사용자는 kubectl로 클러스터를 관리할 수 있음.
EKS에 자동 할당 되어 있는 OIDC를 Identity Center에 등록하지 않고 Kubectl 명령어를 입력해보겠습니다.
아래 명령어로 pod, node에 대한 어떤 정보도 가져오지 못합니다.

Identity Center에 등록 후 이전에는 되지 않던 kubectl 명령어가 동작하는 것 확인 가능합니다.

100번의 이론 설명보다 1번의 실습이 더 이해하기가 편하죠 :)
OIDC는 Kubernetes에서 AWS IAM을 통한 접근을 가능하게 해주는 인증 방식이다!!
OIDC 덕분에 AWS IAM으로 kubernetes에 로그인할 수 있다👍