온프레미스 호스트의 비공개 Google 액세스 구성

온프레미스용 비공개 Google 액세스를 사용하면 Cloud VPN 터널 또는 Cloud Interconnect 연결을 통해 온프레미스 호스트에서 Google API 및 서비스를 이용할 수 있습니다. 호스트에 외부 IP 주소가 필요 없습니다. 온프레미스 호스트용 비공개 Google 액세스 및 기타 비공개 액세스 옵션에 대한 자세한 내용은 서비스 비공개 액세스 옵션을 참조하세요.

온프레미스 호스트용 비공개 Google 액세스를 사용할 수 있는 API 및 서비스를 확인하려면 온프레미스 호스트용 비공개 Google 액세스 개요에서 지원되는 서비스를 참조하세요.

요구사항

  • Google Cloud Platform Console의 API 및 서비스 페이지를 통해 액세스하려는 API를 사용 설정해야 합니다.
  • 프로젝트 소유자, 편집자, 네트워크 관리자 역할을 갖는 IAM 구성원은 서브넷을 만들거나 업데이트하고 IP 주소를 할당할 수 있습니다. 역할에 대한 자세한 내용은 IAM 역할 문서를 참조하세요.
  • 비공개 Google 액세스에는 VPC 네트워크가 필요합니다. 자동 모드와 커스텀 모드의 VPC 네트워크가 모두 지원됩니다. 이전 네트워크는 지원되지 않습니다.
  • VPC 네트워크에서 다음 홉이 기본 인터넷 게이트웨이인 경로를 사용해 199.36.153.4/30을 대상으로 하는 트래픽을 라우팅해야 합니다. 이 작업에는 기본 경로 또는 커스텀 정적 경로를 사용하면 됩니다.

온프레미스 호스트용 비공개 Google 액세스 설정

온프레미스 호스트에 비공개 Google 액세스를 설정하려면 다음 작업을 완료해야 합니다.

  • Google API 트래픽이 Cloud VPN 또는 Cloud Interconnect 연결을 통해 전달되도록 경로를 구성해야 합니다. 자세한 내용은 경로 구성을 참조하세요. 터널이나 Interconnect가 여러 개 있다면 온프레미스 네트워크로 돌아가는 리전 간 비대칭 경로를 만들 수 있습니다. GCP는 이러한 경로를 지원하지 않습니다.
  • 온프레미스 호스트에서 제한된 Google API IP 범위에 도달하는 트래픽을 허용하려면 온프레미스 방화벽에 방화벽 규칙을 구성해야 합니다. 자세한 내용은 방화벽 규칙 구성을 참조하세요.
  • Google API에 대한 트래픽이 제한된 Google API IP 범위를 확인하도록 DNS를 구성해야 합니다. 자세한 내용은 DNS 구성을 참조하세요.

경로 구성

Cloud Router 커스텀 공지

Cloud Router 커스텀 경로 공지를 사용하여 제한된 Google API IP 주소를 온프레미스 네트워크에 알릴 수 있습니다. 제한된 Google API의 IP 주소 범위는 199.36.153.4/30입니다. 공개 IP 주소 범위이지만 Google은 이 경로를 공개적으로 발표하지 않습니다. 이 IP 주소 범위는 Cloud VPN 터널 또는 Cloud Interconnect 연결과 같이 내부 IP 주소를 통해 VPC 네트워크에 도달할 수 있는 온프레미스 호스트만 액세스할 수 있습니다.

제한된 주소 범위를 알리려면 Cloud Router를 사용해 커스텀 경로 공지를 추가합니다. 이 공지는 Cloud Router 또는 일부 BGP 세션(예: 단일 Cloud VPN 터널 또는 VLAN 연결)에 추가할 수 있습니다.

기존 Cloud Router의 모든 BGP 세션에 대한 제한된 범위의 커스텀 경로 공지를 만드는 방법은 다음과 같습니다.

