Cloud Build memungkinkan Anda menentukan kebijakan organisasi
(constraints/cloudbuild.allowedIntegrations
) untuk mengontrol
layanan eksternal mana yang dapat memanggil pemicu build. Misalnya,
jika pemicu Anda memantau perubahan pada repositori GitHub dan GitHub
ditolak dalam kebijakan organisasi, pemicu Anda tidak akan berjalan. Anda dapat menentukan
sejumlah nilai yang diizinkan atau ditolak untuk organisasi atau project Anda.
Halaman ini menjelaskan cara menyiapkan kebijakan organisasi (constraints/cloudbuild.allowedIntegrations
)
untuk integrasi menggunakan konsol Google Cloud
dan alat command line gcloud
.
Sebelum Memulai
-
Enable the Cloud Build and Organization Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. 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 bagi
integrasi yang diizinkan.
Konsol
Buka halaman Organization policies di konsol Google Cloud .
Klik baris yang berisi kebijakan Integrasi yang Diizinkan (Cloud Build).
Anda akan melihat halaman Detail kebijakan.
Untuk mengedit kebijakan, klik Edit.
Anda akan melihat halaman Edit kebijakan.
Di bagian Berlaku untuk, pilih Sesuaikan untuk menetapkan definisi kebijakan Anda.
Di bagian Penerapan kebijakan, pilih Ganti untuk menentukan aturan Anda sendiri untuk kebijakan tersebut. Atau, pilih Gabungkan dengan induk untuk memastikan aturan di resource induk diterapkan ke setelan Anda. Untuk mempelajari lebih lanjut, lihat Memahami evaluasi hierarki.
Di bagian Aturan, klik Tambahkan aturan 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 Kustom sebagai nilai, selesaikan langkah-langkah berikut:
Di bagian Jenis kebijakan, pilih Izinkan atau Tolak.
Di bagian Nilai kustom, 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.com
atauwww.github.com
.Anda juga dapat memasukkan beberapa URL yang dipisahkan oleh spasi. Contoh,
github.com ghe.staging-test.com
Berdasarkan peristiwa, URL host yang Anda tentukan adalah salah satu dari berikut:
- Peristiwa RepoSync: Hostnya adalah
source.developers.google.com
. - Peristiwa aplikasi GitHub: Host berasal dari kolom
repository.html_url
di payload JSON Anda, yang selalugithub.com
. - Peristiwa GitHub Enterprise: Host berasal dari kolom
repository.html_url
dalam payload JSON Anda. Contoh,ghe.staging-test.com
. - Peristiwa Pub/Sub: Host berasal dari sumber yang ditentukan di pemicu Anda. Jika tidak ada sumber yang ditentukan dalam pemicu, tidak ada pemeriksaan kebijakan organisasi.
- Peristiwa webhook: Host berasal dari sumber yang ditentukan di pemicu Anda. Jika tidak ada sumber yang ditentukan dalam pemicu, akan ada pemeriksaan kebijakan organisasi.
- Peristiwa RepoSync: Hostnya adalah
Untuk menyimpan aturan, klik Selesai.
Untuk menambahkan aturan lain, klik Tambahkan aturan. Jika tidak, untuk menyimpan kebijakan, klik Simpan.
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: true
Dengan:
PROJECT_NUMBER
adalah nomor project Anda.INHERIT
adalahtrue
jika Anda ingin aturan kebijakan diwarisi dari resource induk. Jika tidak,false
.ALLOW_OR_DENY
adalahallowAll
jika Anda ingin mengizinkan build dari semua URL host. Jika tidak,denyAll
.HOST_URL
adalah URL host Anda. Contoh,github.com
. Anda juga dapat menentukan URL tambahan di baris berikutnya.
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_NUMBER
adalah nomor project Anda.INHERIT
adalahtrue
jika Anda ingin aturan kebijakan diwarisi dari resource induk. Jika tidak,false
.ALLOW_OR_DENY
adalahallowedValues
jika Anda ingin menentukan URL host yang diizinkan untuk membuat build. Jika tidak,deniedValues
.HOST_URL
adalah URL host Anda. Contoh,github.com
. Anda juga dapat menentukan URL tambahan di baris berikutnya.
Tetapkan kebijakan organisasi Anda dengan menjalankan perintah berikut, dengan FILE_NAME adalah nama file YAML Anda:
gcloud org-policies set-policy FILE_NAME
Untuk 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 Anda belum melakukannya, buat pemicu build.
Kirim perubahan ke sumber Anda.
Jika kebijakan Anda disiapkan untuk mengizinkan build dari sumber, Anda akan dapat melihat eksekusi build dari pemicu di halaman Histori build. 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 izin yang diperlukan untuk melihat log build.
- Pelajari log audit yang dibuat oleh Cloud Build.