Cloud Build adalah layanan yang menjalankan build Anda di Google Cloud.
Cloud Build dapat mengimpor kode sumber dari berbagai repositori atau ruang penyimpanan cloud, menjalankan build sesuai spesifikasi Anda, dan menghasilkan artefak seperti container Docker atau arsip Java. Anda juga dapat menggunakan Cloud Build untuk membantu melindungi supply chain software Anda. Fitur Cloud Build memenuhi persyaratan Supply chain Levels for Software Artifacts (SLSA) level 3. Untuk mendapatkan panduan tentang cara melindungi proses build, lihat Mengamankan build.Konfigurasi build dan langkah-langkah build
Anda dapat menulis konfigurasi build untuk memberikan petunjuk ke Cloud Build mengenai tugas yang perlu dilakukan. Anda dapat mengonfigurasi build untuk mengambil dependensi, menjalankan pengujian unit, analisis statis, dan pengujian integrasi, serta membuat artefak dengan alat build seperti docker, gradle, maven, bazel, dan gulp.
Cloud Build mengeksekusi build Anda sebagai serangkaian langkah build, dan setiap langkah build dijalankan di container Docker. Eksekusi langkah build serupa dengan eksekusi perintah di dalam skrip.
Anda dapat menggunakan langkah build yang disediakan oleh Cloud Build dan komunitas Cloud Build, atau menulis langkah build kustom Anda sendiri:
- Langkah-langkah build yang disediakan oleh Cloud Build: Cloud Build telah memublikasikan serangkaian langkah-langkah build open source yang didukung untuk bahasa dan tugas umum.
- Langkah-langkah build yang dikontribusikan komunitas: Komunitas pengguna Cloud Build telah menyediakan langkah-langkah build open source.
- Langkah build kustom: Anda dapat membuat langkah build sendiri untuk digunakan dalam build Anda.
Setiap langkah build dijalankan dengan container yang terhubung ke jaringan Docker lokal
bernama cloudbuild. Hal ini memungkinkan langkah-langkah build untuk berkomunikasi satu sama lain dan
berbagi data. Untuk mengetahui informasi selengkapnya tentang jaringan cloudbuild, lihat
Jaringan Cloud Build.
Anda dapat menggunakan image Docker Hub standar di Cloud Build, seperti Ubuntu dan Gradle.
Memulai build
Anda dapat memulai build secara manual di Cloud Build menggunakan Google Cloud CLI atau Cloud Build API, atau menggunakan pemicu build Cloud Build untuk membuat alur kerja continuous integration/continuous delivery (CI/CD) otomatis yang memulai build baru sebagai respons terhadap perubahan kode. Anda dapat mengintegrasikan pemicu build dengan banyak repositori kode, termasuk Cloud Source Repositories, GitHub, dan Bitbucket.Melihat hasil build
Anda dapat melihat hasil build menggunakan gcloud CLI, Cloud Build API, atau menggunakan halaman Build History di bagian Cloud Build di konsolGoogle Cloud , yang menampilkan detail dan log untuk setiap build yang dieksekusi Cloud Build. Untuk mengetahui petunjuknya, lihat Melihat Hasil Build.
Cara kerja build
Langkah-langkah berikut secara umum menjelaskan siklus proses build Cloud Build:
- Siapkan kode aplikasi dan aset yang diperlukan.
- Buat file konfigurasi build dalam format YAML atau JSON, yang berisi petunjuk untuk Cloud Build.
- Kirim build ke Cloud Build.
- Cloud Build mengeksekusi build Anda berdasarkan konfigurasi build yang Anda berikan.
- Jika berlaku, artefak yang dibuat akan dikirim ke Artifact Registry.
Docker
Cloud Build menggunakan Docker untuk menjalankan build. Untuk setiap langkah build, Cloud Build mengeksekusi container Docker
sebagai instance docker run. Saat ini, Cloud Build menjalankan Docker Engine versi 20.10.24.
Antarmuka Cloud Build
Anda dapat menggunakan Cloud Build dengan konsol Google Cloud , alat command line gcloud, atau REST API Cloud Build.
Anda dapat menggunakan gcloud CLI untuk membuat dan mengelola build. Anda dapat menjalankan perintah untuk melakukan tugas seperti mengirimkan build, mencantumkan build, dan membatalkan build.
Anda dapat meminta build menggunakan Cloud Build REST API.
Seperti API Cloud Platform lainnya, Anda harus memberi otorisasi akses menggunakan OAuth2. Setelah Anda mengizinkan akses, Anda dapat menggunakan API untuk memulai build baru, melihat status dan detail build, membuat daftar build per project, dan membatalkan build yang sedang dalam proses.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi API.
Kumpulan default dan kumpulan pribadi
Secara default, saat Anda menjalankan build di Cloud Build, build tersebut dijalankan di lingkungan terhosting yang aman dengan akses ke internet publik. Setiap build berjalan di pekerja-nya sendiri dan diisolasi dari beban kerja lainnya. Anda dapat menyesuaikan build dengan berbagai cara, termasuk meningkatkan ukuran jenis mesin atau mengalokasikan lebih banyak ruang disk. Kumpulan default memiliki batasan terkait seberapa banyak Anda dapat menyesuaikan lingkungan, terutama terkait akses jaringan pribadi.
Kumpulan pribadi adalah kumpulan worker khusus dan pribadi yang menawarkan penyesuaian lingkungan build yang lebih baik, termasuk kemampuan untuk mengakses resource di jaringan pribadi. Kumpulan pribadi, mirip dengan kumpulan default, dihosting dan dikelola sepenuhnya oleh Cloud Build serta dapat di-scale up dan down hingga nol, tanpa perlu menyiapkan, mengupgrade, atau menskalakan infrastruktur. Karena kumpulan pribadi adalah resource khusus pelanggan, Anda dapat mengonfigurasinya dengan lebih banyak cara.Untuk mempelajari lebih lanjut pool pribadi dan perbedaan fitur antara pool default dan pool pribadi, lihat Ringkasan pool pribadi.
Membangun keamanan
Cloud Build menyediakan beberapa fitur untuk mengamankan build Anda, termasuk:
-
Build Otomatis
Build otomatis atau build yang di-script menentukan semua langkah build dalam skrip build atau konfigurasi build, termasuk langkah-langkah untuk mengambil kode sumber dan langkah-langkah untuk membangun kode. Satu-satunya perintah manual, jika ada, adalah perintah untuk menjalankan build. Cloud Build menggunakan file konfigurasi build untuk menyediakan langkah-langkah build ke Cloud Build.
Build otomatis memberikan konsistensi dalam langkah-langkah build. Namun, penting juga untuk menjalankan build di lingkungan yang konsisten dan tepercaya.
Meskipun build lokal dapat berguna untuk tujuan proses debug, merilis software dari build lokal dapat menimbulkan banyak masalah keamanan, inkonsistensi, dan inefisiensi dalam proses build.
- Mengizinkan build lokal memberikan cara bagi penyerang dengan niat jahat untuk mengubah proses build.
- Inkonsistensi di lingkungan lokal developer dan praktik developer menyulitkan reproduksi build dan mendiagnosis masalah build.
Dalam persyaratan untuk framework SLSA, build otomatis adalah persyaratan untuk level SLSA 1, dan menggunakan layanan build, bukan lingkungan developer untuk build, adalah persyaratan untuk level SLSA 2.
-
Provenance build
Build provenance adalah kumpulan data yang dapat diverifikasi tentang build.
Metadata asal mencakup detail seperti ringkasan gambar yang dibuat, lokasi sumber input, toolchain build, dan durasi build.
Membuat provenance build membantu Anda:
- Verifikasi bahwa artefak yang dibuat berasal dari lokasi sumber tepercaya dan oleh sistem build tepercaya.
- Mengidentifikasi kode yang disisipkan dari lokasi atau sistem build sumber yang tidak tepercaya.
Anda dapat menggunakan mekanisme pemberitahuan dan kebijakan untuk secara proaktif menggunakan data asal yang terbukti. Misalnya, Anda dapat membuat kebijakan yang hanya mengizinkan deployment kode yang dibuat dari sumber terverifikasi.
Cloud Build dapat menghasilkan provenance build untuk image container yang memberikan jaminan level 3 SLSA. Untuk mengetahui informasi selengkapnya, lihat Melihat asal-usul build.
-
Lingkungan build efemeral
Lingkungan sementara adalah lingkungan sementara yang dimaksudkan untuk bertahan selama satu pemanggilan build. Setelah build, lingkungan akan dihapus atau dihapus. Build sementara memastikan bahwa layanan build dan langkah-langkah build berjalan di lingkungan sementara, seperti container atau VM. Daripada menggunakan kembali lingkungan build yang ada, layanan build menyediakan lingkungan baru untuk setiap build, lalu menghancurkannya setelah proses build selesai.
Lingkungan sementara memastikan build bersih karena tidak ada file sisa atau setelan lingkungan dari build sebelumnya yang dapat mengganggu proses build. Lingkungan non-ephemeral memberikan peluang bagi penyerang untuk menyuntikkan file dan konten berbahaya. Lingkungan sementara juga mengurangi overhead pemeliharaan dan mengurangi inkonsistensi di lingkungan build.
Cloud Build menyiapkan lingkungan virtual machine baru untuk setiap build dan menghancurkannya setelah build.
-
Kebijakan deployment
Anda dapat mengintegrasikan Cloud Build dengan Otorisasi Biner untuk memeriksa pengesahan build dan memblokir deployment image yang tidak dibuat oleh Cloud Build. Proses ini dapat mengurangi risiko deployment software yang tidak sah.
-
Kunci enkripsi yang dikelola pelanggan
Cloud Build menyediakan kepatuhan kunci enkripsi yang dikelola pelanggan (CMEK) secara default. Pengguna tidak perlu mengonfigurasi apa pun secara khusus. Cloud Build memberikan kepatuhan CMEK dengan mengenkripsi persistent disk (PD) waktu build dengan kunci sementara yang dibuat untuk setiap build. Kunci dibuat secara unik untuk setiap build.
Segera setelah build selesai, kunci akan dihapus dari memori dan dihancurkan. Kunci ini tidak disimpan di mana pun, tidak dapat diakses oleh engineer atau staf dukungan Google, dan tidak dapat dipulihkan. Data yang dilindungi menggunakan kunci tersebut tidak dapat diakses secara permanen. Untuk mengetahui informasi selengkapnya, lihat Kepatuhan CMEK di Cloud Build.
-
Panel insight keamanan
Cloud Build menyertakan panel Insight keamanan di konsol Google Cloud yang menampilkan ringkasan tingkat tinggi dari beberapa metrik keamanan. Anda dapat menggunakan panel ini untuk mengidentifikasi dan mengurangi risiko dalam proses build.
Panel ini menampilkan informasi berikut:
- Tingkat Supply-chain Levels for Software Artifacts (SLSA): Mengidentifikasi tingkat kematangan proses build software Anda sesuai dengan spesifikasi SLSA.
- Kerentanan: Ringkasan kerentanan yang ditemukan di artefak Anda, dan nama gambar yang telah dipindai oleh Artifact Analysis. Anda dapat mengklik nama gambar untuk melihat detail kerentanan.
- Detail build: Detail build seperti builder dan link untuk melihat log.
- Build provenance: Provenance untuk build.
Untuk mempelajari cara menggunakan Cloud Build dengan produk dan fitur lain untuk mengamankan supply chain software Anda, lihat Keamanan supply chain software. Google Cloud