Mengonfigurasi aturan akses internet dan firewall

Dokumen ini menjelaskan cara menyelesaikan tugas-tugas berikut:

  • Mengonfigurasi instance virtual machine (VM) Dataflow untuk akses internet
  • Gunakan tag untuk mengamankan jaringan VM pekerja.
  • Tentukan aturan firewall untuk jaringan yang terkait dengan tugas Dataflow Anda

Dokumen ini mengharuskan Anda memiliki pengetahuan dasar tentang Google Cloud jaringan. Untuk menentukan jaringan bagi tugas Dataflow Anda, lihat Menentukan jaringan dan subnetwork. Untuk mengetahui informasi selengkapnya tentang cara memecahkan masalah jaringan, lihat Memecahkan masalah jaringan Dataflow.

Akses ke Google Cloud API untuk Dataflow

Virtual machine (VM) pekerja Dataflow harus dapat menjangkau API dan layananGoogle Cloud . Kumpulan endpoint Google Cloud dependen dapat berubah dari waktu ke waktu, tetapi semuanya mendukung Kontrol Layanan VPC. Gunakan salah satu metode berikut untuk mengonfigurasi akses ke API Google Cloud :

Secara default, aturan firewall dan konfigurasi DNS mengizinkan akses ke APIGoogle Cloud . Namun, Anda mungkin secara aktif membatasi akses ke sebagian Google Cloud API, misalnya jika Anda menggunakan Kontrol Layanan VPC. Dalam hal ini, minimal berikan akses ke restricted.googleapis.com. Jika Anda menggunakan Private Service Connect, berikan akses ke vpc-sc bundle. Memberikan akses ke domain yang lebih permisif, seperti private.googleapis.com, juga memberikan fungsi yang diperlukan.

Untuk mengizinkan akses ke API yang diperlukan melalui domain tertentu, lingkungan Anda harus memenuhi persyaratan berikut: Google Cloud

  • Aturan firewall harus mengizinkan keluar ke semua rentang alamat di domain yang dipilih.

  • DNS harus menyelesaikan *.googleapis.com ke domain yang Anda pilih.

Misalnya, jika aturan firewall Anda membatasi traffic keluar ke rentang alamat restricted.googleapis.com, maka *.googleapis.com harus di-resolve ke alamat dalam rentang tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi DNS untuk googleapis.com.

Demikian pula, jika Anda menggunakan Private Service Connect, Anda harus membuat data DNS untuk domain default googleapis.com guna memastikan akses ke setidaknya semua layanan dalam paket vpc-sc.

Akses internet untuk Dataflow

Bergantung pada kasus penggunaan Anda, VM Anda mungkin juga memerlukan akses ke resource di luar Google Cloud. Gunakan salah satu metode berikut untuk mengonfigurasi akses internet untuk Dataflow:

  • Konfigurasi VM pekerja dengan alamat IP eksternal agar memenuhi persyaratan akses internet.

  • Konfigurasi solusi NAT, seperti Cloud NAT. Opsi ini ditujukan untuk menjalankan tugas yang mengakses API dan layanan di luar Google Cloud yang memerlukan akses internet. Misalnya, tugas Python SDK mungkin memerlukan akses ke Python Package Index (PyPI) untuk mendownload dependensi pipeline. Dalam kasus ini, Anda harus mengonfigurasi VM pekerja dengan alamat IP eksternal atau menggunakan Cloud NAT. Anda juga dapat menyediakan dependensi pipeline Python selama pengiriman tugas. Misalnya, Anda dapat menggunakan container kustom untuk menyediakan dependensi pipeline Python, yang menghilangkan kebutuhan untuk mengakses PyPI saat runtime.

    Untuk mengetahui informasi selengkapnya, lihat Mengelola Dependensi Pipeline Python dalam dokumentasi Apache Beam.

Menonaktifkan alamat IP eksternal

Secara default, Dataflow menetapkan alamat IP eksternal dan internal ke pekerja. Saat Anda menonaktifkan alamat IP eksternal, tugas Dataflow hanya dapat mengakses resource di tempat berikut:

Tanpa alamat IP eksternal, Anda tetap dapat melakukan tugas administratif dan pemantauan. Anda dapat mengakses pekerja menggunakan SSH melalui opsi yang tercantum dalam daftar sebelumnya. Namun, pipeline tidak dapat mengakses internet, dan host internet tidak dapat mengakses pekerja Dataflow Anda.

Dengan tidak menggunakan alamat IP eksternal, Anda dapat mengamankan infrastruktur pemrosesan data secara lebih baik. Anda juga dapat mengurangi jumlah alamat IP eksternal yang Anda gunakan dari Google Cloud kuota project.