콘솔


  1. Google Cloud Platform Console의 Cloud Router 페이지로 이동합니다.
    Cloud Router 목록
  2. 업데이트할 Cloud Router를 선택합니다.
  3. Cloud Router의 세부정보 페이지에서 수정을 선택합니다.
  4. 공지된 경로 섹션을 펼칩니다.
  5. 경로의 경우 커스텀 경로 만들기를 선택합니다.
  6. Cloud Router에서 사용할 수 있는 서브넷을 계속 공지하려면 Cloud Router에 표시되는 모든 서브넷 공지를 선택합니다. 이 옵션을 사용 설정하면 Cloud Router의 기본 동작을 모방합니다.
  7. 공지 경로를 추가하려면 커스텀 경로 추가를 선택합니다.
  8. 경로 공지를 구성합니다.
    • 소스 - 커스텀 IP 범위를 지정하려면 커스텀 IP 범위를 선택합니다.
    • IP 주소 범위 - 199.36.153.4/30을 지정합니다.
    • 설명 - Restricted Google APIs IPs의 설명을 추가합니다.
  9. 경로 추가가 완료되면 저장을 선택합니다.

gcloud


--set-advertisement-ranges 또는 --add-advertisement-ranges 플래그를 사용하여 커스텀 IP 범위를 지정하려면 update 명령을 실행합니다.

  • 커스텀 IP 범위를 설정하려면 --set-advertisement-ranges 플래그를 사용합니다. 기존의 모든 커스텀 공지가 대체됩니다. 다음 예제는 my-router Cloud Router를 업데이트하여 모든 서브넷과 제한된 Google API의 IP 범위인 199.36.153.4/30을 공지합니다.

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • 기존 공지에 커스텀 IP 범위를 추가하려면 --add-advertisement-ranges 플래그를 사용합니다. 이 플래그를 사용하려면 Cloud Router의 공지 모드가 이미 custom으로 설정되어 있어야 합니다. 다음 예제에서는 Restricted Google APIs IPs 커스텀 IP를 Cloud Router의 공지에 추가합니다.

    gcloud compute routers update my-router \
        --add-advertisement-ranges 199.36.153.4/30
    

기존 Cloud Router의 특정 BGP 세션에 제한된 범위의 커스텀 경로 공지를 만드는 방법은 다음과 같습니다.

콘솔


  1. Google Cloud Platform Console의 Cloud Router 페이지로 이동합니다.
    Cloud Router 목록
  2. 업데이트할 BGP 세션이 포함된 Cloud Router를 선택합니다.
  3. Cloud Router의 세부정보 페이지에서 업데이트할 BGP 세션을 선택합니다.
  4. BGP 세션 세부정보 페이지에서 수정을 선택합니다.
  5. 경로의 경우 커스텀 경로 만들기를 선택합니다.
  6. Cloud Router에서 사용할 수 있는 서브넷을 계속 공지하려면 Cloud Router에 표시되는 모든 서브넷 공지를 선택합니다. 이 옵션을 사용 설정하면 Cloud Router의 기본 동작을 모방합니다.
  7. 공지 경로를 추가하려면 커스텀 경로 추가를 선택합니다.
  8. 경로 공지를 구성합니다.
    • 소스 - 커스텀 IP 범위를 지정하려면 커스텀 IP 범위를 선택합니다.
    • IP 주소 범위 - 199.36.153.4/30을 지정합니다.
    • 설명 - Restricted Google APIs IPs의 설명을 추가합니다.
  9. 경로 추가가 완료되면 저장을 선택합니다.

gcloud


--set-advertisement-ranges 또는 --add-advertisement-ranges 플래그를 사용하여 커스텀 IP 범위를 지정하려면 update-bgp-peer 명령을 실행합니다.

  • 커스텀 IP 범위를 설정하려면 --set-advertisement-ranges 플래그를 사용합니다. 기존의 모든 커스텀 공지가 대체됩니다. 다음 예제는 my-router Cloud Router에서 my-bgp-session BGP 세션을 업데이트하여 모든 서브넷과 커스텀 IP 범위 199.36.153.4/30을 공지합니다.

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • 기존 공지에 커스텀 IP 범위를 추가하려면 --add-advertisement-ranges 플래그를 사용합니다. 이 플래그를 사용하려면 Cloud Router의 공지 모드가 이미 custom으로 설정되어 있어야 합니다. 다음 예제에서는 제한된 Google API IP 199.36.153.4/30을 Cloud Router의 공지에 추가합니다.

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges 199.36.153.4/30
    

    커스텀 공지에 대한 자세한 내용은 커스텀 경로 공지를 참조하세요.

VPC 네트워크 라우팅 요구사항

VPC 네트워크는 기본 인터넷 게이트웨이를 다음 홉으로 사용하는 199.36.153.4/30에 트래픽을 라우팅하도록 구성해야 합니다. 최근에 생성한 VPC 네트워크에서는 기본 경로에서 이 과정이 처리됩니다. 하지만 대상 위치가 199.36.153.4/30이고 다음 홉이 기본 게이트웨이인 커스텀 정적 경로를 생성할 수도 있습니다. 기본 경로를 삭제한 경우 커스텀 정적 경로를 만들어야 합니다.

