비공개 네트워크 액세스 구성

트래픽이 Google Cloud 네트워크 내에서 실행되도록 비공개 네트워크 액세스를 설정하려면 VPC 네트워크, 서비스 디렉터리 프로젝트, 사용자가 소유하는 Google Cloud 서비스 프로젝트를 소유한 프로젝트를 구성해야 합니다. 사용합니다. 이러한 세 가지 프로젝트는 동일하거나 서로 다를 수 있습니다.

  • 네트워크 프로젝트는 VPC 네트워크의 프로젝트입니다.
  • 서비스 디렉터리 프로젝트는 서비스 디렉터리 서비스의 프로젝트입니다. 이 프로젝트는 네트워크 프로젝트의 공유 VPC 네트워크에 있는 서비스 프로젝트일 수 있습니다.
  • Google Cloud 서비스 프로젝트는 구성이 비공개 네트워크 액세스를 호출하는 프로젝트입니다. Google Cloud 서비스 구성).

시작하기 전에

이 절차에서는 다음 단계를 완료했다고 가정합니다.

  • 서비스 디렉터리 API를 포함하여 Google Cloud Console의 API 및 서비스 페이지를 통해 액세스하려는 API를 사용 설정합니다.
  • VPC 네트워크의 VM 인스턴스에는 비공개 IP 주소가 있어야 합니다.
  • 온프레미스 호스트의 경우 VPC 네트워크에 대한 기존 Cloud VPN 터널 또는 Cloud Interconnect 연결이 있어야 합니다.

네트워크 프로젝트 구성

네트워크 프로젝트를 구성하려면 다음 단계를 따르세요.

  1. 기존 VPC 네트워크를 만들거나 기존 네트워크를 사용합니다. 자동 모드와 커스텀 모드의 VPC 네트워크가 모두 지원됩니다. 이전 네트워크는 지원되지 않습니다.
  2. 대상 대상이 Compute Engine VM 또는 내부 부하 분산기 백엔드인 경우 VPC 네트워크의 비공개 네트워크 액세스를 허용해야 합니다. 대상은 적절한 포트(포트 443 또는 80)에서 35.199.192.0/19의 TCP 인그레스를 허용해야 합니다.

  3. ID 및 액세스 관리 (IAM) 서비스 디렉터리 네트워크에 Google Cloud 서비스 프로젝트에 대한 액세스 권한을 부여합니다. Google Cloud 프로젝트는 servicedirectory.googleapis.com의 Google Cloud 서비스 및 서비스 디렉터리 프로젝트의 VPC 서비스 제어 경계에 있어야 합니다.

    VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.

서비스 디렉터리 프로젝트 구성

다음 단계에 따라 서비스 디렉터리 프로젝트를 구성합니다.

  1. VPC 네트워크에서 가상 머신 (VM) 또는 내부 부하 분산기를 만듭니다.
  2. VPC 네트워크에서 만든 VM 또는 내부 부하 분산기를 가리키는 서비스 디렉터리 서비스를 만듭니다.
  3. IAM 서비스 디렉터리 네트워크에 Google Cloud 서비스 계정에 대한 액세스 권한을 부여합니다. 역할 및 권한에 대한 자세한 내용은 서비스 디렉터리 권한 및 역할을 참조하세요.

비공개 네트워크 액세스로 엔드포인트 만들기

비공개 네트워크 액세스가 구성된 엔드포인트를 만들려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 서비스 디렉터리 네임스페이스 페이지로 이동합니다.
    서비스 디렉터리 네임스페이스 페이지로 이동
  2. 네임스페이스를 클릭합니다.
  3. 서비스를 클릭합니다.
  4. 를 클릭하고 엔드포인트 추가를 클릭합니다.
  5. 엔드포인트 이름을 입력합니다.
  6. IPv4 IP 주소(예: 192.0.2.0/24)를 입력합니다.
  7. 포트 번호(예: 443 또는 80)를 입력합니다.
  8. 비공개 네트워크 액세스를 사용 설정하려면 목록에서 선택을 클릭하여 연결된 VPC 네트워크 아래의 사용 가능한 네트워크 목록에서 선택합니다.
  9. 프로젝트 및 네트워크 이름으로 지정을 선택하여 특정 프로젝트 ID와 네트워크 이름을 제공할 수도 있습니다.
  10. 만들기를 클릭합니다.

