Membangun aplikasi dan melihat insight keamanan

Panduan memulai ini menjelaskan cara membuat aplikasi dan melihat insight keamanan untuk build di panel Insight keamanan Perlindungan Pengiriman Software di Konsol Google Cloud.

Anda akan:

  • Bangun dan masukkan aplikasi Java ke dalam container menggunakan Cloud Build dan kirim image container ke repositori Docker Artifact Registry.
  • Lihat insight keamanan berikut untuk build:

    • Level supply-chain Levels for Software Artifacts (SLSA), yang mengidentifikasi tingkat kedewasaan proses build software Anda sesuai dengan spesifikasi SLSA .
    • Kerentanan dalam artefak build.
    • Software bill of materials (SBOM) untuk artefak build.
    • Build provenance, yang merupakan kumpulan metadata yang dapat diverifikasi tentang build. Halaman ini berisi detail seperti ringkasan image yang di-build, lokasi sumber input, toolchain build, langkah-langkah build, dan durasi build.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Menginstal Google Cloud CLI.
  3. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  4. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Menginstal Google Cloud CLI.
  8. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  9. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  10. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  11. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com

Menyiapkan lingkungan Anda

  1. Tetapkan project ID Anda sebagai variabel lingkungan:

    export PROJECT_ID=$(gcloud config get project)
    
  2. Clone repositori yang berisi contoh kode Java untuk mem-build dan memasukkan ke dalam container:

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd software-delivery-shield-demo-java/backend
    

Membuat repositori Artifact Registry untuk image Anda

  1. Buat repositori Docker baru bernama containers di lokasi us-central1 dengan deskripsi "Repositori Docker":

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 --description="Docker repository"
    
  2. Pastikan repositori Anda telah dibuat:

    gcloud artifacts repositories list
    

    Anda akan melihat containers dalam daftar repositori yang ditampilkan.

Membangun aplikasi

Bangun dan masukkan aplikasi Java ke dalam container menggunakan Cloud Build. Perintah berikut mem-build dan menampung aplikasi Java dalam container dan menyimpan container yang telah dibangun di repositori docker Artifact Registry:

gcloud builds submit --config=cloudbuild.yaml --region=us-central1

Setelah build selesai, Anda akan melihat pesan status berhasil seperti berikut:

<pre class="none lang-sh">
DONE
-----------------------------------------------------------------------------
ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS
</pre>

Membuat SBOM untuk image yang di-build

SBOM adalah inventaris lengkap aplikasi, yang mengidentifikasi paket yang diandalkan software Anda. Isinya dapat mencakup software pihak ketiga dari vendor, artefak internal, dan library open source.

Buat SBOM untuk image yang Anda build di bagian sebelumnya:

gcloud artifacts sbom export
    --uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart

Lihat insight keamanan

UI Cloud Build di Google Cloud Console berisi panel Insight keamanan Software Delivery Shield yang menampilkan informasi keamanan yang terkait dengan build seperti level SLSA, kerentanan pada dependensi, dan provenance build.

Untuk melihat panel Insight keamanan Perlindungan Pengiriman Software:

  1. Buka halaman Build history di Konsol Google Cloud:

    Membuka halaman Histori build

  2. Pilih project Anda lalu klik Buka.

  3. Di menu drop-down Region, pilih us-central1.

  4. Pada tabel dengan build, temukan baris dengan build yang baru saja Anda jalankan.

  5. Di kolom Insight keamanan, klik Lihat.

Anda akan melihat panel Insight keamanan untuk build:

Screenshot panel
Perlindungan Pengiriman Software

Panel ini menampilkan informasi berikut:

  • Level SLSA: Build ini telah mencapai SLSA Level 3. Klik link Pelajari lebih lanjut untuk mempelajari arti tingkat keamanan ini.

  • Kerentanan: Kerentanan yang ditemukan di artefak Anda. Klik nama image (java-guestbook-backend) untuk melihat artefak yang telah dipindai untuk mendeteksi kerentanan.

  • Dependensi untuk image container yang di-build di Artifact Registry.

  • Detail build: Detail build seperti builder dan link untuk melihat log.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.

  1. Nonaktifkan Container Scanning API:

    gcloud services disable containerscanning.googleapis.com --force
    
  2. Hapus repositori Artifact Registry:

    gcloud artifacts repositories delete containers \
        --location=us-central1 --async
    

    Sekarang Anda telah menghapus repositori yang Anda buat sebagai bagian dari panduan memulai ini.

Langkah selanjutnya