Mengonfigurasi Kontrol Layanan VPC

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Kontrol Layanan VPC memungkinkan organisasi menentukan perimeter di seputar resourceGoogle Cloud untuk mengurangi risiko pemindahan data yang tidak sah.

Lingkungan Cloud Composer dapat di-deploy dalam perimeter layanan. Dengan mengonfigurasi lingkungan Anda menggunakan Kontrol Layanan VPC, Anda dapat menjaga privasi data sensitif sambil memanfaatkan kemampuan orkestrasi alur kerja yang terkelola sepenuhnya di Cloud Composer.

Dukungan Kontrol Layanan VPC untuk Cloud Composer berarti:

  • Cloud Composer kini dapat dipilih sebagai layanan yang diamankan dalam perimeter Kontrol Layanan VPC.
  • Semua resource pokok yang digunakan oleh Cloud Composer dikonfigurasi untuk mendukung arsitektur Kontrol Layanan VPC dan mengikuti aturannya.

Men-deploy lingkungan Cloud Composer dengan Kontrol Layanan VPC memberi Anda:

  • Mengurangi risiko pemindahan data yang tidak sah.
  • Perlindungan terhadap eksposur data karena kontrol akses yang salah dikonfigurasi.
  • Mengurangi risiko pengguna berbahaya menyalin data ke resource yang tidak sah, atau penyerang eksternal mengakses resource dari internet.Google Cloud Google Cloud

Tentang Kontrol Layanan VPC di Cloud Composer

  • Semua batasan jaringan Kontrol Layanan VPC juga berlaku untuk lingkungan Cloud Composer Anda. Lihat dokumentasi Kontrol Layanan VPC untuk mengetahui detailnya.
  • Menampilkan template yang dirender dengan fungsi di UI web dengan serialisasi DAG yang diaktifkan didukung untuk lingkungan yang menjalankan Cloud Composer versi 1.12.0 atau yang lebih baru dan Airflow versi 1.10.9 atau yang lebih baru.

  • Menetapkan tanda async_dagbag_loader ke True tidak didukung saat serialisasi DAG diaktifkan.

  • Mengaktifkan serialisasi DAG akan menonaktifkan semua plugin server web Airflow, karena plugin tersebut dapat membahayakan keamanan jaringan VPC tempat Cloud Composer di-deploy. Hal ini tidak memengaruhi perilaku plugin penjadwal atau pekerja, termasuk operator dan sensor Airflow.

  • Jika lingkungan Cloud Composer dilindungi oleh perimeter, akses ke repositori PyPI publik dibatasi. Lihat Menginstal paket PyPI di Kontrol Layanan VPC untuk mengetahui informasi selengkapnya.

  • Jika lingkungan Anda menggunakan jaringan IP Pribadi, semua traffic internal dirutekan ke jaringan VPC Anda, kecuali traffic ke API, layanan, dan domain Google yang tersedia untuk lingkungan IP Pribadi melalui Akses Google Pribadi.

  • Bergantung pada cara Anda mengonfigurasi jaringan VPC, lingkungan IP Pribadi dapat memperoleh akses ke internet melalui jaringan VPC Anda.

  • Dalam mode Kontrol Layanan VPC, Cloud Composer menjalankan dua instance server web Airflow. Identity-Aware Proxy melakukan load balancing traffic pengguna di antara instance ini. Server web Airflow berjalan dalam mode "hanya baca", yang berarti:

    • DAG Serialization diaktifkan. Akibatnya, server web Airflow tidak mengurai file DAG.

    • Plugin tidak disinkronkan ke server web, sehingga Anda tidak dapat mengubah atau memperluas kemampuan server web dengan plugin.

    • Server web Airflow menggunakan image container yang telah dibuat sebelumnya oleh layanan Cloud Composer. Jika Anda menginstal image PyPI di lingkungan Anda, image ini tidak diinstal di image container server web.

Membuat lingkungan dalam perimeter

