Google API 및 서비스로 비공개 연결 설정

이 문서에서는 VPC 네트워크나 온프레미스 네트워크의 호스트에서 VPC 서비스 제어가 지원하는 Google API 및 서비스로의 비공개 연결을 설정하는 방법을 설명합니다.

이 문서를 읽기 전에 비공개 Google 액세스 개념, 사양, 네트워크 구성을 숙지하는 것이 좋습니다. VPC 서비스 제어에서 비공개 Google 액세스 사용에 대한 토폴로지 다이어그램 예시를 참조하세요.

시작하기 전에

  • Google Cloud Console의 API 및 서비스 페이지를 통해 액세스하려는 API를 사용 설정합니다.
  • 서브넷을 만들거나 업데이트하는 데 필요한 역할이 있는지 확인합니다. 프로젝트 소유자, 편집자, 네트워크 관리자 역할을 갖는 IAM 주 구성원은 서브넷을 만들거나 업데이트하고 IP 주소를 할당할 수 있습니다. 역할에 대한 자세한 내용은 IAM 역할 문서를 참조하세요.
  • 온프레미스 호스트의 비공개 Google 액세스 및 비공개 Google 액세스에 VPC 네트워크가 설정되어 있는지 확인합니다. 자동 모드와 커스텀 모드의 VPC 네트워크가 모두 지원됩니다. 이전 네트워크는 지원되지 않습니다.
  • VPC 네트워크의 VM 인스턴스에 비공개 IP 주소(공개 IP 주소가 아님)가 있고 비공개 Google 액세스가 사용 설정된 서브넷에 있는지 확인합니다.
  • 온프레미스 호스트의 경우 VPC 네트워크에 대한 기존 Cloud VPN 터널이나 Cloud Interconnect 연결이 있는지 확인합니다.

절차 개요

비공개 연결을 설정하려면 다음 태스크를 완료합니다.

  • 대상 199.36.153.4/30의 경로를 구성합니다. 자세한 내용은 경로 구성을 참조하세요.
  • 제한된 Google API IP 주소 범위에 적절한 트래픽이 허용되도록 방화벽 규칙을 구성합니다. 자세한 내용은 방화벽 규칙 구성을 참조하세요.
  • Google API에 대한 트래픽이 제한된 Google API IP 범위를 확인하도록 DNS를 구성합니다. 자세한 내용은 DNS 구성을 참조하세요.

restricted.googleapis.com에 대한 경로 구성

restricted.googleapis.com을 사용하여 VPC 서비스 제어를 지원하는 Cloud API 및 Developer API에 대한 액세스를 제공합니다. restricted.googleapis.com 도메인은 VIP(가상 IP 주소) 범위 199.36.153.4/30으로 확인됩니다. 인터넷에서 이 IP 주소 범위에 액세스할 수 없습니다.

VPC 서비스 제어는 호환 가능하고 구성된 서비스에 적용되지만 restricted.googleapis.com은 사용하는 도메인에 관계없이 데이터 무단 반출 위험을 추가적으로 완화해 줍니다. restricted.googleapis.com은 VPC 서비스 제어에서 지원하지 않는 Google API 및 서비스에 대한 액세스를 거부합니다.

비공개 Google 액세스와 온프레미스 호스트의 비공개 Google 액세스 모두에서 VPC 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 대상 199.36.153.4/30에 대한 경로가 포함되어야 합니다. 다음 홉이 기본 인터넷 게이트웨이지만 199.36.153.4/30으로 전송된 트래픽은 Google 네트워크에 남아 있습니다.

VPC 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 기본 경로가 없는 경우 대상이 199.36.153.4/30이고 다음 홉이 기본 인터넷 게이트웨이인 커스텀 정적 경로를 만들 수 있습니다. 대상 199.36.153.4/30이 지정된 커스텀 정적 경로가 있는 경우 인터넷에 액세스하지 못하도록 하려면 다음 홉이 기본 인터넷 게이트웨이인 다른 경로를 삭제해야 합니다.

VPC 경로 작업에 대한 자세한 내용은 VPC 문서의 경로 사용을 참조하세요.

VPC 네트워크에서 커스텀 정적 경로 구성

VPC 서비스 제어에서 지원하는 Google 관리 서비스에 액세스할 수 있도록 커스텀 정적 경로를 추가합니다.

  • VPC 서비스 제어로 보호되는 Google 관리형 서비스에만 액세스를 허용하는 커스텀 경로를 추가합니다.

    gcloud compute routes create ROUTE_NAME \
      --network=NETWORK_NAME \
      --destination-range=199.36.153.4/30 \
      --next-hop-gateway=default-internet-gateway
    

    다음을 바꿉니다.

    • ROUTE_NAME은 커스텀 경로의 이름입니다.
    • NETWORK_NAME: VPC 네트워크의 이름입니다.

