Menyiapkan konektivitas pribadi ke Google API dan layanan Google

Dokumen ini menjelaskan cara menyiapkan konektivitas pribadi dari host di jaringan VPC atau jaringan lokal ke Google API dan layanan yang didukung Kontrol Layanan VPC.

Sebelum membaca dokumen ini, sebaiknya pahami konsep, spesifikasi, dan konfigurasi jaringan Akses Google Pribadi. Lihat contoh diagram topologi tentang penggunaan Akses Google Pribadi dengan Kontrol Layanan VPC.

Sebelum memulai

  • Aktifkan API yang ingin Anda akses melalui halaman API & layanan di Konsol Google Cloud.
  • Pastikan Anda memiliki peran yang diperlukan untuk membuat atau memperbarui subnet. Pemilik project, editor, dan akun utama IAM dengan peran Admin Jaringan dapat membuat atau memperbarui subnet dan menetapkan alamat IP. Untuk mengetahui informasi selengkapnya tentang peran, baca dokumentasi peran IAM.
  • Pastikan jaringan VPC disiapkan untuk Akses Google Pribadi dan Akses Google Pribadi untuk host lokal. Jaringan VPC mode otomatis dan kustom didukung. Jaringan lama tidak didukung.
  • Pastikan instance VM di jaringan VPC memiliki alamat IP pribadi (tanpa alamat IP publik) dan berada di subnet dengan Akses Google Pribadi diaktifkan.
  • Untuk host lokal, pastikan Anda memiliki tunnel Cloud VPN atau koneksi Cloud Interconnect ke jaringan VPC. Untuk mendukung host lokal yang memiliki alamat IPv6, lihat dukungan IPv6.

Ringkasan prosedur

Untuk menyiapkan konektivitas pribadi, selesaikan tugas berikut:

  • Konfigurasikan rute untuk rentang alamat IP restricted.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi rute.
  • Konfigurasi aturan firewall untuk mengizinkan traffic yang sesuai menjangkau rentang alamat IP restricted.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi aturan firewall.
  • Konfigurasikan DNS sehingga traffic ke Google API di-resolve ke rentang alamat IP restricted.googleapis.com. Untuk informasi selengkapnya, lihat Mengonfigurasi DNS.

Dukungan IPv6 untuk restricted.googleapis.com

Anda dapat mengakses Google API menggunakan rentang alamat IPv6 untuk domain restricted.googleapis.com: 2600:2d00:0002:1000::/64.

Pertimbangkan untuk mengonfigurasi alamat IPv6 jika Anda ingin menggunakan domain restricted.googleapis.com, dan Anda memiliki klien yang menggunakan alamat IPv6 juga. Klien IPv6 yang juga telah mengonfigurasi alamat IPv4 dapat menjangkau Google API dan layanan Google menggunakan alamat IPv4. Tidak semua layanan menerima traffic dari klien IPv6.

Agar klien IPv6 di lingkungan lokal Anda dapat mengakses Google API menggunakan restricted.googleapis.com, Anda harus mengonfigurasi koneksi ke jaringan VPC untuk mendukung IPv6. Untuk informasi lebih lanjut, lihat halaman berikut:

Klien lokal dapat mengirim permintaan dari alamat IPv6 GUA atau ULA mana pun, kecuali untuk rentang ULA fda3:e722:ac3:cc00::/64, yang dicadangkan untuk penggunaan internal.

Untuk informasi selengkapnya tentang VIP restricted.googleapis.com, lihat Mengonfigurasi Akses Google Pribadi.

Konektivitas langsung ke API dan layanan

Beberapa API dan layanan Google menawarkan konektivitas langsung dari instance virtual machine (VM) Compute Engine, yang mengabaikan Google Front End (GFE). Untuk mengizinkan traffic ini, Anda harus memastikan bahwa rute dan aturan firewall mengizinkan traffic keluar untuk menjangkau 34.126.0.0/18 dan 2001:4860:8040::/42. Anda tidak perlu membuat data DNS untuk alamat ini. Beberapa layanan Google Cloud mendukung konektivitas langsung untuk memberikan performa yang lebih baik bagi Google gRPC API. Untuk mengaktifkan performa yang ditingkatkan ini, Anda harus memberikan akses ke rentang alamat IP yang ditentukan.