Langkah-langkah berikut diperlukan untuk men-deploy Cloud Composer di dalam perimeter:

  1. Aktifkan Access Context Manager API dan Cloud Composer API untuk project Anda. Lihat Mengaktifkan API sebagai referensi.

  2. Pastikan perimeter layanan Anda memiliki layanan yang dapat diakses VPC berikut, jika tidak, lingkungan Anda mungkin gagal dibuat:

    • Cloud Composer API (composer.googleapis.com)
    • Compute Engine API (compute.googleapis.com)
    • Kubernetes Engine API (container.googleapis.com)
    • Container Registry API (containerregistry.googleapis.com)
    • Artifact Registry API (artifactregistry.googleapis.com)
    • Cloud Storage API (storage.googleapis.com)
    • Cloud SQL Admin API (sqladmin.googleapis.com)
    • Cloud Logging API (logging.googleapis.com)
    • Cloud Monitoring API (monitoring.googleapis.com)
    • Cloud Pub/Sub API (pubsub.googleapis.com)
    • Cloud Cloud Resource Manager API (cloudresourcemanager.googleapis.com)
    • Service Directory API (servicedirectory.googleapis.com)
    • Cloud Key Management Service API (cloudkms.googleapis.com), jika Anda menggunakan kunci Cloud KMS atau CMEK.
    • Secret Manager API (secretmanager.googleapis.com), jika Anda menggunakan Secret Manager sebagai backend secret.
  3. Buat lingkungan Cloud Composer baru dengan mengaktifkan IP Pribadi. Perhatikan bahwa setelan ini harus dikonfigurasi selama pembuatan lingkungan.

    • Gunakan versi composer-1.10.4 atau yang lebih baru.

    • Pastikan serialisasi DAG diaktifkan. Jika lingkungan Anda menggunakan Cloud Composer versi 1.15.0 dan yang lebih baru, serialisasi diaktifkan secara default.

    • Saat membuat lingkungan, jangan lupa untuk mengonfigurasi akses ke server web Airflow. Untuk meningkatkan perlindungan, izinkan akses ke server web hanya dari rentang IP tertentu. Untuk mengetahui detailnya, lihat Mengonfigurasi akses jaringan server web.

Menambahkan lingkungan yang ada ke perimeter

Menginstal paket PyPI di Kontrol Layanan VPC

Dalam konfigurasi Kontrol Layanan VPC default, Cloud Composer hanya mendukung penginstalan paket PyPI dari repositori pribadi yang dapat dijangkau dari ruang alamat IP internal jaringan VPC.

Menginstal dari repositori pribadi

Konfigurasi yang direkomendasikan adalah menyiapkan repositori PyPI pribadi:

  1. Isi dengan paket yang telah diseleksi dan digunakan oleh organisasi Anda, lalu konfigurasi Cloud Composer untuk menginstal dependensi Python dari repositori pribadi.

  2. Berikan izin tambahan untuk menginstal paket dari repositori pribadi ke akun layanan lingkungan Anda, seperti yang dijelaskan dalam Kontrol akses.

Menginstal dari repositori publik

Repositori jarak jauh

Ini adalah pendekatan yang direkomendasikan untuk menginstal paket dari repositori publik.

Untuk menginstal paket PyPI dari repositori di luar ruang IP pribadi, ikuti langkah-langkah berikut:

  1. Buat repositori jarak jauh Artifact Registry.
  2. Berikan akses ke sumber upstream untuk repositori ini.
  3. Konfigurasi Airflow untuk menginstal paket dari repositori Artifact Registry.
  4. Berikan izin tambahan untuk menginstal paket dari repositori Artifact Registry ke akun layanan lingkungan Anda, seperti yang dijelaskan dalam Kontrol akses.

Sambungan eksternal

Untuk menginstal paket PyPI dari repositori di luar ruang IP pribadi, ikuti langkah-langkah berikut:

  1. Konfigurasi Cloud NAT untuk mengizinkan Cloud Composer yang berjalan di ruang IP pribadi terhubung dengan repositori PyPI eksternal.

  2. Konfigurasi aturan firewall Anda untuk mengizinkan koneksi keluar dari cluster Composer ke repositori.

Mengonfigurasi konektivitas ke Google API dan layanan Google

Dalam konfigurasi Kontrol Layanan VPC, untuk mengontrol traffic jaringan, konfigurasikan akses ke Google API dan layanan Google melalui restricted.googleapis.com. Domain ini memblokir akses ke Google API dan layanan yang tidak mendukung Kontrol Layanan VPC.

Lingkungan Cloud Composer menggunakan domain berikut:

  • *.googleapis.com digunakan untuk mengakses layanan Google lainnya.

  • *.pkg.dev digunakan untuk mendapatkan image lingkungan, seperti saat membuat atau memperbarui lingkungan.

  • *.gcr.io GKE memerlukan konektivitas ke domain Container Registry, terlepas dari versi Cloud Composer.

Konfigurasi konektivitas ke endpoint restricted.googleapis.com:

