서명 키를 가져와서 OIDC 토큰 검증 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.

서명 키를 가져와서 OIDC 토큰 검증

Kubernetes는 각 Kubernetes 서비스 계정에 ProjectedServiceAccountToken을 발급합니다. 이 토큰은 JSON 웹 토큰(JWT)의 한 유형인 OIDC 토큰입니다. Amazon EKS는 외부 시스템에서 토큰을 검증할 수 있도록 토큰에 대한 서명 키가 포함된 각 클러스터에 대해 퍼블릭 OIDC 엔드포인트를 호스트합니다.

ProjectedServiceAccountToken을 검증하려면 JSON Web Key Set(JWKS)라고도 하는 OIDC 퍼블릭 서명 키를 가져와야 합니다. 애플리케이션에서 이러한 키를 사용하여 토큰을 검증합니다. 예를 들어, PyJWT Python 라이브러리를 사용하여 이러한 키로 토큰을 검증할 수 있습니다. ProjectedServiceAccountToken에 대한 자세한 내용은 IAM, Kubernetes 및 OpenID Connect(OIDC) 백그라운드 정보 섹션을 참조하세요.

사전 조건

  • 클러스터에 대한 기존 AWS Identity and Access Management(IAM) OpenID Connect(OIDC) 제공자입니다. 이미 있는지 아니면 생성해야 하는지 확인하려면 클러스터에 대한 IAM OIDC 공급자 생성 부분을 참조하세요.

  • AWS CLI - Amazon EKS를 비롯한 AWS 서비스를 사용한 작업을 위한 명령줄 도구입니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 설치하기를 참조하세요. AWS CLI 설치 후, 구성 작업도 수행하는 것이 좋습니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 aws config를 사용한 빠른 구성을 참조하세요.

절차

  1. AWS CLI를 사용하여 Amazon EKS 클러스터의 OIDC URL을 검색합니다.

    $ aws eks describe-cluster --name my-cluster --query 'cluster.identity.oidc.issuer' "https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE"
  2. curl 또는 유사한 도구를 사용하여 공개 서명 키를 검색합니다. 그 결과, JSON 웹 키 세트(JWKS)가 생성됩니다.

    중요

    Amazon EKS는 OIDC 엔드포인트에 대한 직접 호출을 스로틀링합니다. 공개 서명 키를 캐시해야 합니다. 응답에 포함된 cache-control 헤더를 준수합니다.

    중요

    Amazon EKS는 7일마다 OIDC 서명 키를 교체합니다.

    $ curl https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE/keys {"keys":[{"kty":"RSA","kid":"2284XXXX4a40","use":"sig","alg":"RS256","n":"wklbXXXXMVfQ","e":"AQAB"}]}