온프레미스 네트워크의 호스트에 대한 제한된 경로 알림

온프레미스 호스트에 비공개 Google 액세스를 사용하는 경우 Google API 트래픽이 Cloud VPN 또는 Cloud Interconnect 연결을 통해 전달되도록 경로를 구성합니다. 제한된 VIP(199.36.153.4/30)를 온프레미스 네트워크에 알리려면 Cloud Router 커스텀 경로 공지를 사용합니다. 이 IP 주소 범위는 비공개 IP 주소를 통해 VPC 네트워크에 연결할 수 있는 온프레미스 호스트에만 액세스할 수 있습니다.

Cloud Router(라우터의 모든 BGP 세션용) 또는 일부 BGP 세션(단일 Cloud VPN 터널 또는 VLAN 연결용)에 이 커스텀 경로 공지를 추가할 수 있습니다.

기존 Cloud Router의 모든 BGP 세션에 대한 제한된 범위의 커스텀 경로 공지를 만들려면 다음 단계를 수행합니다.

Console


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

gcloud


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

  • 커스텀 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 세션에 제한된 범위의 커스텀 경로 공지를 만들려면 다음 단계를 수행합니다.

Console


  1. Google Cloud 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


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

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

    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
    

    커스텀 공지에 대한 자세한 내용은 커스텀 라우터 공지를 참조하세요.

방화벽 규칙 구성

비공개 Google 액세스의 경우 VM 인스턴스는 내부 IP 주소를 사용하며 보호된 Google API 리소스에 액세스하는 데 외부 IP 주소가 필요하지 않습니다. 하지만 VM 인스턴스가 외부 IP 주소를 소유하거나 인터넷 액세스 요구사항을 충족할 수 있습니다. 커스텀 경로 외에도 이그레스 트래픽을 거부하는 방화벽 규칙을 만들어 VPC 네트워크의 VM 인스턴스에서 이그레스 트래픽을 제한할 수 있습니다.

기본적으로 묵시적인 허용 이그레스 방화벽 규칙은 해당 경로가 있으면 VM 인스턴스가 모든 대상에 트래픽을 보낼 수 있도록 허용합니다. 먼저 이그레스 거부 규칙을 만들어 모든 아웃바운드 트래픽을 차단할 수 있습니다. 그런 다음 트래픽을 VPC 네트워크에서 선택한 대상과 199.36.153.4/30(restricted.googleapis.com) IP 주소 범위로 허용하는 우선 순위가 높은 이그레스 규칙을 만들 수 있습니다. restricted.googleapis.com에 대한 모든 통신은 TCP 포트 443에 있습니다.

VPC 방화벽 규칙 작업에 대한 자세한 내용은 VPC 문서의 방화벽 규칙 사용을 참조하세요.

트래픽이 온프레미스 호스트에서 199.36.153.4/30에 도달하도록 온프레미스 방화벽 규칙을 구성합니다.

DNS 구성

VPC 서비스 제어를 일반적으로 사용하려면 Cloud DNS 응답 정책을 사용하여 VPC 네트워크의 DNS를 구성하는 것이 좋습니다. Cloud DNS를 사용하는 경우 DNS를 구성하기 위해 관리형 비공개 영역을 만들 필요가 없습니다. 응답 정책은 passthru 동작을 사용하여 www.googleapis.com과 같은 이름이 예시 *.googleapis.com의 와일드 카드 이름을 통과하도록 허용합니다. 자세한 내용은 응답 정책 및 규칙 관리를 참조하세요.

VPC 네트워크에 관리형 비공개 영역을 사용할 수도 있습니다. Cloud DNS 비공개 DNS 영역을 사용 설정하면 승인된 VPC 네트워크에서 액세스할 수 있는 DNS 영역을 호스팅할 수 있습니다. 특정 온프레미스 네임서버에서 전달을 구성하려면 제한된 Google API IP 주소를 사용하면 됩니다. 그런 다음 *.googleapis.com 이름마다 restricted.googleapis.com과 적절한 CNAME 레코드를 매핑하는 DNS A 레코드로 googleapis.com의 비공개 영역을 만들 수 있습니다. 자세한 내용은 영역 관리를 참조하세요.

온프레미스 액세스의 경우 온프레미스 네임서버가 Cloud DNS 관리형 비공개 영역을 쿼리할 수 있도록 Cloud DNS 인바운드 전달 정책을 구성할 수 있습니다. 또한, 온프레미스 네임서버를 BIND를 사용하는 온프레미스 네임서버처럼 구성할 수 있습니다.

Cloud DNS로 DNS 구성하기