Jika Anda menonaktifkan alamat IP eksternal, tugas Dataflow Anda tidak dapat mengakses API dan layanan di luar Google Cloud yang memerlukan akses internet.

Untuk menonaktifkan alamat IP eksternal, lakukan salah satu hal berikut:

Java

  1. Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork Anda.
  2. Dalam parameter tugas Dataflow, tentukan --usePublicIps=false dan --network=NETWORK-NAME atau --subnetwork=SUBNETWORK-NAME.

    Bergantung pada pilihan Anda, ganti salah satu opsi berikut:

    • NETWORK-NAME: nama jaringan Compute Engine Anda
    • SUBNETWORK-NAME: nama subnetwork Compute Engine Anda

Python

  1. Untuk menyiapkan semua dependensi paket Python, ikuti petunjuk dependensi pipeline Apache Beam.
  2. Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork Anda.
  3. Dalam parameter tugas Dataflow, tentukan --no_use_public_ips dan --network=NETWORK atau --subnetwork=SUBNETWORK.

    Bergantung pada pilihan Anda, ganti salah satu opsi berikut:

    • NETWORK-NAME: nama jaringan Compute Engine Anda
    • SUBNETWORK-NAME: nama subnetwork Compute Engine Anda

Go

  1. Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork Anda.
  2. Dalam parameter tugas Dataflow, tentukan --no_use_public_ips dan --network=NETWORK atau --subnetwork=SUBNETWORK.

    Bergantung pada pilihan Anda, ganti salah satu opsi berikut:

    • NETWORK-NAME: nama jaringan Compute Engine Anda
    • SUBNETWORK-NAME: nama subnetwork Compute Engine Anda

Menggunakan tag untuk mengamankan jaringan VM pekerja

Tag memungkinkan Anda menerapkan aturan firewall jaringan ke instance VM tertentu. Saat menjalankan tugas Dataflow, Anda dapat menentukan tag untuk VM pekerja Dataflow yang menjalankan tugas. Aturan firewall untuk tag tersebut kemudian diterapkan ke VM pekerja Dataflow.

Dataflow mendukung dua jenis tag untuk jaringan VM:

Menggunakan tag aman dengan Dataflow

Tag aman, yang juga disebut tag yang dikelola Identity and Access Management (IAM), adalah pasangan nilai kunci yang Anda buat dan kelola di Resource Manager. Tidak seperti tag jaringan, tag aman mendukung kontrol akses menggunakan IAM.

Manfaat menggunakan tag aman, bukan tag jaringan, meliputi hal berikut:

  • Tag aman mencegah modifikasi tag yang tidak sah dan perubahan yang tidak diinginkan pada aturan firewall.

  • Kebijakan firewall jaringan global dan regional mendukung tag aman. Dengan menggunakan tag aman, Anda dapat mengelompokkan beberapa aturan firewall dan memperbaruinya secara bersamaan, dengan pembaruan yang diatur oleh kontrol akses IAM.

  • Tag aman diwarisi dari resource induk dalam hierarki Google Cloud , yang memungkinkan Anda menentukan tag di level yang lebih tinggi, seperti level organisasi. Untuk mengetahui informasi selengkapnya, lihat Pewarisan tag.

  • Dengan tag aman, aturan firewall masuk dapat menyertakan sumber di jaringan VPC yang terhubung menggunakan Peering Jaringan VPC. Untuk job Dataflow, artinya aturan firewall dapat menyertakan sumber di jaringan VM pekerja dan jaringan VPC yang di-peering.

Untuk mengetahui informasi selengkapnya tentang perbedaan antara tag aman dan tag jaringan, lihat Perbandingan Tag dan tag jaringan.

Untuk menerapkan tag aman ke tugas Dataflow, lakukan langkah-langkah berikut:

  1. Konfigurasi tag aman untuk kebijakan firewall Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tag aman.

  2. Berikan peran Tag User (roles/resourcemanager.tagUser) kepada akun layanan Dataflow di resource (nilai tag). Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan, lihat Mengelola tag pada resource.

  3. Saat membuat tugas Dataflow, gunakan use_vm_tags experiment dengan format berikut:

Java

--experiments=use_vm_tags=tagKeys/KEY1:tagValues/VALUE1;tagKeys/KEY2:tagValues/VALUE2

Python

--experiments=use_vm_tags=tagKeys/KEY1:tagValues/VALUE1;tagKeys/KEY2:tagValues/VALUE2

Template fleksibel

--additional-experiments=use_vm_tags=tagKeys/KEY1:tagValues/VALUE1;tagKeys/KEY2:tagValues/VALUE2

Menggunakan tag jaringan dengan Dataflow

