OIDC (OpenID Connect Provider)란? 쉽게 이해하기

링키텍트·2025년 4월 3일
post-thumbnail

OIDC에 대한 궁금증

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

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를 추가하는 이유

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로 클러스터를 관리할 수 있음.


OIDC 등록 전

EKS에 자동 할당 되어 있는 OIDC를 Identity Center에 등록하지 않고 Kubectl 명령어를 입력해보겠습니다.
아래 명령어로 pod, node에 대한 어떤 정보도 가져오지 못합니다.

OIDC 등록 후

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

결론

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

0개의 댓글