Amazon EKS 보안 그룹 요구 사항 및 고려 사항 - Amazon EKS

Amazon EKS 보안 그룹 요구 사항 및 고려 사항

이 주제에서는 Amazon EKS 클러스터의 보안 그룹 요구 사항을 설명합니다.

클러스터를 생성할 때 Amazon EKS에서 eks-cluster-sg-my-cluster-uniqueID라는 보안 그룹을 만듭니다. 이 보안 그룹에는 다음의 기본 규칙이 있습니다.

규칙 타입 프로토콜 포트 소스(Source) 대상

인바운드

모두

모두

본인

아웃바운드

모두

모두

0.0.0.0/0 (IPv4) or ::/0 (IPv6)

중요

클러스터에 아웃바운드 규칙이 필요하지 않은 경우 해당 규칙을 제거할 수 있습니다. 규칙을 제거하더라도 클러스터 트래픽 제한에 나열된 최소 규칙은 여전히 있어야 합니다. 인바운드 규칙을 제거하면 클러스터가 업데이트될 때마다 Amazon EKS에서 해당 규칙을 다시 생성합니다.

Amazon EKS에서는 다음과 같은 태그를 보안 그룹에 추가합니다. 태그를 제거하면 클러스터가 업데이트될 때마다 Amazon EKS에서 태그를 보안 그룹에 다시 추가합니다.

kubernetes.io/cluster/my-cluster owned
aws:eks:cluster-name my-cluster
Name eks-cluster-sg-my-cluster-uniqueid

Amazon EKS는 이 보안 그룹을 생성하는 다음 리소스에 자동으로 연결합니다.

  • 클러스터를 생성할 때 생성되는 2~4개의 탄력적 네트워크 인터페이스(이 문서의 나머지 부분에서는 네트워크 인터페이스로 언급)입니다.

  • 생성한 모든 관리형 노드 그룹에 있는 노드의 네트워크 인터페이스입니다.

기본 규칙을 사용하면 클러스터와 노드 간에 모든 트래픽이 자유롭게 흐를 수 있으며 모든 아웃바운드 트래픽은 모든 대상에 대해 허용됩니다. 클러스터를 생성할 때 사용자 고유의 보안 그룹을 지정할 수 있습니다(선택 사항). 이렇게 하면 Amazon EKS는 사용자가 지정한 보안 그룹을 클러스터에 대해 생성하는 네트워크 인터페이스에 연결합니다. 그러나 사용자가 생성하는 노드 그룹에는 연결하지 않습니다.

클러스터의 네트워킹(Networking) 섹션의 AWS Management Console에서 해당 클러스터 보안 그룹의 ID를 확인할 수 있습니다. 또는 다음 AWS CLI 명령을 실행하여 이 작업을 수행할 수 있습니다.

aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId
클러스터 트래픽 제한

클러스터와 노드 사이에 열린 포트를 제한해야 하는 경우 기본 아웃바운드 규칙을 제거하고 클러스터에 필요한 다음과 같은 최소 규칙을 추가할 수 있습니다. 기본 인바운드 규칙을 제거하면 클러스터가 업데이트될 때마다 Amazon EKS에서 해당 규칙을 다시 생성합니다.

규칙 타입 프로토콜 Port 대상
아웃바운드 TCP

443

클러스터 보안 그룹

아웃바운드 TCP

10250

클러스터 보안 그룹

아웃바운드(DNS) TCP 및 UDP 53 클러스터 보안 그룹

또한 다음 트래픽에 대한 규칙을 추가해야 합니다.

  • 노드에서 노드 간 통신에 사용할 것으로 예상하는 모든 프로토콜 및 포트입니다.

  • 노드가 실행 시 클러스터 내부 검사 및 노드 등록을 위해 Amazon EKS API에 액세스할 수 있는 아웃바운드 인터넷 액세스. 노드에 인터넷 액세스 권한이 없는 경우 추가 고려 사항으로 프라이빗 클러스터 요구 사항를 검토합니다.

  • DockerHub와(과) 같이 이미지를 가져오는 데 필요한 Amazon ECR 또는 다른 컨테이너 레지스트리 API에서 컨테이너 이미지를 가져오기 위한 노드 액세스. 자세한 내용은 AWS 일반 참조의 AWS IP 주소 범위를 참조하세요.

  • Amazon S3에 대한 노드 액세스.

  • IPv4IPv6 주소에 대해 별도의 규칙이 필요합니다.

규칙을 제한하려는 경우 변경된 규칙을 프로덕션 클러스터에 적용하기 전에 모든 Pods를 철저히 테스트하는 것이 좋습니다.

Kubernetes 1.14 및 플랫폼 버전 eks.3 이하를 사용하여 클러스터를 처음 배포한 경우 다음을 고려합니다.

  • 사용자에게 컨트롤 플레인과 노드 보안 그룹이 있을 수도 있습니다. 생성된 이러한 그룹에는 이전 표에 나열된 제한 규칙이 포함되어 있습니다. 이러한 보안 그룹은 더 이상 필요하지 않으며 제거할 수 있습니다. 그러나 클러스터 보안 그룹에 해당 그룹에 포함된 규칙이 들어 있는지 확인해야 합니다.

  • 직접 API를 사용하여 클러스터를 배포했거나, AWS CLI 또는 AWS CloudFormation과 같은 도구를 사용하여 클러스터를 생성하고 클러스터 생성 시 보안 그룹을 지정하지 않은 경우, VPC의 기본 보안 그룹은 Amazon EKS가 생성한 클러스터 네트워크 인터페이스에 적용됩니다.