VPN 연결 만들기 및 관리

이 페이지에서는 Distributed Cloud 영역에서 Google Distributed Cloud VPN 연결 리소스를 만들고 관리하는 방법을 설명합니다.

이 기능은 Distributed Cloud Rack에서만 사용할 수 있습니다. 분산 클라우드 서버는 VPN 연결 리소스를 지원하지 않습니다.

Distributed Cloud VPN 연결에 대한 자세한 내용은 Distributed Cloud 작동 방식을 참고하세요.

다음 사항에 유의하세요.

  • Distributed Cloud VPN 연결에 필요한 트래픽을 허용하도록 네트워크를 구성해야 합니다.

  • Distributed Cloud VPN 연결을 만들면 Distributed Cloud에서 필요한 Cloud VPN 게이트웨이 및 Cloud Router 리소스를 만듭니다. Cloud VPN 게이트웨이 이름에는 anthos-mcc 접두사가 붙습니다. Cloud Router 이름에는 gdce이 접두사로 붙습니다. 이러한 리소스를 수정하면 안 됩니다. 그렇지 않으면 분산 Cloud VPN 연결이 작동하지 않을 수 있습니다. 이러한 리소스를 실수로 수정한 경우 영향을 받는 Distributed Cloud VPN 연결을 삭제하고 다시 만들어야 합니다.

  • Google Cloud 프로젝트 및 리전에서 첫 번째 Distributed Cloud VPN 연결을 만들면 Distributed Cloud에서 리전별 프로젝트당 단일 Cloud Router를 만듭니다. Google Cloud 이후 해당 Google Cloud 프로젝트 및 리전에서 생성된 모든 VPN 연결은 동일한 Cloud Router 리소스를 재사용합니다.

  • Cloud Router 리소스는 연결된 보조 네트워크 인터페이스가 없는 경우에만 삭제할 수 있습니다. 분산 클라우드는 연결된 마지막 VPN 연결을 삭제하면 Cloud Router를 자동으로 삭제합니다.

  • 분산 Cloud VPN 연결은 IPv4 주소만 지원합니다.

  • 분산 클라우드 클러스터당 VPN 연결은 하나만 만들 수 있습니다.

  • 로컬 네트워크에서 여러 네트워크 주소 변환 (NAT) 게이트웨이를 사용하는 경우 Distributed Cloud 설치가 가상 프라이빗 클라우드 (VPC) 네트워크로의 아웃바운드 트래픽에 단일 IP 주소를 사용하도록 구성해야 합니다.

  • 기본적으로 Distributed Cloud는 단일 노드에서 단일 VPN 클라이언트를 구성하여 Google Cloud 에 연결합니다. 이 연결은 Google Cloud 엔드에서 HA VPN이라고도 하는 두 개의 VPN 터널을 사용합니다. --high-availability 플래그를 사용하여 VPN 연결의 가용성을 더욱 높일 수 있습니다. 이 플래그는 Distributed Cloud에 총 4개의 VPN 터널을 위해 별도의 두 노드에 두 개의 VPN 클라이언트를 구성하도록 지시합니다.

  • VPN 연결의 구성을 변경하려면 VPN 연결을 삭제하고 다시 만들어야 합니다.

  • Google Cloud CLI 또는 Distributed Cloud Edge Container API를 사용하여 VPN 연결을 관리할 수 있습니다.

VPN 연결 만들기

Distributed Cloud VPN 연결을 만들려면 이 섹션의 단계를 완료하세요.

이 작업을 완료하려면 Google Cloud 프로젝트에Edge Container 관리자 역할(roles/edgecontainer.admin)이 있어야 합니다.

gcloud

gcloud edge-cloud container vpn-connections create 명령어를 사용합니다.

gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --vpc-network=VPC_NETWORK_NAME \
    --nat-gateway-ip=NAT_GATEWAY_IP \
    --router=ROUTER_NAME \
    --high-availability