Tag jaringan adalah atribut teks yang dapat Anda tetapkan pada aturan firewall dan dilampirkan ke VM Compute Engine. Tidak seperti tag aman, tag jaringan adalah string teks; tag ini bukan resource yang dikelola oleh Resource Manager.

Untuk menerapkan tag jaringan ke tugas Dataflow, gunakan use_network_tags experiment, sebagai berikut:

Java

--experiments=use_network_tags=TAG_NAME

Python

--experiments=use_network_tags=TAG_NAME

Template fleksibel

Untuk mengaktifkan tag jaringan bagi VM pekerja Dataflow, gunakan eksperimen use_network_tags:

--additional-experiments=use_network_tags=TAG_NAME

Untuk mengaktifkan tag jaringan bagi VM peluncur template Flex, gunakan eksperimen use_network_tags_for_flex_templates:

--additional-experiments=use_network_tags_for_flex_templates=TAG_NAME

Menentukan tag jaringan juga menambahkan tag jaringan default Dataflow ke VM peluncur template Flex.

Ganti TAG_NAME dengan nama tag Anda. Jika Anda menambahkan lebih dari satu tag, pisahkan setiap tag dengan titik koma (;), seperti berikut: TAG_NAME_1;TAG_NAME_2;TAG_NAME_3;....

Setelah tugas dimulai, Anda tidak dapat menambahkan lebih banyak tag jaringan ke tugas.

Dataflow selalu menambahkan tag jaringan default dataflow ke setiap VM pekerja yang dibuatnya.

Lihat batas yang berlaku untuk tag jaringan.

Aturan firewall untuk Dataflow

Dengan aturan firewall, Anda dapat mengizinkan atau menolak traffic ke dan dari VM Anda. Jika tugas Dataflow Anda menggunakan Dataflow Shuffle atau Streaming Engine, Anda hanya perlu memastikan bahwa aturan firewall mengizinkan akses ke Google Cloud API. Jika tidak, Anda harus mengonfigurasi aturan firewall tambahan agar VM Dataflow dapat mengirim dan menerima traffic jaringan pada port TCP 12345 untuk tugas streaming dan pada port TCP 12346 untuk tugas batch. Pemilik, editor, atau administrator keamanan project harus membuat aturan firewall yang diperlukan di jaringan VPC yang digunakan oleh VM Dataflow Anda.

Sebelum mengonfigurasi aturan firewall untuk Dataflow, baca dokumen berikut:

Saat membuat aturan firewall untuk Dataflow, tentukan tag jaringan Dataflow. Jika tidak, aturan firewall berlaku untuk semua VM di jaringan VPC.

Jika berlaku, Kebijakan firewall hierarkis dievaluasi terlebih dahulu dan aturan ini mendahului aturan firewall VPC. Jika tugas Dataflow berada dalam project yang merupakan bagian dari folder atau organisasi yang menggunakan kebijakan firewall Hierarkis, peran compute.orgFirewallPolicyAdmin diperlukan untuk melakukan modifikasi kebijakan.

Jika Anda tidak membuat tag jaringan kustom saat menjalankan kode pipeline, VM Dataflow akan menggunakan tag dataflow default. Jika tidak ada tag jaringan kustom, buat aturan firewall dengan tag dataflow default.

Jika Anda membuat tag jaringan kustom saat menjalankan kode pipeline, VM Dataflow akan menggunakan tag tersebut. Buat aturan firewall dengan tag kustom.

Beberapa jaringan VPC, seperti jaringan default yang dibuat secara otomatis, menyertakan aturan default-allow-internal yang memenuhi persyaratan firewall untuk Dataflow.

Contoh aturan masuk firewall

Aturan firewall masuk mengizinkan VM Dataflow untuk menerima paket dari satu sama lain. Anda harus selalu membuat aturan firewall izinkan traffic masuk atau traffic akan selalu diblokir, meskipun aturan traffic keluar mengizinkan traffic tersebut.

Dalam contoh berikut, aturan ingress firewall dibuat untuk Dataflow, dengan semua VM pekerja memiliki tag jaringan default dataflow. Pemilik, editor, atau admin keamanan project dapat menggunakan perintah gcloud berikut untuk membuat aturan izinkan masuk yang mengizinkan traffic pada port TCP 12345 dan 12346 dari VM dengan tag jaringan dataflow ke VM lain dengan tag yang sama:

gcloud compute firewall-rules create FIREWALL_RULE_NAME_INGRESS \
    --action=allow \
    --direction=ingress \
    --network=NETWORK  \
    --target-tags=CUSTOM_TAG \
    --source-tags=CUSTOM_TAG \
    --priority=PRIORITY_NUM \
    --rules tcp:12345-12346

