본문 바로가기

k8s/AWS EKS

[AWS]EKS Cluster Endpoint 정리

Cluster Public Endpoint

AWS EKS에서는 Cluster와 통신 시 사용하는 관리형 Kubernetes API 서버에 대한 엔드포인트를 생성한다.

기본적으로 API 서버 Endpoint는 인터넷에 공개돼 있으며, API 서버에 대한 액세스는 AWS ID 및 IAM 및 기본 kubernetes 역할 기반 액세스 제어(RBAC)의 조합을 통해 보호된다.


Cluster Private Endpoint

노드와 API  서버 간 모든 통신이 VPC 내에 유지되도록 Kubernetes API 서버에 대한 Private Access를 활성화할 수 있다.

더보기

※이 Endpoint는 Kubernetes API 서버이며 AWS API와 통신하기 위한 기존 AWS PrivateLink 엔드포인트가 아니므로 AWS VPC 콘솔에서 Endpoint로 표시되지 않음.

클러스터에 대해 Endpoint Private Access를 활성화하면 AWS EKS에서는 사용자 대신 Route 53 Private 호스팅 영역을 생성하고 클러스터의 VPC에 연결한다.

이 Private 호스팅 영역은 AWS EKS에서 관리하므로 사용자 Route 53에 표시되지 않는다.

Private 호스팅 영역이 API 서버로 트래픽을 라우팅하려면 VPC에서 enableDnsHostnames 및 enableDnsSupport가 True로 설정되어야 하고, VPC에 설정된 DHCP 옵션이 도메인 이름 서버 목록에 AmazonProvidedDNS를 포함해야한다.

 


Endpoint Access 조합 정리

Public Private 동작
활성화 비활성 - 새 AWS EKS Cluster 기본 조합
- Cluster VPC 내에서 발생한 Kubernetes API 요청은 VPC에서 벗어나지만 AWS 네트워크에서는 벗어나지 않음
- 인터넷에서 Cluster API 서버에 Access 가능
- Public Endpoint에 Access 할 수 있는 CIDR 블록을 제한할 수 있음
- 특정 CIDR 블록에 대한 액세스를 제한 시 Private Endpoint도 활성화하거나 지정한 CIDR 블록에 노드와 Fargate Pod(사용 시)가 Public Endpoint에 액세스하는 주소가 포함되어 있는지 확인하는 것이 좋음
활성화 활성화 - Cluster의 VPC 내 Kubernetes API 요청은 Private VPC Endpoint를 사용
- 인터넷에서 Cluster API 서버에 Access 가능
- Public Endpoint에 Access 할 수 있는 CIDR 블록을 제한할 수 있음
- AWS EKS Cluster에서 하이브리드 노드를 사용하는 경우 Public & Private Endpoint Access를 모두 활성화하는 것은 권장되지 않음
- 하이브리드 노드가 있는 Cluster에는 Public 또는 Private Cluster Endpoint Access 중 하나를 사용하는 것이 좋
비활성 활성화 - Cluster API 서버에 대한 모든 트래픽이 Cluster VPC 내부 또는 연결된 네트워크에서 발생해야함
- 인터넷에서 Cluster API 서버에 Access 불가능
- Cluster API 서버 Endpoint는 Public DNS 서버에 의해 VPC Private IP 주소로 확인됨. 이전에는 Endpoint가 VPC 내에서만 확인됨.

 


Endpoint Public Access

Endpoint Public Access 아키텍처

  • Public 네트워크의 클라이언트에서 EKS Cluster와 통신이 필요한 경우 사용
  • Endpoint가 Public에 노출돼 있어 초기 개발 및 테스트 환경에서만 사용하는 것을 권장

Endpoint Public & Private Access

Endpoint Public & Private Access 아키텍처

 

  • Public, Private 접근이 모두 필요한 경우 사용
  • Cluster 관리자는 Private 접근이 가능하고 외부 시스템에서 Public 접근하는 경우 사용
  • 마찬가지로 Endpoint가 Public에 노출 돼있어 보안 측면에서 Only Private보다 보안적으로 취약

Endpoint Private Access

Endpoint Private Access 아키텍처

  • 프로덕션 환경과 같이 보안이 중요시 되는 환경
  • 연결된 네트워크를 통해 VPC에 접근이 가능한 경우 (ex. VPN, Direct Connect 등)
  • Public에서 접근이 제한적이기 때문에 보안 강화

*참고

Endpoint Access: https://www.ongja.space/13d4c62d-36c3-80da-8e8d-ee082f0b2c90

RBAC: https://kubernetes.io/docs/reference/access-authn-authz/rbac/

Amazon Virtual Private Cloud Connectivity Options : https://docs.aws.amazon.com/ko_kr/whitepapers/latest/aws-vpc-connectivity-options/introduction.html
*Private 전용 API 서버 Access: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/cluster-endpoint.html#private-access

'k8s > AWS EKS' 카테고리의 다른 글

[AWS] EKS AutoScaling  (0) 2025.03.08
[AWS] EKS Observability  (0) 2025.03.01
[AWS] EKS Storage  (0) 2025.02.23
[AWS] EKS Networking  (0) 2025.02.16
[AWS] EKS 생성해보기  (0) 2025.02.06