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 oleh Kontrol Layanan VPC.

Sebelum membaca dokumen ini, sebaiknya Anda memahami 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 mengupdate subnet. Pemilik project, editor, dan akun utama IAM dengan peran Admin Jaringan dapat membuat atau memperbarui subnet dan menetapkan alamat IP. Untuk informasi selengkapnya tentang peran, baca dokumentasi peran IAM.
  • Pastikan jaringan VPC disiapkan untuk Akses Google Pribadi dan Akses Google Pribadi untuk host lokal. Baik jaringan VPC mode otomatis maupun kustom didukung. Jaringan lama tidak didukung.
  • Pastikan instance VM di jaringan VPC memiliki alamat IP pribadi (tanpa alamat IP publik) dan berada dalam subnet dengan Akses Google Pribadi diaktifkan.
  • Untuk host lokal, pastikan Anda memiliki tunnel Cloud VPN atau koneksi Cloud Interconnect ke jaringan VPC Anda. Untuk mendukung host lokal yang memiliki alamat IPv6, lihat dukungan IPv6.

Ringkasan prosedur

Untuk menyiapkan konektivitas pribadi, selesaikan tugas-tugas berikut:

  • Konfigurasi rute untuk rentang alamat IP restricted.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi rute.
  • Konfigurasikan aturan firewall agar traffic yang sesuai dapat mencapai rentang alamat IP restricted.googleapis.com. Untuk mengetahui informasi lebih lanjut, lihat Mengonfigurasi aturan firewall.
  • Konfigurasikan DNS agar traffic ke Google API me-resolve ke rentang alamat IP restricted.googleapis.com. Untuk mengetahui 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. Klien IPv6 yang juga telah mengonfigurasi alamat IPv4 dapat menjangkau Google API dan layanan Google menggunakan alamat IPv4. Tidak semua layanan Google 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 selengkapnya, 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 layanan dan API Google menawarkan konektivitas langsung dari instance virtual machine (VM) Compute Engine, yang mengabaikan Google Front End (GFE). Untuk mengizinkan traffic ini, Anda harus memastikan rute dan aturan firewall Anda mengizinkan traffic keluar untuk menjangkau 34.126.0.0/18 dan 2001:4860:8040::/42. Anda tidak perlu membuat data DNS untuk alamat ini.

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

Layanan yang menawarkan konektivitas langsung yang mendukung Kontrol Layanan VPC.

Konfigurasi 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 Google 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 merupakan gateway internet default. Meskipun hop berikutnya 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 hop berikutnya adalah gateway internet default. Untuk mencegah akses ke internet, Anda harus menghapus rute lain yang next hop-nya adalah gateway internet default.

Untuk informasi selengkapnya tentang cara bekerja dengan 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 oleh 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
  • 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 mengarahkan traffic ke API yang memungkinkan 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 sehingga traffic Google API diteruskan melalui koneksi Cloud VPN atau Cloud Interconnect Anda. Untuk mengumumkan rentang alamat VIP yang dibatasi ke jaringan lokal Anda, gunakan iklan rute 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 iklan rute kustom 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.

Guna membuat iklan rute kustom untuk rentang yang dibatasi untuk 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 Advertising all subnets existing to the 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 Save.

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 iklan khusus yang ada akan diganti. Contoh berikut mengupdate Cloud Router my-router untuk memberitahukan 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 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

Guna membuat iklan rute kustom untuk rentang yang dibatasi pada sesi BII 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.

    • Source: Pilih Custom IP range 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 iklan khusus yang ada 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 memberitahukan 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 yang sudah ada, gunakan flag --add-advertisement-ranges. Perhatikan bahwa flag ini mengharuskan mode iklan Cloud Router 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 iklan kustom, lihat Iklan Router Kustom.

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 mungkin saja memiliki alamat IP eksternal atau memenuhi persyaratan untuk akses internet. Selain rute kustom, Anda dapat membatasi traffic keluar dari instance VM di jaringan VPC dengan membuat aturan firewall untuk menolak traffic keluar.

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

Agar traffic dari Google Cloud dapat mencapai 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, baca Menggunakan aturan firewall VPC dalam dokumentasi Firewall Cloud Next Generation.

Konfigurasi aturan firewall lokal agar traffic dari host lokal Anda dapat 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.

Konfigurasikan DNS

Anda dapat menggunakan zona pribadi terkelola untuk jaringan VPC Anda. Zona DNS pribadi Cloud DNS dapat Anda gunakan untuk menghosting zona DNS yang dapat diakses dari jaringan VPC yang diizinkan. Untuk mengonfigurasi penerusan dari server nama lokal tertentu, Anda dapat menggunakan rentang alamat IP restricted.googleapis.com. Anda kemudian 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 untuk mengaktifkan server nama lokal guna membuat kueri pada zona pribadi yang dikelola Cloud DNS. Anda juga dapat mengonfigurasi server nama lokal, seperti server menggunakan BIND:

Mengonfigurasi DNS dengan Cloud DNS

Gunakan Cloud DNS untuk mengaktifkan resolusi DNS untuk instance VM di jaringan VPC Anda, atau menghosting di jaringan lokal, atau keduanya. Jika Anda menggunakan VPC Bersama, lihat Zona pribadi dan VPC Bersama dalam dokumentasi Cloud DNS. Selain itu, jika Anda menggunakan VPC Bersama, pastikan project host jaringan VPC Bersama disertakan 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. Tambahkan 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 agar 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 yang dapat dibaca manusia dari zona terkelola.
    2. Di jaringan lokal Anda, arahkan DNS lokal Anda ke alamat IP forwarder Cloud DNS. Untuk menemukan alamat IP penerusan, gunakan perintah compute addresses list:

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

Konfigurasi DNS dengan BIND

Jika menggunakan BIND untuk resolusi DNS, Anda dapat mengonfigurasinya untuk menyelesaikan 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

Saat 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, pertimbangkan untuk menggunakan metode penerusan DNS Google Cloud.
  • Anda mungkin juga perlu mengonfigurasi DNS untuk gcr.io jika, misalnya, Anda menggunakan Google Kubernetes Engine (GKE). Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Container Registry untuk cluster pribadi GKE.