Domain Nama DNS Data CNAME Data A
*.googleapis.com googleapis.com. Nama DNS: *.googleapis.com.
Jenis data resource: CNAME
Nama kanonis: googleapis.com.
Jenis catatan resource: A
Alamat IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.pkg.dev pkg.dev. Nama DNS: *.pkg.dev.
Jenis data resource: CNAME
Nama kanonis: pkg.dev.
Jenis catatan resource: A
Alamat IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.gcr.io gcr.io. Nama DNS: *.gcr.io.
Jenis data resource: CNAME
Nama kanonis: gcr.io.
Jenis catatan resource: A
Alamat IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Untuk membuat aturan DNS:

  1. Buat zona DNS baru dan gunakan nama DNS sebagai nama DNS zona ini.

    Contoh: pkg.dev.

  2. Tambahkan set data untuk CNAME Record.

    Contoh:

    • Nama DNS: *.pkg.dev.
    • Jenis data resource: CNAME
    • Nama kanonis: pkg.dev.
  3. Tambahkan kumpulan data dengan Data A:

    Contoh:

    • Jenis data resource: A
    • Alamat IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Untuk mengetahui informasi selengkapnya, lihat Menyiapkan konektivitas pribadi ke Google API dan layanan Google.

Mengonfigurasi aturan firewall

Jika project Anda memiliki aturan firewall non-default, seperti aturan yang menggantikan aturan firewall tersirat, atau mengubah aturan yang sudah terisi otomatis di jaringan default, verifikasi bahwa aturan firewall berikut telah dikonfigurasi.

Misalnya, Cloud Composer mungkin gagal membuat lingkungan jika Anda memiliki aturan firewall yang menolak semua traffic keluar. Untuk menghindari masalah, tentukan aturan allow selektif yang mengikuti daftar dan memiliki prioritas yang lebih tinggi daripada aturan deny global.

Konfigurasi jaringan VPC Anda untuk mengizinkan traffic dari lingkungan Anda:

  • Lihat Menggunakan aturan firewall untuk mempelajari cara memeriksa, menambahkan, dan memperbarui aturan untuk jaringan VPC Anda.
  • Gunakan Alat Konektivitas untuk memvalidasi konektivitas antar-rentang IP.
  • Anda dapat menggunakan tag jaringan untuk membatasi akses lebih lanjut. Anda dapat menetapkan tag ini saat membuat lingkungan.
Deskripsi Arah Tindakan Sumber atau Tujuan Protokol Port
DNS

Konfigurasi seperti yang dijelaskan dalam Dukungan Kontrol Layanan VPC untuk Cloud DNS
- - - - -
Google API dan layanan Keluar Izinkan Alamat IPv4 restricted.googleapis.com yang Anda gunakan untuk Google API dan layanan Google. TCP 443
Node cluster Lingkungan Keluar Izinkan Rentang alamat IP primer subnetwork lingkungan TCP, UDP semua
Pod cluster lingkungan Keluar Izinkan Rentang alamat IP sekunder untuk Pod di subnetwork lingkungan TCP, UDP semua
Bidang Kontrol cluster lingkungan Keluar Izinkan Rentang IP Bidang Kontrol GKE TCP, UDP semua
Server web Keluar Izinkan Rentang IP jaringan server web TCP 3306, 3307

Untuk mendapatkan rentang IP cluster lingkungan:

  • Rentang alamat Pod, Layanan, dan Bidang Kontrol tersedia di halaman Cluster pada cluster lingkungan Anda:

    1. Di konsol Google Cloud , buka halaman Environments.

      Buka Lingkungan

    2. Dalam daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

    3. Buka tab Konfigurasi lingkungan.

    4. Ikuti link lihat detail cluster.

  • Anda dapat melihat rentang IP server web lingkungan di tab Konfigurasi lingkungan.

  • Anda dapat melihat ID jaringan lingkungan di tab Konfigurasi lingkungan. Untuk mendapatkan rentang IP untuk subnetwork, buka halaman VPC Networks dan klik nama jaringan untuk melihat detail:

    Buka Jaringan VPC

Log Kontrol Layanan VPC

Saat memecahkan masalah pembuatan lingkungan, Anda dapat menganalisis log audit yang dibuat oleh Kontrol Layanan VPC.

Selain pesan log lainnya, Anda dapat memeriksa log untuk mendapatkan informasi tentang akun layanan cloud-airflow-prod@system.gserviceaccount.com dan service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com yang mengonfigurasi komponen lingkungan Anda.

Layanan Cloud Composer menggunakan akun layanan cloud-airflow-prod@system.gserviceaccount.com untuk mengelola komponen project tenant lingkungan Anda.

Akun layanan service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, yang juga dikenal sebagai Akun Layanan Agen Layanan Composer, mengelola komponen lingkungan di project layanan dan host.

Langkah berikutnya