Konektivitas langsung hanya didukung dari resource Google Cloud. Anda tidak dapat menggunakan konektivitas langsung dari host lokal.

Layanan yang menawarkan konektivitas langsung mendukung Kontrol Layanan VPC.

Mengonfigurasi rute ke restricted.googleapis.com

Meskipun Kontrol Layanan VPC diterapkan untuk layanan yang kompatibel dan dikonfigurasi, terlepas dari domain yang Anda gunakan, restricted.googleapis.com memberikan mitigasi risiko tambahan untuk pemindahan data yang tidak sah. restricted.googleapis.com menolak akses ke Google API dan layanan yang tidak didukung oleh Kontrol Layanan VPC.

Untuk Akses Google Pribadi dan Akses Google Pribadi untuk host lokal, jaringan VPC Anda harus menyertakan rute untuk rentang alamat IP restricted.googleapis.com yang next hop-nya adalah gateway internet default. Meskipun next hop adalah gateway internet default, traffic yang dikirim ke restricted.googleapis.com tetap berada dalam jaringan Google.

Jika jaringan VPC Anda tidak memiliki rute default yang next hop-nya adalah gateway internet default, Anda dapat membuat rute statis kustom yang tujuannya adalah rentang alamat IP restricted.googleapis.com, dan next hop-nya adalah gateway internet default. Untuk mencegah akses ke internet, Anda harus menghapus rute lain yang next hop-nya adalah gateway internet default.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan rute VPC, lihat Menggunakan Rute dalam dokumentasi VPC.

Mengonfigurasi rute statis kustom di jaringan VPC

Tambahkan rute statis kustom untuk mengaktifkan akses ke layanan yang dikelola Google yang didukung Kontrol Layanan VPC.

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

Ganti kode berikut:

  • ROUTE_NAME: nama untuk rute kustom
  • NETWORK_NAME: nama jaringan VPC Anda
  • DESTINATION_RANGE: rentang tujuan untuk rute
    • Untuk merutekan traffic ke VIP restricted.googleapis.com, gunakan rentang berikut:
      • Untuk traffic IPv4: 199.36.153.4/30
      • Untuk traffic IPv6: 2600:2d00:0002:1000::/64
    • Untuk merutekan traffic ke API yang mengizinkan konektivitas langsung, gunakan rentang berikut:
      • Untuk traffic IPv4: 34.126.0.0/18
      • Untuk traffic IPv6: 2001:4860:8040::/42

Mengumumkan rute yang dibatasi ke host di jaringan lokal

Jika Anda menggunakan Akses Google Pribadi untuk host lokal, konfigurasikan rute agar traffic Google API diteruskan melalui koneksi Cloud VPN atau Cloud Interconnect Anda. Untuk mengumumkan rentang alamat VIP yang dibatasi ke jaringan lokal Anda, gunakan mode iklan kustom Cloud Router. Rentang alamat VIP yang dibatasi hanya dapat diakses oleh host lokal yang dapat menjangkau jaringan VPC Anda melalui alamat IP pribadi.

Anda dapat menambahkan rute kustom yang diberitahukan ini ke Cloud Router (untuk semua sesi BGP di router) atau sesi BGP tertentu (untuk satu tunnel Cloud VPN atau lampiran VLAN).

Rute IPv6 hanya diiklankan dalam sesi BGP tempat IPv6 diaktifkan.

Untuk membuat rute yang diberitahukan secara khusus untuk rentang yang dibatasi bagi semua sesi BGP di Cloud Router yang ada, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Cloud Router.

    Buka Cloud Router

  2. Pilih Cloud Router yang akan diupdate.

  3. Di halaman detail Cloud Router, pilih Edit.

  4. Luaskan bagian Rute yang diiklankan.

  5. Untuk Rute, pilih Membuat rute kustom.

  6. Untuk terus mengiklankan subnet yang tersedia untuk Cloud Router, pilih Beriklan semua subnet yang terlihat oleh Cloud Router. Mengaktifkan opsi ini akan meniru perilaku default Cloud Router.

  7. Untuk menambahkan rute yang diiklankan, pilih Tambahkan rute kustom .

  8. Konfigurasikan pemberitahuan rute.

    • Sumber: Pilih Rentang IP kustom.
    • Rentang alamat IP:
      • Untuk konektivitas IPv4: 199.36.153.4/30
      • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Deskripsi: Tambahkan deskripsi Restricted Google APIs IPs.
  9. Setelah menambahkan rute, pilih Simpan.