gcloud

지정된 프로젝트 ID와 네트워크 경로로 gcloud beta service-directory endpoints create 명령어를 실행합니다.

gcloud beta service-directory endpoints create ENDPOINT_NAME
    --project=PROJECT_ID \
    --location=REGION \
    --namespace=NAMESPACE_NAME \
    --service=SERVICE_ID \
    --address=IP_ADDRESS \
    --port=PORT_NUMBER \
    --network=NETWORK_PATH

다음을 바꿉니다.

  • ENDPOINT_NAME: 서비스에서 만드는 엔드포인트의 이름(예: my-endpoint)
  • PROJECT_ID: 프로젝트 ID
  • REGION: 네임스페이스가 포함된 Google Cloud 리전
  • NAMESPACE_NAME: 네임스페이스에 지정한 이름(예: my-namespace)
  • SERVICE_ID: 서비스의 ID
  • IP_ADDRESS: 엔드포인트의 IP 주소(예: 192.0.2.0/24)
  • PORT_NUMBER: 엔드포인트가 실행되는 포트(일반적으로 443 또는 80)
  • NETWORK_PATH: 네트워크의 URL입니다(예: projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME).

Google Cloud 서비스 프로젝트 구성

  1. Google Cloud 서비스 API를 사용 설정합니다.
  2. 네트워크 프로젝트에서 만든 서비스 디렉터리 서비스를 사용하여 Google Cloud 서비스를 구성합니다.
  3. VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계가 서비스 디렉터리가 네트워크 프로젝트 및 서비스 디렉터리 프로젝트에 액세스하도록 허용하는지 확인합니다.

사용 사례

이 섹션에서는 비공개 네트워크 액세스를 구성하는 사용 사례 예시를 제공합니다.

VPC 네트워크, VM, 서비스 디렉터리가 같은 프로젝트에 있을 때 HTTP 엔드포인트 호출

VM에서 HTTP 엔드포인트를 호출하도록 Google Cloud 제품을 설정할 수 있습니다. 이 트래픽은 공개 인터넷을 통해 전송되어서는 안 됩니다.

이 설정에서는 VPC 네트워크, VM, 서비스 디렉터리 서비스, Google Cloud 서비스가 같은 프로젝트에 있는 프로젝트가 있습니다.

프로젝트의 Google 서비스 구성이 Google Cloud 서비스 프로젝트의 VPC 네트워크에 있는 네트워크 프로젝트 VM으로 이그레스되도록 허용
프로젝트의 Google 서비스 구성이 Google Cloud 서비스 프로젝트의 VPC 네트워크에 있는 네트워크 프로젝트 VM으로 이그레스를 허용합니다 (클릭하여 확대)

비공개 네트워크 액세스를 사용하여 Google Cloud 제품을 설정하려면 다음 단계를 따르세요.

네트워크 및 타겟 네트워크 설정

  1. my-project를 포함하는 프로젝트를 만듭니다.
  2. VPC-1 (projects/project-number/locations/global/networks/my-network)와 같은 VPC 네트워크를 만듭니다.
  3. VPC-1 또는 서브넷 또는 VM에 대한 인그레스 액세스 권한을 프록시에 부여합니다.
  4. 35.199.192.0/19의 인그레스를 허용합니다.
  5. VPC-1us-central1 리전에 VM-1를 만듭니다.
  6. 포트 P에서 서비스를 실행하도록 설정합니다.
  7. HTTPS를 사용하려면 공개 키 인프라 (PKI) 전송 계층 보안 (TLS) 인증서를 설치했는지 확인합니다.
  8. REGION-1에 서비스 디렉터리 서비스 SD-1를 만듭니다.
  9. SD-1에 내부 IP 주소를 VM-1=10.10.10.10, P=443, network=projects/project-number/global/networks/my-network로 엔드포인트를 만듭니다. 자세한 안내는 비공개 네트워크 액세스가 구성된 엔드포인트 만들기를 참조하세요.
  10. Google Cloud 서비스 계정에 다음 IAM 역할을 부여합니다.

    • servicedirectory.viewer
    • servicedirectory.pscAuthorizedService
  11. 선택사항으로 VM-2를 설정하고 Endpoint-2를 추가할 수 있습니다.