다음을 바꿉니다.

  • VPN_CONNECTION_NAME: 이 VPN 연결을 고유하게 식별하는 설명 이름입니다.
  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 타겟 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • CLUSTER_NAME: 대상 Distributed Cloud 클러스터의 이름입니다.
  • VPC_NETWORK_NAME: 이 VPN 연결이 가리키는 타겟 VPC 네트워크의 이름입니다. 이 네트워크는 Distributed Cloud 설치와 동일한 Google Cloud 프로젝트에 있어야 합니다.
  • NAT_GATEWAY_IP: 대상 클러스터의 NAT 게이트웨이 IP 주소입니다. NAT를 사용하지 않는 경우 이 플래그를 생략합니다.
  • ROUTER_NAME (선택사항): 이 VPN 연결에 사용할 기존 Cloud Router 리소스를 지정합니다. 그렇지 않으면 Distributed Cloud에서 타겟Google Cloud 프로젝트 및 리전에 아직 Cloud Router가 없는 경우 자동으로 Cloud Router를 만듭니다.
  • --high-availability (선택사항): 두 개의 개별 노드에서 실행되는 두 개의 개별 VPN 클라이언트를 설정하여 클러스터 측에서 고가용성을 위해 이 VPN 연결을 구성합니다. 고가용성을 사용 중지하려면 이 플래그를 생략하세요.

API

projects.locations.vpnConnections.create 메서드에 대해 POST 요청을 실행합니다.

POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
  "name": string,
  "labels": {
   },
  "natGatewayIp": NAT_GATEWAY,
  "cluster": CLUSTER_PATH,
  "vpc": VPC_NETWORK_ID
  "enableHighAvailability": HA_ENABLE,
  "router": ROUTER_NAME,
}

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • VPN_CONNECTION_ID: 이 노드 풀 리소스를 식별하는 고유 프로그래매틱 ID입니다.
  • REQUEST_ID: 이 요청을 식별하는 고유한 프로그래매틱 ID입니다.
  • VPN_CONNECTION_NAME: 이 VPN 연결을 고유하게 식별하는 설명 이름입니다.
  • NAT_GATEWAY: NAT 게이트웨이의 IP 주소입니다.
  • CLUSTER_PATH: 타겟 클러스터의 전체 표준 경로입니다.
  • VPC_NETWORK_ID: 대상 VPC 네트워크의 ID입니다.
  • HA_ENABLE: 클러스터 측에서 이 VPN 연결을 고가용성으로 구성할지 여부를 나타냅니다. TRUE로 설정하면 별도의 두 노드에서 실행되는 두 개의 별도 VPN 클라이언트를 구성합니다.
  • ROUTER_NAME (선택사항): 이 VPN 연결에 사용할 기존 Cloud Router 리소스를 지정합니다. 그렇지 않으면 Distributed Cloud에서 타겟Google Cloud 프로젝트 및 리전에 아직 Cloud Router가 없는 경우 자동으로 Cloud Router를 만듭니다.

VPN 연결 목록 표시

Distributed Cloud 클러스터에 프로비저닝된 VPN 연결을 나열하려면 이 섹션의 단계를 완료하세요.

이 작업을 완료하려면 Google Cloud 프로젝트에 Edge Container 뷰어 역할(roles/edgecontainer.viewer)이 있어야 합니다.

gcloud

gcloud edge-cloud container vpn-connections list 명령어를 사용합니다.

gcloud edge-cloud container vpn-connections list \
    --project=PROJECT_ID \
    --location=REGION

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.

API

projects.locations.vpnConnections.list 메서드에 대해 GET 요청을 실행합니다.

GET /v1/PROJECT_ID/locations/REGION/vpnConnections?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • FILTER: 반환된 결과를 특정 값으로 제한하는 표현식입니다.
  • PAGE_SIZE: 페이지당 반환할 결과 수입니다.
  • SORT_BY: 반환된 결과를 정렬하는 쉼표로 구분된 필드 이름 목록입니다. 기본 정렬 순서는 오름차순입니다. 내림차순 정렬의 경우 원하는 필드 앞에 ~를 붙입니다.
  • PAGE_TOKEN: 응답의 nextPageToken 필드에 있는 마지막 목록 요청에 대한 응답에서 수신된 토큰입니다. 결과 페이지를 수신하려면 이 토큰을 전송하세요.

VPN 연결 정보 가져오기

Distributed Cloud VPN 연결에 관한 정보를 가져오려면 이 섹션의 단계를 완료하세요.

이 작업을 완료하려면 Google Cloud 프로젝트에 Edge Container 뷰어 역할(roles/edgecontainer.viewer)이 있어야 합니다.

gcloud

gcloud edge-cloud container vpn-connections describe 명령어를 사용합니다.

gcloud edge-cloud container vpn-connections describe VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION

다음을 바꿉니다.

  • VPN_CONNECTION_NAME: 대상 VPN 연결의 이름입니다.
  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.