gcloud

Jalankan perintah update, menggunakan flag --set-advertisement-ranges atau --add-advertisement-ranges untuk menentukan rentang IP kustom:

  • Untuk menetapkan rentang IP kustom, gunakan flag --set-advertisement-ranges. Semua rute yang diiklankan secara kustom akan diganti. Contoh berikut mengupdate Cloud Router my-router untuk mengiklankan semua subnet dan rentang alamat IP restricted.googleapis.com.

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Ganti RANGES dengan rentang yang ingin Anda gunakan:

    • Untuk konektivitas IPv4: 199.36.153.4/30
    • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Untuk konektivitas IPv4 dan IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

  • Untuk menambahkan rentang IP kustom ke iklan yang ada, gunakan flag --add-advertisement-ranges. Perhatikan bahwa flag ini mengharuskan mode iklan Cloud Router sudah ditetapkan ke custom. Contoh berikut menambahkan rentang alamat IP restricted.googleapis.com ke iklan Cloud Router:

    gcloud compute routers update my-router \
        --add-advertisement-ranges RANGES
    

    Ganti RANGES dengan rentang yang ingin Anda gunakan:

    • Untuk konektivitas IPv4: 199.36.153.4/30
    • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Untuk konektivitas IPv4 dan IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

Untuk membuat rute kustom yang diberitahukan untuk rentang yang dibatasi pada sesi BGP tertentu dari Cloud Router yang ada, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Cloud Router.

    Buka Cloud Router

  2. Pilih Cloud Router yang berisi sesi BGP yang akan diupdate.

  3. Di halaman detail Cloud Router, pilih sesi BGP yang akan diupdate.

  4. Di halaman Detail sesi BGP, pilih Edit.

  5. Untuk Rute, pilih Membuat rute kustom.

  6. Pilih Beriklan semua subnet yang terlihat oleh Cloud Router untuk terus mengiklankan subnet yang tersedia untuk Cloud Router. Mengaktifkan opsi ini akan meniru perilaku default Cloud Router.

  7. Pilih Tambahkan rute kustom untuk menambahkan rute yang diiklankan.

  8. Konfigurasikan pemberitahuan rute.

    • Sumber: Pilih Rentang IP kustom untuk menentukan rentang IP kustom.
    • Rentang alamat IP:
      • Untuk konektivitas IPv4: 199.36.153.4/30
      • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Deskripsi: Tambahkan deskripsi Restricted Google APIs IPs.
  9. Setelah menambahkan rute, pilih Simpan.

gcloud

Jalankan perintah update-bgp-peer, menggunakan flag --set-advertisement-ranges atau --add-advertisement-ranges untuk menentukan rentang IP kustom.

  • Untuk menetapkan rentang IP kustom, gunakan flag --set-advertisement-ranges. Semua rute yang diiklankan khusus akan diganti.

    Jika Anda menambahkan rentang kustom IPv6 dan traffic IPv6 dinonaktifkan untuk sesi BGP, Anda dapat mengaktifkannya kembali dengan flag --enable-ipv6.

    Contoh berikut memperbarui sesi BGP my-bgp-session di Cloud Router my-router untuk mengiklankan semua subnet dan rentang IP kustom:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Ganti RANGES dengan rentang yang ingin Anda gunakan:

    • Untuk konektivitas IPv4: 199.36.153.4/30
    • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Untuk konektivitas IPv4 dan IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

  • Untuk menambahkan rentang IP kustom ke rentang IP yang ada, gunakan flag --add-advertisement-ranges. Perhatikan bahwa flag ini mengharuskan mode iklan Cloud Router sudah ditetapkan ke custom.

    Jika Anda menambahkan rentang kustom IPv6 dan traffic IPv6 dinonaktifkan untuk sesi BGP, Anda dapat mengaktifkannya kembali dengan flag --enable-ipv6.

    Contoh berikut menambahkan rentang alamat VIP yang dibatasi ke iklan Cloud Router:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges RANGES
    

    Ganti RANGES dengan rentang yang ingin Anda gunakan:

    • Untuk konektivitas IPv4: 199.36.153.4/30
    • Untuk konektivitas IPv6: 2600:2d00:0002:1000::/64
    • Untuk konektivitas IPv4 dan IPv6: 199.36.153.4/30,2600:2d00:0002:1000::/64

    Untuk informasi selengkapnya tentang mode pemberitahuan kustom, lihat Rute yang diberitahukan khusus.