Google Cloud 제품 설정

  1. Google Cloud 제품 구성 CONFIG-1를 구성합니다(예: 'Cloud Scheduler, 1분마다 전화').
  2. HTTP 요청을 설정합니다.
  3. SD-1과 같은 비공개 네트워크를 통해 요청이 전달되도록 지정합니다.
  4. (선택사항) 인증 기관 서비스 설정 구성하기

이제 Google Cloud 제품은 SD-1를 사용하여 HTTP 요청을 호출할 수 있습니다.

VPC 네트워크, VM, 서비스 디렉터리가 다른 프로젝트에 있을 때 HTTP 엔드포인트 호출

이 구성 예시에서는 이벤트, 태스크, Pub/Sub와 같은 Google Cloud 서비스를 설정하여 VM에서 HTTP 엔드포인트를 호출하려고 합니다. 이 예시에서는 서비스 디렉터리 프로젝트, 네트워크 프로젝트, Google Cloud 서비스 프로젝트가 다릅니다. 이 트래픽은 공개 인터넷을 통해 전송되어서는 안 됩니다. 선택적으로 이 API 호출은 VPC 서비스 제어 경계를 준수해야 합니다.

이 경우 Google Cloud 서비스 프로젝트의 구성은 네트워크 프로젝트의 VPC 네트워크에 있는 Google Cloud 서비스 프로젝트 VM으로의 이그레스를 사용 설정합니다.

Google Cloud 서비스 프로젝트는 제작자 프로젝트와 다를 수 있습니다. 두 프로젝트의 VPC 서비스 제어 경계가 사용됩니다.

VPC 서비스 제어 경계가 적용된 비공개 네트워크 액세스를 사용하여 트래픽 전송
VPC 서비스 제어 경계로 비공개 네트워크 액세스를 사용하여 트래픽 전송 (확대하려면 클릭)

네트워크 프로젝트 만들기

다음 IAM 권한이 있는지 확인합니다.

  • servicedirectory.services.resolve: 메시징 서비스
  • 네트워크의 servicedirectory.networks.access

다음에 유의하세요.

  • 서비스 디렉터리 프로젝트와 네트워크 프로젝트는 연결할 필요가 없지만 동일한 VPC 서비스 제어에 속해 있어야 합니다.
  • 네트워크 및 서비스에서 방화벽과 IAM은 기본적으로 사용 중지되어 있습니다.

네트워크 프로젝트를 만들려면 다음 단계를 따르세요.

  1. VPC-1 (projects/project-number/locations/global/networks/my-network)와 같은 VPC 네트워크를 만듭니다.
  2. VPC 네트워크 방화벽을 사용 설정합니다.

  3. VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 사용하면 서비스 디렉터리를 Google Cloud 서비스 프로젝트와 서비스 디렉터리 프로젝트에 연결할 수 있습니다.

서비스 디렉터리 프로젝트 구성

  1. VPC 네트워크에서 VM 또는 내부 부하 분산기를 만듭니다.
  2. VPC 네트워크의 VM 또는 내부 부하 분산기를 가리키는 서비스 디렉터리 서비스를 만듭니다.
  3. IAM 서비스 디렉터리에 Google Cloud 서비스 프로젝트 메시징 서비스에 대한 service read 액세스 권한을 부여합니다.
  4. VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 사용하면 서비스 디렉터리를 Google Cloud 서비스 프로젝트와 서비스 디렉터리 프로젝트에 연결할 수 있습니다.

Google Cloud 서비스 프로젝트 구성

  1. 사용 중인 메시징 서비스에 대해 API를 사용 설정합니다.
  2. 서비스 디렉터리 프로젝트의 서비스 디렉터리 서비스를 사용하여 메시징 서비스 PUSH를 구성합니다.
  3. VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 사용하면 서비스 디렉터리를 네트워크 프로젝트와 서비스 디렉터리 프로젝트에 연결할 수 있습니다.

다음 단계