Ringkasan Cloud Build

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 panduan tentang cara melindungi proses build, lihat Menjaga keamanan build.

Konfigurasi build dan langkah-langkah build

Anda dapat menulis konfigurasi build untuk memberikan petunjuk kepada Cloud Build tentang tugas yang akan 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, dengan setiap langkah build dijalankan dalam container Docker. Menjalankan langkah build mirip dengan menjalankan perintah dalam skrip.

Anda dapat menggunakan langkah build yang disediakan oleh Cloud Build dan komunitas Cloud Build, atau menulis langkah build kustom Anda sendiri:

Setiap langkah build dijalankan dengan penampung yang terpasang ke jaringan Docker lokal yang bernama cloudbuild. Hal ini memungkinkan langkah-langkah build untuk saling berkomunikasi dan berbagi data. Untuk 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 Konsol Google Cloud, yang menampilkan detail dan log untuk setiap build yang dieksekusi Cloud Build. Untuk mengetahui petunjuknya, lihat Melihat Hasil Pembuatan.

Cara kerja build

Langkah-langkah berikut menjelaskan, secara umum, siklus proses build Cloud Build:

  1. Siapkan kode aplikasi dan aset yang diperlukan.
  2. Buat file konfigurasi build dalam format YAML atau JSON, yang berisi petunjuk untuk Cloud Build.
  3. Kirim build ke Cloud Build.
  4. Cloud Build mengeksekusi build Anda berdasarkan konfigurasi build yang Anda berikan.
  5. Jika berlaku, artefak yang di-build 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 mesin Docker 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.

Di konsol Google Cloud, Anda dapat melihat hasil build Cloud Build di halaman Build History, dan mengotomatiskan build di Build Triggers.

Anda dapat menggunakan gcloud CLI untuk membuat dan mengelola build. Anda dapat menjalankan perintah untuk melakukan tugas seperti mengirim build, mencantumkan build, dan membatalkan build.

Anda dapat meminta build menggunakan Cloud Build REST API.

Seperti API Cloud Platform lainnya, Anda harus memberikan otorisasi akses menggunakan OAuth2. Setelah memberikan otorisasi akses, Anda dapat menggunakan API untuk memulai build baru, melihat status dan detail build, mencantumkan build per project, dan membatalkan build yang sedang dalam proses.

Untuk informasi selengkapnya, lihat dokumentasi API.

Kumpulan default dan kumpulan pribadi

Secara default, saat Anda menjalankan build di Cloud Build, build akan berjalan di lingkungan terhosting dan aman dengan akses ke internet publik. Setiap build berjalan di pekerja-nya sendiri dan terisolasi dari beban kerja lainnya. Anda dapat menyesuaikan build dengan beberapa 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 pekerja khusus dan pribadi yang menawarkan penyesuaian yang lebih besar pada lingkungan build, termasuk kemampuan untuk mengakses resource di jaringan pribadi. Kumpulan pribadi, mirip dengan kumpulan default, dihosting dan dikelola sepenuhnya oleh Cloud Build serta diskalakan ke atas dan ke bawah hingga nol, tanpa infrastruktur untuk disiapkan, diupgrade, atau diskalakan. 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 dengan skrip menentukan semua langkah build dalam skrip build atau konfigurasi build, termasuk langkah-langkah untuk mengambil kode sumber dan langkah-langkah untuk mem-build kode. Satu-satunya perintah manual, jika ada, adalah perintah untuk menjalankan build. Cloud Build menggunakan file build config untuk menyediakan langkah build ke Cloud Build.

    Build otomatis memberikan konsistensi dalam langkah-langkah build. Namun, penting juga untuk menjalankan build dalam 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 ketidakefisienan dalam proses build.

    • Mengizinkan build lokal memberikan cara bagi penyerang dengan niat jahat untuk mengubah proses build.
    • Inkonsistensi dalam lingkungan lokal developer dan praktik developer membuat sulit untuk mereproduksi build dan mendiagnosis masalah build.

    Dalam persyaratan untuk framework SLSA, build otomatis adalah persyaratan untuk SLSA level 1, dan menggunakan layanan build, bukan lingkungan developer untuk build, adalah persyaratan untuk SLSA level 2.

  • Provenance build

    Provenans build adalah kumpulan data yang dapat diverifikasi tentang build.

    Metadata provenance mencakup detail seperti ringkasan gambar yang di-build, lokasi sumber input, toolchain build, dan durasi build.

    Membuat provenance build membantu Anda untuk:

    • Verifikasi bahwa artefak yang dibuat dibuat dari lokasi sumber tepercaya dan oleh sistem build tepercaya.
    • Identifikasi kode yang dimasukkan dari lokasi sumber atau sistem build yang tidak tepercaya.

    Anda dapat menggunakan mekanisme pemberitahuan dan kebijakan untuk menggunakan data asal build secara proaktif. 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 SLSA level 3. Untuk mengetahui informasi selengkapnya, lihat Melihat asal build.

  • Lingkungan build efemeral

    Lingkungan sementara adalah lingkungan sementara yang dimaksudkan untuk berlangsung selama satu pemanggilan build. Setelah build, lingkungan akan dihapus total atau dihapus. Build sementara memastikan bahwa layanan build dan langkah build berjalan di lingkungan sementara, seperti penampung 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 yang bersih karena tidak ada file residual atau setelan lingkungan dari build sebelumnya yang dapat mengganggu proses build. Lingkungan yang tidak bersifat sementara memberikan peluang bagi penyerang untuk memasukkan 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 men-deploy software yang tidak sah.

  • Kunci enkripsi yang dikelola pelanggan

    Cloud Build memberikan 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 dihasilkan untuk setiap build. Kunci dibuat secara unik untuk setiap build.

    Segera setelah build selesai, kunci akan dihapus dari memori dan dihancurkan. KEK 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 umum beberapa metrik keamanan. Anda dapat menggunakan panel ini untuk mengidentifikasi dan memitigasi risiko dalam proses build.

    Panel ini menampilkan informasi berikut:

    • Supply-chain Levels for Software Artifacts (SLSA) Level: Mengidentifikasi tingkat kematangan proses build software Anda sesuai dengan spesifikasi SLSA).

    • Vulnerabilities: 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. Misalnya, pada screenshot, Anda dapat mengklik java-guestbook-backend.

    • 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 Google Cloud lainnya untuk mengamankan supply chain software Anda, lihat Keamanan supply chain software.

Langkah selanjutnya