VPC 네트워크의 VM 인스턴스, 온프레미스 네트워크의 호스트 또는 둘 다에 DNS 변환을 사용 설정하려면 Cloud DNS를 사용합니다. 공유 VPC를 사용하는 경우 Cloud DNS 문서의 비공개 영역 및 공유 VPC를 참조하세요. 또한 공유 VPC를 사용할 경우 공유 VPC 네트워크 호스트 프로젝트가 네트워크에 연결된 프로젝트와 동일한 서비스 경계에 포함되어 있는지 확인합니다.

응답 정책이나 비공개 영역을 사용하여 Cloud DNS에서 DNS를 구성할 수 있습니다.

응답 정책을 사용하여 Cloud DNS 구성

특정 이름을 제한된 VIP 주소로 전달

각 영역에 로컬 CNAME 데이터가 있는 응답 정책을 구성하여 Google API 요청을 제한된 Google API로 변환할 수 있습니다. 지정되지 않은 이름은 일반 DNS를 통해 계속 확인됩니다.

예를 들어 영역의 로컬 CNAME 데이터가 있는 pubsub.googleapis.com의 응답 정책을 만들어 Google API 요청을 restricted.googleapis.com으로 변환할 수 있습니다. 그때까지는 지정되지 않은 www.googleapis.com이 계속 일반 DNS를 사용하여 확인됩니다.

다음 구성 예시에서는 정책을 만들고 특정 VPC 네트워크에 적용합니다.

gcloud

  1. 응답 정책을 만들려면 gcloud beta dns response-policies create 명령어를 실행합니다.

    gcloud beta dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_NAME: 만들려는 응답 정책의 이름이나 ID(예: myresponsepolicy)
    • NETWORK: 응답 정책과 연결할 쉼표로 구분된 네트워크 이름 목록(예: network1,network2)
    • DESCRIPTION: 응답 정책 설명(예: My new response policy)
  2. 정책에 규칙을 추가하려면 gcloud beta dns response-policies rules create 명령어를 실행합니다.

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=pubsub.googleapis.com. \
        --local-data=name="pubsub.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_RULE_NAME: 만들려는 응답 정책 규칙의 이름(예: myresponsepolicyrule)
    • RESPONSE_POLICY_NAME: 응답 정책 이름(예: myresponsepolicy)

API

  1. URL로 응답 정책을 만듭니다.

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_NAME: 응답 정책 이름
    • RESPONSE_POLICY_DESCRIPTION: 응답 정책 설명
    • URL_TO_NETWORK: 응답 정책을 만드는 URL

  2. 정책에 규칙을 추가합니다.

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "pubsub.googleapis.com.",
          type: "A",
          ttl: 300,
          rrdata: ["199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7"]
        }
      ]
    }
    

    다음을 바꿉니다.

    • RULE_NAME: 만들 규칙의 이름(예: pubsub)
    • DNS_NAME: 규칙을 만들 DNS 이름(예: pubsub.googleapis.com.(후행 점 참조))

제한된 VIP 주소를 제외한 모든 이름 전달

전체 도메인 또는 대형 IP 주소 블록을 대상으로 한 정책 규칙에서 일부 DNS 응답을 제외하는 규칙을 설정할 수 있습니다. 이 개념을 패스스루 동작이라고 합니다. 패스스루 동작을 사용하면 서비스 제어를 지원하지 않는 이름이 와일드 카드 이름 뒤에 표시되도록 허용할 수 있습니다.

*.googleapis.com 예시에서 와일드 카드 이름 뒤에 www.googleapis.com이 표시되도록 허용할 수 있습니다. www에 대한 일치검색이 와일드 카드 *보다 우선 적용됩니다.

다음 구성 예시에서는 특정 이름의 정책을 만들고 특정 VPC 네트워크에 적용합니다. 이 규칙을 사용하면 www.googleapis.com이 와일드 카드 *.googleapis.com을 우회할 수 있습니다.

gcloud

  1. 응답 정책을 만들려면 gcloud beta dns response-policies create 명령어를 실행합니다.

    gcloud beta dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_NAME: 만들려는 응답 정책의 이름이나 ID(예: myresponsepolicy)
    • NETWORK: 응답 정책과 연결할 쉼표로 구분된 네트워크 이름 목록(예: network1,network2)
    • DESCRIPTION: 응답 정책 설명(예: My new response policy)
  2. 정책에 우회 규칙을 추가하려면 gcloud beta dns response-policies rules create 명령어를 실행하고 --behavior 플래그를 bypassResponsePolicy로 설정합니다.

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME \
        --behavior=bypassResponsePolicy
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_RULE_NAME: 만들려는 응답 정책 규칙의 이름(예: myresponsepolicyrule)
    • RESPONSE_POLICY_NAME: 응답 정책 이름(예: myresponsepolicy)
    • DNS_NAME: DNS 또는 도메인 이름(예: www.googleapis.com)

