Cloud Composer 1 | Cloud Composer 2
Kontrol Layanan VPC memungkinkan organisasi untuk 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 menggunakan Kontrol Layanan VPC, Anda dapat menjaga privasi data sensitif sekaligus memanfaatkan kemampuan orkestrasi alur kerja yang terkelola sepenuhnya dari Cloud Composer.
Dukungan Kontrol Layanan VPC untuk Cloud Composer berarti:
- Cloud Composer kini dapat dipilih sebagai layanan yang 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.
Dengan men-deploy lingkungan Cloud Composer dengan Kontrol Layanan VPC, Anda akan mendapatkan:
- Mengurangi risiko pemindahan data yang tidak sah.
- Perlindungan terhadap eksposur data karena kontrol akses yang salah dikonfigurasi.
- Pengurangan risiko pengguna berbahaya 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, akses ke server web dilindungi oleh perimeter dan akses dari luar perimeter diblokir.
Untuk mengizinkan akses dari luar perimeter layanan, konfigurasikan tingkat akses dengan tepat.
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-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 akan gagal membuat:
- 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 Build API (cloudbuild.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Security Token Service API (sts.googleapis.com)
- 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 rahasia
Buat lingkungan Cloud Composer baru dengan IP Pribadi yang telah diaktifkan. Perhatikan bahwa setelan ini harus dikonfigurasi selama pembuatan lingkungan.
Secara default, akses ke UI dan API Airflow hanya diizinkan dari dalam perimeter keamanan. Jika Anda ingin menyediakannya di luar perimeter keamanan, konfigurasikan level akses dengan tepat, seperti yang dijelaskan dalam Mengizinkan akses ke resource yang dilindungi dari luar perimeter.
Mengonfigurasi lingkungan yang ada dengan Kontrol Layanan VPC
Anda dapat menambahkan project yang berisi lingkungan Anda ke perimeter jika:
Anda membuat perimeter seperti yang dijelaskan di bagian sebelumnya
Lingkungan Anda adalah lingkungan IP Pribadi.
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 pribadi jaringan VPC. Konfigurasi yang direkomendasikan untuk proses ini adalah menyiapkan repositori PyPI pribadi, mengisinya dengan paket terverifikasi yang digunakan oleh organisasi Anda, lalu mengonfigurasi Cloud Composer untuk menginstal dependensi Python dari repositori pribadi.
Anda juga dapat menginstal paket PyPI dari repositori di luar ruang IP pribadi. Ikuti langkah-langkah berikut:
- Konfigurasikan Cloud NAT agar Cloud Composer berjalan di ruang IP pribadi untuk terhubung dengan repositori PyPI eksternal.
- Konfigurasikan aturan firewall Anda untuk mengizinkan koneksi keluar dari cluster Composer ke repositori.
Saat menggunakan penyiapan ini, pastikan Anda memahami risiko menggunakan repositori eksternal. Pastikan Anda memercayai konten dan integritas repositori eksternal mana pun, karena koneksi ini berpotensi digunakan sebagai vektor yang tidak sah.
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.*.composer.cloud.google.com
digunakan untuk membuat server web Airflow lingkungan Anda dapat diakses. Aturan ini harus diterapkan sebelum Anda membuat lingkungan.- Sebagai alternatif, Anda dapat membuat aturan untuk region tertentu. Untuk melakukannya,
gunakan
REGION.composer.cloud.google.com
. GantiREGION
dengan region tempat lingkungan berada, misalnya,us-central1
.
- Sebagai alternatif, Anda dapat membuat aturan untuk region tertentu. Untuk melakukannya,
gunakan
(Opsional)
*.composer.googleusercontent.com
digunakan saat mengakses server web Airflow lingkungan Anda. Aturan ini hanya diperlukan jika Anda mengakses server web Airflow dari instance yang berjalan di jaringan VPC dan tidak diperlukan jika tidak. Skenario umum untuk aturan ini adalah saat Anda ingin memanggil Airflow REST API dari dalam jaringan VPC.- Sebagai alternatif, Anda dapat membuat aturan untuk lingkungan tertentu. Untuk
melakukannya, gunakan
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
. GantiENVIRONMENT_WEB_SERVER_NAME
dengan bagian unik dari URL UI Airflow lingkungan Anda, misalnya,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
.
- Sebagai alternatif, Anda dapat membuat aturan untuk lingkungan tertentu. Untuk
melakukannya, gunakan
*.pkg.dev
digunakan untuk mendapatkan gambar 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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
Nama DNS: *.composer.cloud.google.com. Jenis data resource: CNAME Nama kanonis: composer.cloud.google.com. |
Jenis data resource: A Alamat IPv4: 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
*.composer.googleusercontent.com
(opsional, lihat deskripsi) |
composer.googleusercontent.com. |
Nama DNS: *.composer.googleusercontent.com. Jenis data resource: CNAME Nama kanonis: composer.googleusercontent.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 DNS name sebagai nama DNS zona ini.
Contoh:
pkg.dev.
Menambahkan kumpulan data untuk Data CNAME.
Contoh:
- Nama DNS:
*.pkg.dev.
- Jenis data resource:
CNAME
- Nama kanonis:
pkg.dev.
- Nama DNS:
Menambahkan 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 Google.
Mengonfigurasi aturan firewall
Jika project Anda memiliki aturan firewall non-default, seperti aturan yang menggantikan aturan firewall tersirat, atau mengubah aturan yang telah diisi sebelumnya di jaringan default, pastikan 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.
Konfigurasikan 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 Lakukan konfigurasi seperti yang dijelaskan dalam dukungan Kontrol Layanan VPC untuk Cloud DNS |
- | - | - | - | - |
Google API dan layanan Google | Traffic Keluar | Izinkan | Alamat IPv4 restricted.googleapis.com yang Anda gunakan untuk API dan layanan Google. |
TCP | 443 |
Node cluster Lingkungan | Traffic Keluar | Izinkan | Rentang alamat IP utama subnetwork lingkungan | TCP, UDP | semua |
Pod cluster Lingkungan | Traffic Keluar | Izinkan | Rentang alamat IP sekunder untuk Pod di subnetwork lingkungan | TCP, UDP | semua |
Bidang Kontrol cluster Lingkungan | Traffic Keluar | Izinkan | Rentang IP Bidang Kontrol GKE | TCP, UDP | semua |
(Jika lingkungan Anda menggunakan Private Service Connect) Subnetwork koneksi | Traffic Keluar | Izinkan | Rentang subnetwork koneksi Cloud Composer | TCP | 3306, 3307 |
(Jika lingkungan Anda menggunakan peering VPC) Jaringan tenant | Traffic Keluar | Izinkan | Rentang IP jaringan tenant Cloud Composer | TCP | 3306, 3307 |
Untuk mendapatkan rentang IP:
Rentang alamat IP Pod, Service, dan Bidang Kontrol tersedia di halaman Clusters di cluster lingkungan Anda:
Di konsol Google Cloud, buka halaman Environments.
Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.
Buka tab Konfigurasi lingkungan.
Ikuti link lihat detail cluster.
Anda dapat melihat rentang IP jaringan tenant Cloud Composer lingkungan di tab Environment configuration.
Anda dapat melihat ID subnetwork lingkungan dan ID subnetwork koneksi Cloud Composer di tab Environment configuration. Guna mendapatkan rentang IP untuk subnetwork, buka halaman Jaringan VPC dan klik nama jaringan untuk melihat detailnya:
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 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
, yang juga disebut Composer Service Agent Service Account
, mengelola komponen lingkungan dalam 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.
- 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.