Ganti kode berikut:

  • FIREWALL_RULE_NAME_INGRESS: nama untuk aturan firewall

  • NETWORK: nama jaringan yang digunakan VM pekerja

  • CUSTOM_TAG: daftar tag jaringan yang dipisahkan koma

    Berikut adalah daftar pedoman untuk menggunakan tag jaringan:

    • Jika Anda tidak menyertakan --target-tags, aturan akan berlaku untuk semua VM dalam jaringan VPC.

    • Jika Anda menghilangkan --source-tags dan semua spesifikasi sumber lainnya, traffic dari sumber mana pun diizinkan.

    • Jika Anda belum menentukan tag jaringan kustom dan ingin aturan khusus untuk VM Dataflow, gunakan dataflow sebagai tag jaringan.

    • Jika Anda telah menentukan tag jaringan kustom dan ingin aturan tersebut khusus untuk VM Dataflow, gunakan tag jaringan kustom Anda.

  • PRIORITY_NUM: prioritas aturan firewall

    Angka yang lebih rendah memiliki prioritas yang lebih tinggi, dan 0 adalah prioritas tertinggi.

Contoh aturan keluar firewall

Aturan firewall keluar mengizinkan VM Dataflow mengirim paket satu sama lain. Jika Anda telah membuat aturan firewall tolak keluar, Anda mungkin perlu membuat aturan firewall izinkan keluar kustom di jaringan VPC Anda.

Dalam contoh ini, aturan keluar firewall dibuat untuk Dataflow, dengan semua VM pekerja memiliki tag jaringan default dataflow. Pemilik, editor, atau administrator keamanan project dapat menggunakan perintah gcloud berikut untuk membuat aturan izinkan keluar yang mengizinkan traffic dari port TCP 12345 dan 12346 di VM dengan tag jaringan dataflow ke VM lain dengan tag yang sama:

gcloud compute firewall-rules create FIREWALL_RULE_NAME_EGRESS \
    --network=NETWORK \
    --action=allow \
    --direction=egress \
    --target-tags=CUSTOM_TAG \
    --source-tags=CUSTOM_TAG \
    --destination-ranges=DESTINATION-RANGES\
    --priority=PRIORITY_NUM  \
    --rules tcp:12345-12346

Ganti kode berikut:

  • FIREWALL_RULE_NAME_EGRESS: nama untuk aturan firewall

  • NETWORK: nama jaringan yang digunakan VM pekerja

  • CUSTOM_TAG: daftar tag jaringan yang dipisahkan koma

    Berikut adalah daftar pedoman untuk menggunakan tag jaringan:

    • Jika Anda tidak menyertakan --target-tags, aturan akan berlaku untuk semua VM dalam jaringan VPC.

    • Jika Anda menghilangkan --source-tags dan semua spesifikasi sumber lainnya, traffic dari sumber mana pun diizinkan.

    • Jika Anda belum menentukan tag jaringan kustom dan ingin aturan khusus untuk VM Dataflow, gunakan dataflow sebagai tag jaringan.

    • Jika Anda telah menentukan tag jaringan kustom dan ingin aturan tersebut khusus untuk VM Dataflow, gunakan tag jaringan kustom Anda.

  • DESTINATION-RANGES: daftar CIDR yang dipisahkan koma

    Sertakan rentang alamat IP utama subnetwork yang dipilih.

  • PRIORITY_NUM: prioritas aturan firewall

    Angka yang lebih rendah memiliki prioritas yang lebih tinggi, dan 0 adalah prioritas tertinggi.

Untuk port TCP tertentu yang digunakan oleh Dataflow, Anda dapat melihat manifes container project. Manifes container secara eksplisit menentukan port untuk memetakan port host ke dalam container.

Akses SSH ke VM pekerja

Dataflow tidak memerlukan SSH; namun, SSH berguna untuk memecahkan masalah.

Jika VM pekerja Anda memiliki alamat IP eksternal, Anda dapat terhubung ke VM melalui konsol Google Cloud atau menggunakan Google Cloud CLI. Untuk terhubung menggunakan SSH, Anda harus memiliki aturan firewall yang mengizinkan koneksi masuk di port TCP 22 dari setidaknya alamat IP sistem tempat Anda menjalankan gcloud atau sistem yang menjalankan browser web yang Anda gunakan untuk mengakses konsolGoogle Cloud .

Anda dapat melihat konfigurasi dan aktivitas jaringan dengan membuka sesi SSH di salah satu pekerja dan menjalankan iproute2. Untuk mengetahui informasi selengkapnya, lihat halaman iproute2 di wiki Linux Foundation.

Jika Anda perlu terhubung ke VM pekerja yang hanya memiliki alamat IP internal, lihat Memilih opsi koneksi untuk VM khusus internal.

Langkah berikutnya