Mengonfigurasi batasan lokasi resource

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menunjukkan cara mengonfigurasi batasan lokasi resource untuk memastikan bahwa data Anda yang disimpan oleh Cloud Composer disimpan dalam lokasi yang Anda tentukan.

Cara kerja pembatasan lokasi

Batasan lokasi untuk Cloud Composer ditentukan berdasarkan kebijakan organisasi yang diterapkan ke project tempat lingkungan Cloud Composer dibuat. Kebijakan ini ditetapkan dalam project atau diwarisi dari organisasi.

Dengan pembatasan lokasi yang diaktifkan, Anda tidak dapat membuat lingkungan di wilayah yang dilarang oleh kebijakan. Jika suatu 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 wilayah, bukan zona tertentu dalam wilayah ini. Misalnya, region europe-west3 harus diizinkan oleh kebijakan untuk membuat lingkungan Cloud Composer di region ini.

Cloud Composer memeriksa batasan lokasi di:

  • Pembuatan lingkungan.
  • Upgrade lingkungan, jika ada resource tambahan yang dibuat selama operasi.
  • Pembaruan lingkungan, untuk lingkungan lama yang tidak menerapkan pembatasan lokasi pada dependensi Cloud Composer.

Selain memeriksa batasan lokasi, Cloud Composer melakukan hal berikut:

  • Menyimpan image Airflow yang disesuaikan pengguna di repositori Artifact Registry regional.
  • Jika multi-region US secara eksplisit dilarang oleh kebijakan, penggunaan Cloud Build akan dinonaktifkan. Dalam hal ini, image Airflow yang disesuaikan pengguna akan di-build di cluster GKE Anda.

Menginstal dependensi Python ke lingkungan IP pribadi dengan batasan lokasi resource

Jika Anda menetapkan batasan lokasi resource untuk project, Cloud Build tidak dapat digunakan untuk menginstal paket Python. Akibatnya, akses langsung ke repositori di internet publik 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.conf di bucket Cloud Storage.

  • Jika kebijakan keamanan Anda mengizinkan akses ke jaringan VPC dari alamat IP eksternal, Anda dapat mengonfigurasi Cloud NAT.

  • Simpan dependensi Python di folder dags di bucket Cloud Storage untuk menginstalnya sebagai library lokal. Hal ini mungkin bukan opsi yang baik jika hierarki dependensi besar.

Membatasi lokasi untuk log Cloud Composer

Jika log Cloud Composer Anda berisi data sensitif, sebaiknya alihkan log Cloud Composer ke bucket Cloud Storage regional. Untuk melakukannya, gunakan log sink. Setelah Anda mengalihkan log ke bucket Cloud Storage, log Anda tidak akan dikirim ke Cloud Logging.

gcloud

  1. Buat bucket Cloud Storage baru.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
    

    Ganti:

    • LOCATION dengan region tempat lingkungan tersebut berada.
    • BUCKET_NAME dengan nama bucket. Contoh, composer-logs-us-central1-example-environment.
  2. Buat log sink 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_NAME dengan nama lingkungan.
    • BUCKET_NAME dengan nama bucket.
    • LOCATION dengan region tempat lingkungan tersebut berada.
  3. 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." \
    --role='roles/storage.objectCreator' \
    --condition=None
    

    Ganti:

    • PROJECT_ID dengan Project ID.
    • SA_NUMBER dengan nomor akun layanan yang disediakan oleh perintah gcloud logging sinks create pada langkah sebelumnya.
  4. Kecualikan log untuk lingkungan Anda dari Pemantauan.

    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_NAME dengan nama lingkungan.
    • LOCATION dengan region tempat lingkungan tersebut berada.

Langkah selanjutnya