API

projects.locations.vpnConnections.get 메서드에 대해 GET 요청을 실행합니다.

GET /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • VPN_CONNECTION_NAME: 대상 VPN 연결의 이름입니다.

VPN 연결 삭제

Distributed Cloud VPN 연결을 삭제하려면 이 섹션의 단계를 완료하세요.

Distributed Cloud에서 이전에 Google Cloud 프로젝트에 만든 Cloud Router 리소스와 연결된 마지막 VPN 연결을 삭제하는 경우 VPN 연결을 삭제하면 연결된 Cloud Router 리소스가 자동으로 삭제됩니다. 하지만 이 경우 Distributed Cloud에서 자동으로 생성된 Cloud Router 리소스만 자동으로 삭제됩니다. Distributed Cloud는 --router 플래그를 사용하여 지정된 기존 Cloud Router 리소스를 삭제하지 않습니다.

이 작업을 완료하려면 Google Cloud 프로젝트에Edge Container 관리자 역할(roles/edgecontainer.admin)이 있어야 합니다.

gcloud

gcloud edge-cloud container vpn-connections delete 명령어를 사용합니다.

gcloud edge-cloud container vpn-connections delete VPN_CONNECTION_NAME \
    --location=REGION \
    --project=PROJECT_ID

다음을 바꿉니다.

  • VPN_CONNECTION_NAME: 이 VPN 연결을 고유하게 식별하는 설명 이름입니다.
  • REGION: 타겟 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.

API

projects.locations.vpnConnections.delete 메서드에 대해 DELETE 요청을 실행합니다.

DELETE /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME?requestId=REQUEST_ID

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • VPN_CONNECTION_NAME: 대상 VPN 연결의 이름입니다.
  • REQUEST_ID: 이 요청을 식별하는 고유한 프로그래매틱 ID입니다.

프로젝트 간 VPN 연결 관리

또한 Distributed Cloud를 사용하면 Distributed Cloud 클러스터가 포함된 Google Cloud 프로젝트와 다른 Google Cloud 프로젝트의 VPC 네트워크에 VPN 연결을 만들 수 있습니다.

기본 요건

프로젝트 간 VPN 연결을 만들려면 이 섹션의 기본 요건을 충족해야 합니다.

호출자 계정 권한

타겟 VPC 프로젝트의 호출자 사용자 계정에는 다음 권한이 있어야 합니다. 이러한 권한은 프로젝트 IAM 관리자 역할(roles/resourcemanager.projectIamAdmin)에 캡슐화되어 있습니다.

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

IAM 역할 및 권한을 설정하는 방법에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.

분산 클라우드 서비스 계정 권한

Distributed Cloud가 프로젝트 간 VPN 연결을 지원하는 타겟 VPC 프로젝트에서 Cloud Router 및 Cloud VPN 리소스를 만들 수 있도록 하려면 Distributed Cloud 클러스터의 Distributed Cloud 서비스 계정에 컴퓨팅 네트워크 관리자 역할(roles/compute.networkAdmin)을 부여해야 합니다.

Compute 네트워크 관리자 역할을 부여하려면 다음 단계를 따르세요.

gcloud

gcloud projects add-iam-policy-binding 명령어를 사용합니다.

gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
    --member="serviceAccount:service-PROJECT_NUM@gcp-sa-edgecontainer.iam.gserviceaccount.com" \
    --role="roles/compute.networkAdmin" \
    --project=VPC_PROJECT_ID

다음을 바꿉니다.

  • VPC_PROJECT_ID: 대상 VPC 프로젝트의 ID입니다.
  • PROJECT_NUM: 타겟 Distributed Cloud Google Cloud 프로젝트의 번호입니다.

프로젝트 간 VPN 연결 만들기

다른Google Cloud 프로젝트의 VPC 네트워크에 VPN 연결을 만들려면 이 섹션의 단계를 완료하세요.

gcloud

gcloud edge-cloud container vpn-connections create 명령어를 사용합니다.

gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --vpc-project=VPC_PROJECT_ID \
    --vpc-network=VPC_NETWORK_NAME \
    --nat-gateway-ip=NAT_GATEWAY_IP \
    --high-availability

