클러스터 마스터 액세스를 위한 승인된 네트워크 추가

이 페이지에서는 승인된 네트워크에게 Google Kubernetes Engine 클러스터의 클러스터 마스터에 대한 액세스 권한을 부여하는 방법을 설명합니다. GKE 네트워킹에 대한 일반적 정보는 네트워크 개요를 참조하세요.

개요

승인된 네트워크를 사용하면 특정 CIDR 범위를 허용하고 이러한 범위의 IP 주소가 HTTPS를 사용하여 클러스터 마스터 엔드포인트에 액세스하도록 허용할 수 있습니다. 승인된 네트워크는 모든 클러스터와 호환됩니다.

GKE는 전송 레이어 보안(TLS)과 인증을 모두 사용하여 공개 인터넷에서 클러스터 마스터로의 보안 액세스를 제공합니다. 이로써 어디서나 클러스터를 유연하게 관리할 수 있습니다. 승인된 네트워크를 사용하면 액세스를 지정된 IP 주소 집합으로 제한할 수 있습니다.

이점

승인된 네트워크를 추가하면 클러스터에 추가적 보안 이점을 제공할 수 있습니다. 승인된 네트워크는 출처가 사용자의 환경인 주소와 같이 사용자가 지정하는 특정 주소 집합에 액세스 권한을 부여합니다. 이를 통해 클러스터의 인증 또는 승인 메커니즘에 취약점이 있는 경우 클러스터에 대한 액세스를 보호할 수 있습니다.

비공개 클러스터의 이점

비공개 클러스터는 외부 IP 주소 없이 노드를 실행하며, 원한다면 공개적으로 도달할 수 있는 엔드포인트 없이 클러스터 마스터를 실행합니다. 또한 비공개 클러스터는 기본적으로 GCP IP 주소가 클러스터 마스터 엔드포인트에 액세스하는 것을 허용하지 않습니다. 비공개 클러스터를 승인된 네트워크와 함께 사용하면 허용된 CIDR, 클러스터의 VPC 내 노드, 마스터를 관리하는 Google의 내부 프로덕션 작업만 클러스터 마스터에 도달할 수 있습니다.

제한사항

  • 클러스터의 승인된 네트워크 CIDR 범위는 50개를 초과할 수 없습니다.

시작하기 전에

이 작업을 준비하려면 다음 단계를 완료하세요.

  • Google Kubernetes Engine API가 사용 설정되었는지 확인합니다.
  • Google Kubernetes Engine API 사용 설정
  • Cloud SDK가 설치되었는지 확인합니다.
  • 기본 프로젝트 ID를 설정합니다.
    gcloud config set project [PROJECT_ID]
  • 영역 클러스터를 사용하는 경우 기본 컴퓨팅 영역을 설정합니다.
    gcloud config set compute/zone [COMPUTE_ZONE]
  • 리전 클러스터를 사용하는 경우 기본 컴퓨팅 리전을 설정합니다.
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud를 최신 버전으로 업데이트합니다.
    gcloud components update

승인된 네트워크가 있는 클러스터 만들기

gcloud 명령줄 도구 또는 Google Cloud Platform Console을 사용하여 하나 이상의 승인된 네트워크가 있는 비공개 클러스터를 만들 수 있습니다.

gcloud

다음 명령어를 실행합니다.

gcloud container clusters create [CLUSTER_NAME] \
    --enable-master-authorized-networks \
    --master-authorized-networks [CIDR],[CIDR]...

--master-authorized-networks 플래그를 사용하면 HTTPS를 통해 클러스터 마스터 엔드포인트에 대한 액세스 권한을 부여할 쉼표로 구분된 CIDR(예: 8.8.8.0/24)을 최대 50개까지 지정할 수 있습니다.

예를 들면 다음과 같습니다.

gcloud container clusters create example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

콘솔

  1. GCP Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 클러스터 만들기를 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다. 그런 다음 고급 옵션을 클릭합니다.

  4. 네트워크 보안 섹션에서 마스터 승인 네트워크 사용을 선택합니다.

  5. 승인된 네트워크 추가를 클릭합니다.

  6. 원하는 네트워크 이름을 이름에 입력합니다.

  7. 클러스터 마스터에 대한 액세스를 허용할 CIDR 범위를 네트워크에 입력합니다.

  8. 완료를 클릭합니다. 필요에 따라 승인된 네트워크를 추가합니다.

  9. 메뉴 하단의 만들기를 클릭합니다.

