GKE on AWS 보안 그룹

이 주제에서는 GKE on AWS에 필요한 AWS 보안 그룹(SG)에 대해 설명합니다.

관리 서비스를 설치하거나 기존 AWS VPC를 사용하는 경우 anthos-gke가 보안 그룹을 만듭니다. 추가 보안 그룹 ID 목록을 사용하여 AWSClusterAWSNodePool CRD를 구성할 수 있습니다.

다음 다이어그램은 GKE on AWS가 보안 그룹을 사용하여 Google Cloud 및 AWS 서비스에 연결하는 방법을 보여줍니다.

GKE on AWS 구성요소에서 Google Cloud 및 AWS 서비스로의 포트 및 연결 다이어그램입니다.

관리 서비스 보안 그룹

관리 서비스 보안 그룹을 사용하면 HTTPS로 관리 서비스 API에 액세스할 수 있습니다. 배스천 호스트가 구성된 경우 배스천 보안 그룹에서 인바운드가 허용됩니다.

기존 AWS VPC에 GKE on AWS 환경을 만드는 경우 다음 연결을 허용하는 보안 그룹이 있어야 합니다.

유형 프로토콜 포트 주소 설명
인바운드 TCP 443 VPC CIDR AWS VPC에서 HTTPS를 허용합니다.
인바운드 TCP 22 배스천 호스트 SG 배스천 호스트에서 SSH 터널링 허용(전용 VPC에만 포함)
아웃바운드 TCP 80 0.0.0.0/0 아웃바운드 HTTP를 허용합니다.
아웃바운드 TCP 443 0.0.0.0/0 아웃바운드 HTTPS를 허용합니다.

아웃바운드 도메인 액세스

관리 서비스에는 다음 도메인에 대한 아웃바운드 액세스가 필요합니다.

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

EC2-REGION을 AWS용 GKE 설치가 실행되는 AWS EC2 리전으로 바꿉니다. 예를 들면 us-west-1.ec2.archive.ubuntu.com/입니다.

Prometheus 및 Kiali와 함께 Cloud Service Mesh를 사용하는 경우 다음 도메인에서 아웃바운드 액세스를 허용합니다.

  • docker.io
  • quay.io

배스천 호스트 보안 그룹(선택사항)

이 그룹에서 허용되는 배스천 호스트 보안 그룹 연결을 사용하여 GKE on AWS 관리 서비스 및 사용자 클러스터에 연결합니다. 이 그룹은 선택사항이며 anthos-gke를 사용하여 전용 VPC에 GKE on AWS 설치를 만드는 경우에만 포함됩니다.

유형 프로토콜 포트 주소 설명
인바운드 TCP 22 AWSManagementService 구성에 있는 bastionAllowedSSHCIDRBlocks의 CIDR 블록입니다. 배스천 호스트에 대해 SSH를 허용합니다.
아웃바운드 TCP 22 0.0.0.0/0 아웃바운드 SSH를 허용합니다.
아웃바운드 TCP 80 0.0.0.0/0 아웃바운드 HTTP를 허용합니다.
아웃바운드 TCP 443 0.0.0.0/0 아웃바운드 HTTPS를 허용합니다.

제어 영역 보안 그룹

제어 영역 보안 그룹은 제어 영역 노드와 관리 서비스 간, 제어 영역 노드와 노드 풀 간의 연결을 허용합니다.

제어 영역은 AWS 네트워크 부하 분산기(NLB) 뒤에 있는 세 개의 EC2 인스턴스로 구성됩니다. 이러한 인스턴스는 다른 노드, 노드 풀 노드, NLB의 etcd 인스턴스에서 연결하도록 허용합니다. GKE on AWS 구성요소를 업데이트하기 위해 모든 아웃바운드 HTTP/HTTPS 트래픽이 허용됩니다.

AWSCluster 정의에 보안 그룹 ID를 지정합니다.

유형 프로토콜 포트 주소 설명
인바운드 TCP 2380 이 SG 제어 영역 etcd 복제를 허용합니다.
인바운드 TCP 2381 이 SG 제어 영역 etcd 이벤트 복제를 허용합니다.
인바운드 TCP 443 노드 풀 SG 노드 풀 노드에서 HTTPS를 허용합니다.
인바운드 TCP 443 AWS VPC CIDR 범위 부하 분산기 및 관리 서비스에서 HTTPS를 허용합니다.
인바운드 TCP 11872 AWS VPC CIDR 범위 부하 분산기의 HTTP 상태 확인
아웃바운드 TCP 22 노드 풀 SG 노드 풀에 대한 SSH 터널링을 허용합니다(클러스터 v1.20 이하).
인바운드 TCP 8132 노드 풀 SG 노드 풀의 Konnectivity 연결을 허용합니다(클러스터 v1.21 이상).
아웃바운드 TCP 80 0.0.0.0/0 아웃바운드 HTTP를 허용합니다.
아웃바운드 TCP 443 0.0.0.0/0 아웃바운드 HTTPS를 허용합니다.
아웃바운드 TCP 2380 이 SG 제어 영역 etcd 복제를 허용합니다.
아웃바운드 TCP 2381 이 SG 제어 영역 etcd 이벤트 복제를 허용합니다.
아웃바운드 TCP 10250 노드 풀 SG 제어 영역에서 Kubelet으로의 연결을 허용합니다.

노드 풀 보안 그룹

노드 풀 보안 그룹은 제어 영역 및 다른 노드에서의 연결을 허용합니다. AWSNodePool 정의에 보안 그룹 ID를 지정합니다.

유형 프로토콜 포트 주소 설명
인바운드 TCP 전체 이 SG pod 간 통신을 허용합니다.
인바운드 TCP 22 제어 영역 SG 제어 영역의 SSH 터널링을 허용합니다(클러스터 v1.20 이하).
아웃바운드 TCP 8132 제어 영역 SG 제어 영역에 대해 Konnectivity 연결을 허용합니다(클러스터 v1.21 이상).
인바운드 TCP 443 제어 영역 SG 제어 영역에서 Kubelet으로의 연결을 허용합니다.
인바운드 TCP 10250 제어 영역 SG 제어 영역에서 Kubelet으로의 연결을 허용합니다.
아웃바운드 TCP 전체 이 SG pod 간 통신을 허용합니다.
아웃바운드 TCP 80 0.0.0.0/0 아웃바운드 HTTP를 허용합니다.
아웃바운드 TCP 443 0.0.0.0/0 아웃바운드 HTTPS를 허용합니다.