API

  1. 응답 정책을 만듭니다.

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    다음을 바꿉니다.

    • RESPONSE_POLICY_NAME: 응답 정책 이름(예: my-response-policy)
    • RESPONSE_POLICY_DESCRIPTION: 응답 정책 설명(예: my response policy)
    • URL_TO_NETWORK: 응답 정책을 만드는 URL
  2. 정책에 규칙을 추가합니다.

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "*.googleapis.com.",
          type: "A",
          ttl: 300,
          rrdata: ["restricted.googleapis.com."]
        }
      ]
    }
    {
      kind: "dns#responsePolicyRules",
      rule_name: "www-passthru",
      dns_name: "www.googleapis.com.",
      behavior: BYPASS_RESPONSE_POLICY
    }
    

    다음을 바꿉니다.

    • RULE_NAME: 만들 규칙의 이름(예: googleapis)
    • DNS_NAME: 규칙을 만들 와일드 카드 DNS 이름(예: *.googleapis.com.(후행 점 참조))

비공개 영역을 사용하여 Cloud DNS 구성

응답 정책을 사용할 수 없는 경우 Cloud DNS를 구성하려면 비공개 영역을 사용합니다.

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

    gcloud beta dns managed-zones create ZONE_NAME \
     --visibility=private \
     --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
     --description=DESCRIPTION \
     --dns-name=googleapis.com
    

    다음을 바꿉니다.

    • ZONE_NAME: 만들려는 영역의 이름입니다. vpc). 이 이름은 다음과 같은 각 단계에서 사용됩니다.
    • PROJECT_ID: VPC 네트워크를 호스팅하는 프로젝트의 ID입니다.
    • NETWORK_NAME: VPC 네트워크의 이름입니다.
    • DESCRIPTION: 관리되는 영역에 대한 사람이 읽을 수 있는 설명입니다(선택사항).
  2. 트랜잭션을 시작합니다.

    gcloud dns record-sets transaction start --zone=ZONE_NAME
    

    ZONE_NAME을 첫 단계에서 만든 영역의 이름으로 바꿉니다.

  3. DNS 레코드를 추가합니다.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. \
        --zone=ZONE_NAME \
        --ttl=300
    

    ZONE_NAME을 첫 단계에서 만든 영역의 이름으로 바꿉니다.

    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=ZONE_NAME \
        --ttl=300
    

    ZONE_NAME을 첫 단계에서 만든 영역의 이름으로 바꿉니다.

  4. 트랜잭션을 실행합니다.

    gcloud dns record-sets transaction execute --zone=ZONE_NAME
    

    ZONE_NAME을 첫 단계에서 만든 영역의 이름으로 바꿉니다.

  5. 선택사항. 온프레미스 호스트가 제한된 VIP에 도달하도록 하려면 다음 단계를 완료합니다.

    1. VPC 네트워크의 이름 확인 서비스가 외부에서 온프레미스 네트워크의 시스템을 사용하도록 DNS 정책을 만들고 인바운드 DNS 전달을 사용 설정합니다.

      gcloud beta dns policies create POLICY_NAME \
       --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
       --enable-inbound-forwarding \
       --description=DESCRIPTION
      

      다음을 바꿉니다.

      • POLICY_NAME: 만들려는 정책의 이름입니다. 예를 들면 apipolicy입니다.
      • PROJECT_ID: VPC 네트워크를 호스팅하는 프로젝트의 ID입니다.
      • NETWORK_NAME: VPC 네트워크의 이름입니다.
      • DESCRIPTION: 관리되는 영역에 대한 사람이 읽을 수 있는 설명입니다(선택사항).
    2. 온프레미스 네트워크에서 온프레미스 DNS를 Cloud DNS 전달자 IP 주소로 지정합니다. 전달자 IP 주소를 찾으려면 compute addresses list 명령어를 사용합니다.

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

BIND로 DNS 구성

BIND를 DNS 확인에 사용할 경우 제한된 Google API에 대한 Google API 요청을 확인하도록 구성할 수 있습니다. 응답 정책 영역(RPZ)을 사용하여 이 동작을 수행하는 다음 예시 BIND 구성을 사용합니다.

  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.

특수한 경우 DNS 구성

특수한 사례의 DNS를 구성해야 하는 경우 다음 사항에 유의하세요.

  • Dataflow를 사용할 때는 커스텀 BIND가 지원되지 않습니다. VPC 서비스 제어에 Dataflow를 사용할 때 DNS 확인을 맞춤설정하려면 커스텀 BIND 서버를 사용하는 대신 Cloud DNS 비공개 영역을 사용합니다. 고유한 온프레미스 DNS 확인을 사용하려면 Google Cloud DNS 전달 방법을 사용하는 것이 좋습니다.
  • 예를 들어 Google Kubernetes Engine(GKE)을 사용하는 경우 gcr.io에 DNS를 구성해야 할 수도 있습니다. 자세한 내용은 GKE 비공개 클러스터용 Container Registry 설정을 참조하세요.