[CodePipeline] 타 계정의 EKS Private Endpoint로의 접근

Print

질문

CodePipeline을 사용하여 타 Account에 위치한 EKS 클러스터에 배포를 하는 상황에서, EKS 클러스터의 엔드포인트를 Private Access로 구성할 경우 고려해야 할 사항이 궁금합니다.

답변

  1. EKS Cluster Endpoint

    1. EKS 클러스터가 Public Access로 설정되어 있으면 인터넷을 통하여 API 서버 Endpoint에 접근하지만, Private Access로 변경되면 같은 VPC 내 또는 VPC 피어링 등으로 연결된 VPC에서만 접근이 가능합니다.[1]
      이와 관련하여 도움이 되는 아키텍처는 참조 문서 [2]를 참고 부탁 드립니다.

  2. 컨테이너 레지스트리

    1. Private 클러스터를 구성할 경우 아웃바운드 인터넷 액세스 없이 ECR에 접근하므로 [3], EKS 워커 노드에 설정된 IAM Role에 IAM Account에 위치한 ECR에 접근할 수 있도록 Trusted Identity 설정을 해 주어야 할 것으로 생각됩니다.

  3. Cross-Account IAM Role 설정

    1. 동일한 계정의 CodeBuild에서 EKS API 서버로 접근하는 경우 CodeBuild의 서비스 역할을 aws-auth ConfigMap에 추가하는 방식으로 설정하지만[4], Cross-account 구성의 경우 Dev, Stg, Prd Account에서 생성한 Cross-account IAM Role을 aws-auth ConfigMap에 추가해야 할 것 같습니다.

[1] Amazon EKS 클러스터 엔드포인트 액세스 제어 https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html

[2] De-mystifying cluster networking for Amazon EKS worker nodes
https://aws.amazon.com/ko/blogs/containers/de-mystifying-cluster-networking-for-amazon-eks-worker-nodes/#:~:text=Private endpoint only

[3] 컨테이너 이미지의 로컬 복사본 생성
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/private-clusters.html#container-images

[4] CodeBuild에서 Amazon EKS 클러스터에 연결할 때 ‘error: You must be logged in to the server (Unauthorized)’ 오류를 해결하려면 어떻게 해야 합니까?
https://aws.amazon.com/ko/premiumsupport/knowledge-center/codebuild-eks-unauthorized-errors/

이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.