Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Gen 1 Lama)
Halaman ini menunjukkan cara mengonfigurasi batasan lokasi resource sehingga data yang disimpan oleh Managed Airflow tetap berada dalam lokasi yang Anda tentukan.
Cara kerja batasan lokasi
Batasan lokasi untuk Managed Airflow ditentukan berdasarkan kebijakan organisasi yang diterapkan ke project tempat lingkungan Managed Airflow dibuat. Kebijakan ini ditetapkan dalam project atau diwarisi dari organisasi.
Dengan batasan lokasi yang diaktifkan, Anda tidak dapat membuat lingkungan di region yang dilarang oleh kebijakan. Jika region tercantum dalam Daftar tolak, atau tidak tercantum dalam Daftar izinkan, Anda tidak dapat membuat lingkungan di region ini.
Untuk mengaktifkan pembuatan lingkungan, kebijakan harus mengizinkan seluruh region, bukan zona tertentu dalam region ini. Misalnya, region europe-west3 harus diizinkan oleh kebijakan agar dapat membuat lingkungan Managed Airflow di region ini.
Managed Airflow memeriksa batasan lokasi di:
- Pembuatan lingkungan.
- Upgrade lingkungan, jika ada resource tambahan yang dibuat selama operasi.
- Pembaruan lingkungan, untuk lingkungan lama yang tidak menerapkan batasan lokasi pada dependensi Managed Airflow.
Selain memeriksa batasan lokasi, Managed Airflow melakukan hal berikut:
- Menyimpan image Airflow yang disesuaikan pengguna di repositori Artifact Registry regional. Sebagai contoh, image tersebut dibuat saat Anda menginstal image PyPI kustom di lingkungan Anda.
- Jika multi-region
USdilarang secara eksplisit oleh kebijakan, penggunaan Cloud Build akan dinonaktifkan. Dalam hal ini, image Airflow yang disesuaikan pengguna akan di-build di cluster lingkungan Anda.
Menginstal dependensi Python ke lingkungan IP pribadi dengan batasan lokasi resource
Jika Anda menetapkan batasan lokasi resource untuk project Anda, Cloud Build tidak dapat digunakan untuk menginstal paket Python. Akibatnya, akses langsung ke repositori di internet publik akan dinonaktifkan.
Untuk menginstal dependensi Python di lingkungan IP Pribadi saat batasan
lokasi Anda tidak mengizinkan multi-region US, gunakan
salah satu opsi berikut:
Gunakan repositori PyPI pribadi yang dihosting di jaringan VPC Anda.
Gunakan server proxy di jaringan VPC Anda untuk terhubung ke repositori PyPI di internet publik. Tentukan alamat proxy dalam file
/config/pip/pip.confdi bucket Cloud Storage.Jika kebijakan keamanan Anda mengizinkan akses ke jaringan VPC Anda dari alamat IP eksternal, Anda dapat mengonfigurasi Cloud NAT.
Simpan dependensi Python di folder
dagsdi bucket Cloud Storage, untuk menginstalnya sebagai library lokal. Opsi ini mungkin bukan pilihan yang baik jika pohon dependensi besar.
Membatasi lokasi untuk log Managed Airflow
Jika log Managed Airflow Anda berisi data sensitif, Anda mungkin ingin mengalihkan log Managed Airflow ke bucket Cloud Storage regional. Untuk melakukannya, gunakan sink log. Setelah Anda mengalihkan log ke bucket Cloud Storage, log Anda tidak akan dikirim ke Cloud Logging.
gcloud
Buat bucket Cloud Storage baru.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATIONGanti:
LOCATIONdengan region tempat lingkungan berada.BUCKET_NAMEdengan nama bucket. Misalnya,composer-logs-us-central1-example-environment.
Buat sink log baru.
gcloud logging sinks create \ composer-log-sink-ENVIRONMENT_NAME \ storage.googleapis.com/BUCKET_NAME \ --log-filter "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"Ganti:
ENVIRONMENT_NAMEdengan nama lingkungan.BUCKET_NAMEdengan nama bucket.LOCATIONdengan region tempat lingkungan berada.
Output perintah sebelumnya berisi nomor akun layanan. Berikan peran Storage Object Creator ke akun layanan ini:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \ --role='roles/storage.objectCreator' \ --condition=NoneGanti:
PROJECT_IDdengan ID Project.SA_NUMBERdengan nomor akun layanan yang diberikan oleh perintahgcloud logging sinks createpada langkah sebelumnya.
Kecualikan log untuk lingkungan Anda dari Logging.
gcloud logging sinks update _Default \ --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\ "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"Ganti:
ENVIRONMENT_NAMEdengan nama lingkungan.LOCATIONdengan region tempat lingkungan berada.