방화벽 규칙 구성

온프레미스 호스트에서 199.36.153.4/30에 도달하는 트래픽을 허용하려면 온프레미스 방화벽 규칙을 구성해야 합니다.

DNS 구성

*.googleapis.comrestricted.googleapis.com의 CNAME으로 확인하도록 자체 DNS 서버를 구성합니다. BIND를 사용하면 DNS를 구성할 수 있습니다.

Cloud DNS 비공개 DNS 영역 또는 BIND를 사용할 수 있습니다.

  • Cloud DNS 비공개 DNS 영역을 사용하여 승인된 VPC 네트워크 및 특정 온프레미스 네임서버에서(전달을 구성한 경우) 액세스 가능한 DNS 영역을 호스트할 수 있습니다. restricted.googleapis.com에 대한 A 레코드와 각 *.googleapis.com 이름에 대한 적절한 CNAME 레코드로 googleapis.com에 대한 비공개 영역을 만들 수 있습니다. Cloud DNS 비공개 영역은 부분적인 재정의를 지원하지 않습니다. 즉 *.googleapis.com에 대한 모든 요청을 restricted.googleapis.com으로 리디렉션하도록 선택할 수만 있습니다. 따라서 restricted.googleapis.com VIP 사용을 지원하지 않는 Google API 및 서비스는 사용할 수 없습니다. 자세한 내용은 영역 관리를 참조하세요.
  • Cloud Dataflow의 DNS 확인을 맞춤설정할 수 없으므로 Cloud Dataflow에는 BIND 및 restricted.googleapis.com VIP를 사용할 수 없습니다.

Cloud DNS로 DNS 구성

Cloud DNS를 사용하여 비공개 Google 액세스에 DNS 확인을 사용하려면 다음 절차를 따르세요.

gcloud


  1. VPC 네트워크에 대한 관리형 비공개 영역을 만듭니다.

    gcloud dns managed-zones create apis \
        --visibility private \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --dns-name googleapis.com \
        --description "Private Google APIs access"
    
  2. 정책을 만들고 VPC 네트워크에 대한 인바운드 전달을 사용 설정합니다.

    gcloud beta dns policies create apipolicy \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --enable-inbound-forwarding \
        --description "enable inbound forwarding for Private Google APIs"
    
  3. 트랜잭션을 시작합니다.

    gcloud dns record-sets transaction start -z apis
    
  4. DNS 레코드를 추가합니다.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. --zone apis --ttl 300
    
    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
        --zone apis --ttl 300
    
  5. 트랜잭션을 실행합니다.

    gcloud dns record-sets transaction execute --zone apis
    
  6. 온프레미스 네트워크에서 온프레미스 DNS를 Cloud DNS 전달자 IP 주소로 지정합니다. 전달자 IP 주소를 찾으려면 compute addresses list 명령어를 사용합니다.

    gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \
        --format='csv[no-heading](address, subnetwork)'
    

BIND로 DNS 구성

온프레미스 DNS 확인에 BIND를 사용한다면 다음 BIND 구성과 같이 응답 정책 영역(RPZ)을 사용해 제한된 Google API에 대한 Google API 요청을 확인하도록 구성할 수 있습니다.

  1. /etc/bind/named.conf에 다음 행을 추가합니다.

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. /etc/bind/named.conf.options에 다음 행을 추가합니다.

    options {
      directory "/var/cache/bind";
    
      dnssec-validation no;
    
      auth-nxdomain no;    # conform to RFC 1035
      listen-on-v6 { any; };
      listen-on { any; };
      response-policy { zone "googleapis.zone"; };
      allow-query { any;};
    };
    
  3. /etc/bind/named.conf.local에 다음 행을 추가합니다.

    include "/etc/bind/named.conf.default-zones";
    
    zone "googleapis.zone" {
      type master;
      file "/etc/bind/db.googleapis.zone";
      allow-query {none;};
    };
    
  4. /etc/bind/db.googleapis.zone에 다음 행을 추가합니다.

    $TTL 1H
    @                       SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h)
                            NS  LOCALHOST.
    
    *.googleapis.com CNAME restricted.googleapis.com.
    restricted.googleapis.com CNAME rpz-passthru.
    

다음 단계

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

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