Mengonfigurasi aturan firewall

Untuk Akses Google Pribadi, instance VM menggunakan alamat IP internal dan tidak memerlukan alamat IP eksternal untuk menjangkau resource Google API yang dilindungi. Namun, instance VM dapat memiliki alamat IP eksternal atau memenuhi persyaratan untuk akses internet. Selain rute kustom yang diiklankan, Anda dapat membatasi traffic keluar dari instance VM di jaringan VPC dengan membuat aturan firewall untuk menolak traffic keluar.

Secara default, aturan firewall izinkan keluar yang tersirat mengizinkan instance VM mengirim traffic ke tujuan mana pun jika rute yang berlaku ada. Anda dapat membuat aturan penolakan egress terlebih dahulu untuk memblokir semua traffic keluar. Kemudian, Anda dapat membuat aturan keluar dengan prioritas yang lebih tinggi yang mengizinkan traffic ke tujuan yang dipilih di jaringan VPC dan ke rentang alamat IP restricted.googleapis.com. Semua komunikasi ke restricted.googleapis.com berada di port TCP 443.

Agar traffic dari Google Cloud dapat menjangkau VIP restricted.googleapis.com, tambahkan aturan firewall untuk tujuan berikut:

  • Untuk traffic IPv4: 199.36.153.4/30
  • Untuk traffic IPv6: 2600:2d00:0002:1000::/64

Agar traffic dari Google Cloud dapat menjangkau API dan layanan yang memungkinkan konektivitas langsung, tambahkan aturan firewall untuk tujuan berikut:

  • Untuk traffic IPv4: 34.126.0.0/18
  • Untuk traffic IPv6: 2001:4860:8040::/42

Untuk mengetahui informasi selengkapnya tentang cara menggunakan aturan firewall VPC, lihat Menggunakan aturan firewall VPC dalam dokumentasi Cloud Next Generation Firewall.

Konfigurasi aturan firewall lokal Anda untuk mengizinkan traffic dari host lokal Anda menjangkau rentang alamat IP restricted.googleapis.com.

  • Untuk traffic IPv4: 199.36.153.4/30
  • Untuk traffic IPv6: 2600:2d00:0002:1000::/64

Konektivitas langsung ke Google API dan layanan Google tidak didukung dari jaringan lokal.

Mengonfigurasi DNS

Anda dapat menggunakan zona pribadi terkelola untuk jaringan VPC. Zona DNS pribadi Cloud DNS memungkinkan Anda menghosting zona DNS yang dapat diakses dari jaringan VPC yang diotorisasi. Untuk mengonfigurasi penerusan dari server nama lokal tertentu, Anda dapat menggunakan rentang alamat IP restricted.googleapis.com. Kemudian, Anda dapat membuat zona pribadi untuk googleapis.com dengan data A DNS yang memetakan restricted.googleapis.com dan data CNAME yang sesuai untuk setiap nama *.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat Mengelola zona.

Untuk akses lokal, Anda dapat mengonfigurasi kebijakan penerusan masuk Cloud DNS agar server nama lokal dapat membuat kueri pada zona pribadi terkelola Cloud DNS. Anda juga dapat mengonfigurasi server nama lokal, seperti server yang menggunakan BIND:

Mengonfigurasi DNS dengan Cloud DNS

