Membangun aplikasi dan melihat insight keamanan

Panduan memulai ini menjelaskan cara mem-build aplikasi dan melihat insight keamanan untuk build di panel Security insights di konsol Google Cloud.

Anda akan:

  • Build dan buat container aplikasi Java menggunakan Cloud Build dan kirimkan image container ke repositori Docker Artifact Registry.
  • Lihat insight keamanan berikut untuk build:

    • Tingkat Supply-chain Levels for Software Artifacts (SLSA), yang mengidentifikasi tingkat kematangan proses build software Anda sesuai dengan spesifikasi SLSA .
    • Kerentanan dalam artefak build.
    • Software bill of materials (SBOM) untuk artefak build.
    • Provenance build, yang merupakan kumpulan metadata yang dapat diverifikasi tentang build. Laporan ini mencakup detail seperti ringkasan gambar yang di-build, lokasi sumber input, toolchain build, langkah-langkah build, dan durasi build.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

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

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  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 membuat penampung:

    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.

Mem-build aplikasi

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

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

Setelah build selesai, Anda akan melihat pesan status sukses yang mirip dengan 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 digunakan software Anda. Kontennya 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

Melihat insight keamanan

UI Cloud Build di konsol Google Cloud berisi panel Insight keamanan yang menampilkan informasi keamanan terkait build seperti tingkat SLSA, kerentanan apa pun dalam dependensi, dan asal build.

Untuk melihat panel Insight keamanan:

  1. Buka halaman Histori build di konsol Google Cloud:

    Buka halaman Histori build

  2. Pilih project Anda lalu klik Buka.

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

  4. Dalam tabel dengan build, cari baris dengan build yang baru saja dijalankan.

  5. Di kolom Security insights, klik View.

Anda akan melihat panel Insight keamanan untuk build:

Panel ini menampilkan informasi berikut:

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

  • Kerentanan: Kerentanan apa pun yang ditemukan di artefak Anda. Klik nama image (java-guestbook-backend) untuk melihat artefak yang telah dipindai untuk menemukan 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