Cloud Build memungkinkan Anda menentukan kebijakan organisasi (constraints/cloudbuild.allowedIntegrations) untuk mengontrol layanan eksternal mana yang dapat memanggil pemicu build. Misalnya, jika pemicu Anda memproses perubahan pada repositori GitHub dan GitHub ditolak dalam kebijakan organisasi, pemicu Anda tidak akan berjalan. Anda dapat menentukan jumlah nilai yang diizinkan atau ditolak untuk organisasi atau project Anda.
Halaman ini menjelaskan cara menyiapkan kebijakan organisasi (constraints/cloudbuild.allowedIntegrations)
untuk integrasi menggunakan Google Cloud konsol
dan alat command line gcloud.
Sebelum Memulai
-
Aktifkan Cloud Build dan Organization Policy API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. Untuk menggunakan contoh command line dalam panduan ini, instal dan konfigurasi Google Cloud SDK.
Untuk menetapkan, mengubah, atau menghapus kebijakan organisasi, Anda harus memiliki peran Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin). Untuk mempelajari cara menambahkan peran ke akun Anda, lihat Menambahkan administrator kebijakan organisasi.
Menyiapkan kebijakan organisasi untuk integrasi yang diizinkan
Bagian ini menjelaskan cara menyiapkan kebijakan organisasi (constraints/cloudbuild.allowedIntegrations) untuk menentukan build untuk integrasi yang diizinkan.
Konsol
Buka halaman Organization policies di Google Cloud konsol.
Klik baris yang berisi kebijakan Allowed Integrations (Cloud Build).
Anda akan melihat halaman Policy details.
Untuk mengedit kebijakan, klik Edit.
Anda akan melihat halaman Edit policy.
Di bagian Applies to, pilih Customize untuk menetapkan definisi kebijakan Anda.
Di bagian Policy enforcement, pilih Replace untuk menentukan aturan Anda sendiri untuk kebijakan tersebut. Jika tidak, pilih Merge with parent untuk memastikan bahwa aturan di resource induk diterapkan ke setelan Anda. Untuk mempelajari lebih lanjut, lihat Memahami evaluasi hierarki.
Di bagian Rules, klik Add rule untuk menambahkan aturan baru untuk kebijakan Anda.
Di bagian Policy values, pilih Allow all untuk mengizinkan build dari semua layanan, pilih Deny all untuk menolak build dari semua layanan, atau pilih Custom untuk mengizinkan atau menolak build dari layanan tertentu.
Jika Anda memilih Custom sebagai nilai, selesaikan langkah-langkah berikut:
Di bagian Policy type, pilih Allow atau Deny.
Di bagian Custom values, masukkan URL host instance atau repositori yang ingin Anda izinkan atau tolak build-nya. Misalnya, untuk mengizinkan atau menolak build dari GitHub, masukkan URL Anda sebagai
github.comatauwww.github.com.Anda juga dapat memasukkan beberapa URL yang dipisahkan dengan spasi. Misalnya,
github.com ghe.staging-test.com.Berdasarkan peristiwa, URL host yang Anda tentukan adalah salah satu dari berikut ini:
- Peristiwa RepoSync: Host-nya adalah
source.developers.google.com. - Peristiwa aplikasi GitHub: Host-nya berasal dari kolom
repository.html_urldalam payload JSON Anda, yang selalugithub.com. - Peristiwa GitHub Enterprise: Host-nya berasal dari kolom
repository.html_urldalam payload JSON Anda. Misalnya,ghe.staging-test.com. - Peristiwa Pub/Sub: Host-nya berasal dari sumber yang ditentukan dalam pemicu Anda. Jika tidak ada sumber yang ditentukan dalam pemicu Anda, tidak ada pemeriksaan kebijakan organisasi.
- Peristiwa webhook: Host-nya berasal dari sumber yang ditentukan dalam pemicu Anda. Jika tidak ada sumber yang ditentukan dalam pemicu Anda, ada pemeriksaan kebijakan organisasi.
- Peristiwa RepoSync: Host-nya adalah
Untuk menyimpan aturan, klik Done.
Untuk menambahkan aturan lain, klik Add rule. Jika tidak, untuk menyimpan kebijakan Anda, klik Save.
gcloud
Buka jendela terminal.
Jika Anda ingin mengizinkan atau menolak build dari semua layanan, buat file YAML dengan konten berikut:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: trueDengan:
PROJECT_NUMBERadalah nomor project Anda.INHERITadalahtruejika Anda ingin aturan kebijakan diwarisi dari resource induk. Jika tidak,false.ALLOW_OR_DENYadalahallowAlljika Anda ingin mengizinkan build dari semua URL host. Jika tidak,denyAll.HOST_URLadalah URL host Anda. Misalnya,github.com. Anda juga dapat menentukan URL tambahan di baris berikut.
Jika Anda ingin mengizinkan atau menolak build dari layanan yang dipilih, buat file YAML dengan konten berikut:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...Dengan:
PROJECT_NUMBERadalah nomor project Anda.INHERITadalahtruejika Anda ingin aturan kebijakan diwarisi dari resource induk. Jika tidak,false.ALLOW_OR_DENYadalahallowedValuesjika Anda ingin menentukan URL host untuk mengizinkan build dari. Jika tidak,deniedValues.HOST_URLadalah URL host Anda. Misalnya,github.com. Anda juga dapat menentukan URL tambahan di baris berikut.
Tetapkan kebijakan organisasi Anda dengan menjalankan perintah berikut, dengan FILE_NAME adalah nama file YAML Anda:
gcloud org-policies set-policy FILE_NAMEUntuk mengonfirmasi bahwa kebijakan Anda telah ditetapkan, jalankan perintah berikut, dengan PROJECT_ID adalah ID project Anda:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
Menguji kebijakan organisasi untuk integrasi yang diizinkan
Bagian ini menjelaskan cara menguji kebijakan organisasi (constraints/cloudbuild.allowedIntegrations) menggunakan pemicu build.
Jika belum melakukannya, buat pemicu build.
Kirim perubahan ke sumber Anda.
Jika kebijakan Anda disiapkan untuk mengizinkan build dari sumber Anda, Anda akan dapat melihat eksekusi build dari pemicu Anda di halaman Build history. Jika tidak, build Anda tidak akan dieksekusi. Untuk melihat histori build yang dibatasi oleh definisi kebijakan Anda, lihat halaman Logs Explorer untuk alasan payload JSON dan alasan penolakan.
Langkah berikutnya
- Pelajari cara membuat dan mengelola pemicu build.
- Pelajari cara mengatur build berdasarkan persetujuan.
- Pelajari tentang izin yang diperlukan untuk melihat log build.
- Pelajari log audit yang dibuat oleh Cloud Build.