클러스터에 대한 IAM OIDC 공급자 생성 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

클러스터에 대한 IAM OIDC 공급자 생성

클러스터에는 OpenID Connect (OIDC) 발급자 URL이 연결되어 있습니다. 서비스 계정에 AWS ID 및 액세스 관리 (IAM) 역할을 사용하려면 클러스터의 OIDC 발급자 URL에 IAM OIDC 공급자가 있어야 합니다.

  • 기존 Amazon EKS 클러스터. 배포하려면 Amazon EKS 시작하기 섹션을 참조하세요.

  • 장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전 2.12.3 이상 또는 버전 1.27.160 이상 또는 AWS CloudShell. 현재 버전을 확인하려면 aws --version | cut -d / -f2 | cut -d ' ' -f1을 사용합니다. macOS용 yum, apt-get 또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS 명령줄 인터페이스 사용 설명서에서 설치aws config를 사용하여 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서홈 디렉터리에 AWS CLI 설치하기를 참조하세요.

  • kubectl 명령줄 도구는 장치 또는 AWS CloudShell에 설치됩니다. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어, 클러스터 버전이 1.29인 경우 kubectl 버전 1.28, 1.29 또는 1.30를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 및 eksctl 설정 부분을 참조하세요.

  • 클러스터 구성이 포함된 기존 kubectl config 파일입니다. kubectl config 파일을 생성하려면 kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결 섹션을 참조하세요.

eksctl 또는 AWS Management Console을 사용하여 클러스터에 대한 IAM OIDC 공급자를 생성할 수 있습니다.

OIDC 공급자 생성(eksctl)

  1. 장치에 설치된 eksctl 명령줄 도구의 버전 0.199.0 이상 또는 AWS CloudShell이 필요합니다. eksctl을 설치 또는 업그레이드하려면 eksctl 설명서에서 설치를 참조하세요.

  2. 클러스터의 OIDC 발행자 ID를 판단합니다.

    클러스터의 OIDC 발행자 ID를 검색하고 변수에 저장합니다. my-cluster를 원하는 값으로 바꿉니다.

    cluster_name=my-cluster
oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
echo $oidc_id
  1. 클러스터의 발행자 ID를 가진 IAM OIDC 공급자가 이미 계정에 있는지 판단합니다.

    aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4

    출력이 반환되면 클러스터에 대한 IAM OIDC 공급자가 이미 있는 것이므로 다음 단계를 건너뛸 수 있습니다. 출력이 반환되지 않은 경우 해당 클러스터에 대한 IAM OIDC 공급자를 생성해야 합니다.

  2. 다음 명령을 사용하여 클러스터의 IAM OIDC ID 공급자를 생성합니다.

    eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
    참고

    EKS VPC 엔드포인트를 활성화한 경우 해당 VPC 내에서 EKS OIDC 서비스 엔드포인트에 액세스할 수 없습니다. 따라서 VPC에서 eksctl을 통해 OIDC 공급자를 생성하는 등의 작업은 작동하지 않으며 https://oidc.eks.region.amazonaws.com 요청을 시도할 때 시간 초과가 발생합니다. 오류 메시지의 예는 다음과 같습니다.

** server cant find oidc.eks.region.amazonaws.com: NXDOMAIN

이 단계를 완료하려면 VPC 외부(예: AWS CloudShell 또는 인터넷에 연결된 컴퓨터)에서 명령을 실행할 수 있습니다. 또는 VPC에서 Route 53 Resolver와 같은 분할-수평 조건부 확인자를 생성하여 OIDC 발급자 URL에 대해 다른 확인자를 사용하고 VPC DNS를 사용하지 않을 수 있습니다. CoreDNS의 조건부 전달의 예는 GitHub의 Amazon EKS feature request를 참조하세요.

OIDC 공급자 생성(AWS 콘솔)

  1. Amazon EKS 콘솔을 엽니다.

  2. 왼쪽 창에서 클러스터를 선택한 다음 클러스터 페이지에서 클러스터 이름을 선택합니다.

  3. 개요 탭의 세부 정보 섹션에서 OpenID Connect 공급자 URL의 값을 적어 둡니다.

  4. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  5. 왼쪽 탐색 창의 액세스 관리에서 자격 증명 공급자를 선택합니다. 클러스터의 URL과 일치하는 공급자가 목록에 있으면 클러스터에 대한 공급자가 이미 있는 것입니다. 클러스터의 URL과 일치하는 공급자가 나열되지 않는 경우 공급자를 생성해야 합니다.

  6. 공급자를 생성하려면 공급자 추가를 선택합니다.

  7. 공급자 유형에서 OpenID Connect 를 선택합니다.

  8. 공급자 URL에 클러스터의 OIDC 공급자 URL을 입력합니다.

  9. 대상sts.amazonaws.com을 입력합니다.

  10. (선택사항) 원하는 태그(예: 이 공급자의 클러스터를 식별하는 태그)를 추가합니다.

  11. 공급자 추가를 선택합니다.

다음 단계: Kubernetes 서비스 계정에 IAM 역할 할당