API

클러스터 create 요청에서 masterAuthorizedNetworksConfig 객체를 지정합니다.

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
  {
      "displayName": string,
      "cidrBlock": string
  }
]
}

자세한 내용은 MasterAuthorizedNetworksConfig를 참조하세요.

승인된 네트워크가 있는 비공개 클러스터 만들기

하나 이상의 승인된 네트워크가 있는 비공개 클러스터를 만드는 방법은 비공개 클러스터를 참조하세요.

기존 클러스터에 승인된 네트워크 추가

gcloud 명령줄 도구 또는 GCP Console을 사용하여 기존 클러스터에 승인된 네트워크를 추가할 수 있습니다.

gcloud

다음 명령어를 실행합니다.

gcloud container clusters update [CLUSTER_NAME] \
    --enable-master-authorized-networks \
    --master-authorized-networks [CIDR],[CIDR]...

--master-authorized-networks 플래그를 사용하면 HTTPS를 통해 클러스터 마스터 엔드포인트에 대한 액세스 권한을 부여할 쉼표로 구분된 CIDR(예: 8.8.8.0/24)을 최대 50개까지 지정할 수 있습니다.

예:

gcloud container clusters update example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

콘솔

  1. GCP Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 원하는 클러스터를 선택합니다.

  3. 수정을 클릭합니다.

  4. 마스터 승인 네트워크 드롭다운 메뉴에서 아직 사용 설정되지 않았다면 사용을 선택합니다.

  5. 승인된 네트워크 추가를 클릭합니다.

  6. 원하는 네트워크 이름을 이름에 입력합니다.

  7. 클러스터 마스터에 대한 액세스를 허용할 CIDR 범위를 네트워크에 입력합니다.

  8. 완료를 클릭합니다. 필요에 따라 승인된 네트워크를 추가합니다.

  9. 메뉴 하단의 저장을 클릭합니다.

API

클러스터 update 요청에서 desiredMasterAuthorizedNetworksConfig 필드를 지정합니다. 이 필드에서 MasterAuthorizedNetworksConfig 객체를 지정합니다.

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

승인된 네트워크 확인

gcloud 명령줄 도구 또는 GCP Console을 사용하여 기존 클러스터의 승인된 네트워크를 확인할 수 있습니다.

gcloud

다음 명령어를 실행합니다.

gcloud container clusters describe [CLUSTER_NAME]

명령어 출력에서 masterAuthorizedNetworksConfig 필드를 찾습니다.

  ...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
  ...

콘솔

  1. GCP Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 원하는 클러스터를 선택합니다.

마스터 승인 네트워크 필드에 허용되는 CIDR이 표시됩니다.

API

get 요청을 전송합니다. masterAuthorizedNetworksConfig 필드에서 CIDR 블록을 찾습니다. 예를 들면 다음과 같습니다.

"masterAuthorizedNetworksConfig": {
"enabled": true,
"cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

승인된 네트워크 사용 중지

gcloud 명령줄 도구 또는 [GCP Console]을 사용하여 기존 클러스터의 승인된 네트워크를 사용 중지할 수 있습니다.

gcloud

다음 명령어를 실행합니다.

gcloud container clusters update [CLUSTER_NAME] \
--no-enable-master-authorized-networks

콘솔

  1. GCP Console에서 Google Kubernetes Engine 메뉴로 이동합니다.

    Google Kubernetes Engine 메뉴로 이동

  2. 원하는 클러스터를 선택합니다.

  3. 수정을 클릭합니다.

  4. 마스터 승인 네트워크 드롭다운 메뉴에서 사용 안함을 선택합니다.

  5. 저장을 클릭합니다.

문제해결

다음 섹션에서는 승인된 네트워크의 일반적 문제를 해결하는 방법을 설명합니다.

CIDR 블록이 너무 많음

CIDR 블록이 50개를 초과하는 클러스터를 만들거나 업데이트하려 하면 gcloud가 다음 오류를 반환합니다.

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

이 문제를 해결하려면 CIDR 블록을 50개 미만으로 지정해야 합니다.

마스터에 연결할 수 없음

잘못 구성된 CIDR 블록으로 인해 kubectl 명령어가 시간 초과됩니다.

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

클러스터를 만들거나 업데이트할 때는 올바른 CIDR 블록을 지정해야 합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine 문서