Untuk mengaktifkan resolusi DNS untuk instance VM di jaringan VPC, host di jaringan lokal, atau keduanya, gunakan Cloud DNS. Jika Anda menggunakan VPC Bersama, lihat Zona pribadi dan VPC Bersama dalam dokumentasi Cloud DNS. Selain itu, jika Anda menggunakan VPC Bersama, sebaiknya sertakan project host jaringan VPC Bersama dalam perimeter layanan yang sama dengan project yang terhubung ke jaringan.

Mengonfigurasi Cloud DNS menggunakan zona pribadi

Anda dapat menggunakan zona pribadi untuk mengonfigurasi Cloud DNS:

  1. Buat zona pribadi terkelola untuk jaringan VPC Anda.

    gcloud 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

    Ganti kode berikut:

    • ZONE_NAME: nama untuk zona yang Anda buat. Contoh, vpc. Nama ini digunakan di setiap langkah berikut.
    • PROJECT_ID: ID project yang menghosting jaringan VPC Anda.
    • NETWORK_NAME: nama jaringan VPC Anda.
    • DESCRIPTION: deskripsi opsional yang dapat dibaca manusia untuk zona terkelola.
  2. Mulai transaksi.

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

    Ganti ZONE_NAME dengan nama zona yang Anda buat di langkah pertama.

  3. Menambahkan data DNS.

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

    Ganti ZONE_NAME dengan nama zona yang Anda buat di langkah pertama.

    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

    Ganti ZONE_NAME dengan nama zona yang Anda buat di langkah pertama.

    Jika Anda mengonfigurasi alamat IPv6 untuk restricted.googleapis.com, buat juga kumpulan data berikut:

    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=AAAA 2600:2d00:0002:1000:: \
        --zone=ZONE_NAME \
        --ttl=300
  4. Jalankan transaksi.

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

    Ganti ZONE_NAME dengan nama zona yang Anda buat di langkah pertama.

  5. Opsional. Agar host lokal dapat menjangkau VIP yang dibatasi, selesaikan langkah-langkah berikut:

    1. Buat kebijakan DNS dan aktifkan penerusan DNS masuk untuk membuat layanan resolusi nama jaringan VPC tersedia secara eksternal untuk sistem di jaringan lokal,

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

      Ganti kode berikut:

      • POLICY_NAME: nama untuk kebijakan yang Anda buat. Contoh, apipolicy.
      • PROJECT_ID: ID project yang menghosting jaringan VPC Anda.
      • NETWORK_NAME: nama jaringan VPC Anda.
      • DESCRIPTION: deskripsi opsional zona terkelola yang dapat dibaca manusia.
    2. Di jaringan lokal, arahkan DNS lokal ke alamat IP forwarder Cloud DNS. Untuk menemukan alamat IP pengirim, gunakan perintah compute addresses list:

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

Mengonfigurasi DNS dengan BIND

Jika menggunakan BIND untuk resolusi DNS, Anda dapat mengonfigurasinya untuk me-resolve permintaan Google API ke Google API yang dibatasi. Gunakan contoh konfigurasi BIND berikut, yang menggunakan zona kebijakan respons (RPZ) untuk mencapai perilaku ini:

  1. Tambahkan baris berikut ke /etc/bind/named.conf:

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. Tambahkan baris berikut ke /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. Tambahkan baris berikut ke /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. Tambahkan baris berikut ke /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.

Mengonfigurasi DNS dalam kasus khusus

Jika Anda perlu mengonfigurasi DNS dalam kasus khusus, perhatikan hal berikut:

  • BIND kustom tidak didukung saat menggunakan Dataflow. Untuk menyesuaikan resolusi DNS saat menggunakan Dataflow dengan Kontrol Layanan VPC, gunakan zona pribadi Cloud DNS, bukan server BIND kustom. Untuk menggunakan resolusi DNS lokal Anda sendiri, sebaiknya gunakan metode penerusan DNS Google Cloud.
  • Anda mungkin juga perlu mengonfigurasi DNS untuk gcr.io jika, misalnya, Anda menggunakan Google Kubernetes Engine (GKE). Untuk informasi selengkapnya, lihat Menyiapkan Container Registry untuk cluster pribadi GKE.