Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Kontrol Layanan VPC memungkinkan organisasi menentukan perimeter di sekitar resource Google Cloud untuk memitigasi risiko pemindahan data yang tidak sah.
Lingkungan Cloud Composer dapat di-deploy dalam perimeter layanan. Dengan mengonfigurasi lingkungan Anda dengan Kontrol Layanan VPC, Anda dapat menjaga kerahasiaan data sensitif sekaligus 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 aman di 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 yang menyalin data ke resource Google Cloud yang tidak sah, atau penyerang eksternal yang mengakses resource Google Cloud dari internet.
Server web Airflow dalam mode Kontrol Layanan VPC
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:
Serialisasi DAG diaktifkan. Akibatnya, server web Airflow tidak mengurai file definisi DAG.
Plugin tidak disinkronkan ke server web, sehingga Anda tidak dapat mengubah atau memperluas fungsi 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, image ini tidak diinstal di image penampung server web.
Membuat perimeter layanan
Lihat Membuat perimeter layanan untuk mempelajari cara membuat dan mengonfigurasi perimeter layanan. Pastikan untuk memilih Cloud Composer sebagai salah satu layanan yang diamankan dalam perimeter.
Membuat lingkungan dalam perimeter
Ada langkah tambahan yang diperlukan untuk men-deploy Cloud Composer di dalam perimeter. Saat membuat lingkungan Cloud Composer:
Aktifkan Access Context Manager API dan Cloud Composer API untuk project Anda. Lihat Mengaktifkan API untuk referensi.
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
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.
Buat lingkungan Cloud Composer baru dengan IP Pribadi yang diaktifkan. Perhatikan bahwa setelan ini harus dikonfigurasi selama pembuatan lingkungan.
Saat membuat lingkungan, jangan lupa untuk mengonfigurasi akses ke server web Airflow. Untuk perlindungan maksimum, hanya izinkan akses ke server web dari rentang IP tertentu. Untuk mengetahui detailnya, lihat Mengonfigurasi akses jaringan server web.
Mengonfigurasi lingkungan yang ada dengan Kontrol Layanan VPC
Anda dapat menambahkan project yang berisi lingkungan ke perimeter jika:
Anda telah membuat perimeter seperti yang dijelaskan di bagian sebelumnya.
Lingkungan Anda adalah lingkungan IP Pribadi.
- Lingkungan Anda telah mengaktifkan serialisasi DAG.
Menginstal paket PyPI
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, mengisinya dengan paket yang telah diseleksi dan digunakan oleh organisasi Anda, lalu mengonfigurasi Cloud Composer untuk menginstal dependensi Python dari repositori pribadi.
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:
- Buat repositori jarak jauh Artifact Registry.
- Berikan akses ke sumber upstream ke repositori ini.
- Konfigurasikan Airflow untuk menginstal paket dari repositori Artifact Registry.
Sambungan eksternal
Untuk menginstal paket PyPI dari repositori di luar ruang IP pribadi, ikuti langkah-langkah berikut:
Konfigurasikan Cloud NAT untuk mengizinkan Cloud Composer yang berjalan di ruang IP pribadi terhubung dengan repositori PyPI eksternal.
Konfigurasikan aturan firewall untuk mengizinkan koneksi keluar dari cluster Composer ke repositori.
Akun layanan yang digunakan untuk platform data Cloud Composer
harus memiliki peran izin berikut: Composer.Worker
dan
iam.serviceAccountUser
.
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 Google 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 data 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 data 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 data resource: A Alamat IPv4: 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
Untuk membuat aturan DNS:
Buat zona DNS baru dan gunakan nama DNS sebagai nama DNS zona ini.
Contoh:
pkg.dev.
Tambahkan kumpulan data untuk Data CNAME.
Contoh:
- Nama DNS:
*.pkg.dev.
- Jenis data resource:
CNAME
- Nama kanonis:
pkg.dev.
- Nama DNS:
Tambahkan kumpulan data dengan untuk 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
- Jenis data resource:
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan konektivitas pribadi ke Google API dan layanan.
Mengonfigurasi aturan firewall
Jika project Anda memiliki aturan firewall non-default, seperti aturan yang mengganti aturan firewall tersirat, atau mengubah aturan yang sudah terisi otomatis di jaringan default, pastikan 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 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. |
TCP | 443 |
Node cluster Lingkungan | Keluar | Izinkan | Rentang alamat IP utama 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:
Rentang alamat Pod, Layanan, dan Bidang Kontrol tersedia di halaman Cluster di cluster lingkungan Anda:
Di konsol Google Cloud, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Konfigurasi lingkungan.
Ikuti link lihat detail cluster.
Anda dapat melihat rentang IP server web lingkungan di tab Environment configuration.
Anda dapat melihat ID jaringan lingkungan di tab Konfigurasi lingkungan. Untuk mendapatkan rentang IP untuk subjaringan, buka halaman VPC Networks, lalu klik nama jaringan untuk melihat detailnya:
Log Kontrol Layanan VPC
Saat memecahkan masalah pembuatan lingkungan, Anda dapat menganalisis log audit yang dihasilkan oleh Kontrol Layanan VPC.
Selain pesan log lainnya, Anda dapat memeriksa log untuk mengetahui 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 di lingkungan Anda.
Akun layanan
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
,
juga dikenal sebagai Composer Service Agent Service Account
, mengelola
komponen lingkungan di
project layanan dan host.
Batasan
- 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
keTrue
tidak didukung saat serialisasi DAG diaktifkan.Mengaktifkan serialisasi DAG akan menonaktifkan semua plugin server web Airflow, karena dapat mempertaruhkan keamanan jaringan VPC tempat Cloud Composer di-deploy. Hal ini tidak memengaruhi perilaku plugin penjadwal atau pekerja, termasuk operator Airflow, sensor, dll.
- Saat Cloud Composer berjalan di dalam perimeter, akses ke repositori PyPI publik akan dibatasi. Lihat Menginstal dependensi Python untuk mempelajari cara menginstal modul PyPI dalam mode IP Pribadi.