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

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

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

Kubernetes는 각 Kubernetes Service Account에 ProjectedServiceAccountToken을 발급합니다. 이 토큰은 JSON web token (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 Command Line Interface 사용 설명서에서 AWS CLI 설치, 업데이트, 제거를 참조하세요. AWS CLI 설치 후, 구성 작업도 수행하는 것이 좋습니다. 자세한 내용은 AWS Command Line Interface 사용 설명서에서 aws configure를 사용한 빠른 구성 부분을 참조하세요.

OIDC 공개 서명 키 가져오기(AWS CLI)
  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 Web Key Set (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"}]}