다음을 바꿉니다.

  • VPN_CONNECTION_NAME: 이 VPN 연결을 고유하게 식별하는 설명 이름입니다.
  • PROJECT_ID: 대상 Distributed Cloud 클러스터 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • CLUSTER_NAME: 대상 Distributed Cloud 클러스터의 이름입니다.
  • VPC_PROJECT_ID: 대상 VPC 네트워크가 포함된 대상Google Cloud 프로젝트의 ID입니다.
  • VPC_NETWORK_NAME: 이 VPN 연결이 가리키는 타겟 VPC 네트워크의 이름입니다.
  • NAT_GATEWAY_IP: 대상 클러스터의 NAT 게이트웨이 IP 주소입니다. NAT를 사용하지 않는 경우 이 플래그를 생략합니다.
  • --high-availability (선택사항): 두 개의 별도 노드에서 실행되는 두 개의 별도 VPN 클라이언트를 설정하여 클러스터 측에서 고가용성을 위해 이 VPN 연결을 구성합니다. 고가용성을 사용 중지하려면 이 플래그를 생략하세요.

API

projects.locations.vpnConnections.create 메서드에 대해 POST 요청을 실행합니다.

POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
  "name": string,
  "labels": {
   },
  "natGatewayIp": NAT_GATEWAY,
  "cluster": CLUSTER_PATH,
  "vpc": VPC_NETWORK_ID,
  "vpcProject": VPC_PROJECT_ID,
  "vpcServiceAccount": var>VPC_PROJECT_SERVICE_ACCOUNT,
  "enableHighAvailability": HA_ENABLE,
}

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • REGION: 대상 Distributed Cloud 영역이 생성된 Google Cloud 리전입니다.
  • VPN_CONNECTION_ID: 이 노드 풀 리소스를 식별하는 고유 프로그래매틱 ID입니다.
  • REQUEST_ID: 이 요청을 식별하는 고유한 프로그래매틱 ID입니다.
  • VPN_CONNECTION_NAME: 이 VPN 연결을 고유하게 식별하는 설명 이름입니다.
  • NAT_GATEWAY: NAT 게이트웨이의 IP 주소입니다.
  • CLUSTER_PATH: 타겟 클러스터의 전체 표준 경로입니다.
  • VPC_NETWORK_ID: 대상 VPC 네트워크의 ID입니다.
  • VPC_PROJECT_ID: 대상 VPC 네트워크가 포함된 대상Google Cloud 프로젝트의 ID입니다.
  • HA_ENABLE: 클러스터 측에서 이 VPN 연결을 고가용성으로 구성할지 여부를 나타냅니다. TRUE로 설정하면 별도의 두 노드에서 실행되는 두 개의 별도 VPN 클라이언트를 구성합니다.

교차 프로젝트 VPN 연결을 위한 Cloud 감사 로그

프로젝트 간 VPN 연결을 만들면 Cloud 감사 로그가 다음과 같이 기록됩니다.

  • Distributed Cloud 클러스터의 감사 로그는 교차 프로젝트 VPN 연결의 장기 실행 작업, 인증, 승인 정보를 기록합니다. 이 정보에는 생성 작업의 호출자와 호출자에게 부여되거나 거부된 권한이 포함됩니다.
  • 타겟 VPC 프로젝트의 감사 로그는 Cloud Router 및 Cloud VPN 리소스와 같이 Google Cloud 크로스 프로젝트 VPN 연결을 지원하는 리소스에 관한 정보를 기록합니다. 이러한 리소스에 액세스하는 호출자는 Edge Container 서비스 에이전트 역할(roles/edgecontainer.serviceAgent)을 부여한 분산 클라우드 서비스 계정입니다.

VPN 연결 제한사항

특정 VPN 연결을 만든 클러스터의 노드 풀을 수정하는 경우 해당 VPN 연결을 삭제하고 다시 만들어야 합니다. 그렇지 않으면 다음과 같은 예기치 않은 동작이 발생할 수 있습니다.

  • VPN 연결이 간헐적으로 끊김
  • 분산 클라우드 영역의 다른 클러스터에서 VPN 연결을 만들 수 없음

프로젝트 간 VPN 연결 제한사항

또한 교차 프로젝트 VPN 연결에는 다음과 같은 제한사항이 있습니다.

  • 크로스 프로젝트 VPN 연결 리소스는 Distributed Cloud 클러스터에만 있습니다.
  • 타겟 VPC 프로젝트에서 Distributed Cloud 서비스 계정의 권한을 변경하면 Distributed Cloud 클러스터에서 교차 프로젝트 VPN 연결을 삭제할 수 없습니다.

다음 단계