1. Pengantar
Di lab ini, Anda akan men-deploy aplikasi ke cluster Cloud Run dan GKE, serta melihat insight keamanan untuk deployment di Keamanan Perlindungan Pengiriman Software
Yang akan Anda pelajari
- Insight Keamanan Artifact Registry
- Insight Keamanan Cloud Run
- Postur Keamanan GKE
2. Penyiapan dan Persyaratan
Penyiapan Project Cloud
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (biasanya diidentifikasi sebagai
PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan melihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan akan tetap ada selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Penyiapan Lingkungan
Aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.

Dari Cloud Shell, aktifkan API yang diperlukan untuk lab ini:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
container.googleapis.com \
containersecurity.googleapis.com
Jika diminta untuk memberikan otorisasi, klik "Beri otorisasi" untuk melanjutkan.

Perintah di atas akan menampilkan pesan seperti berikut yang menandakan bahwa proses berhasil:
Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.
Jalankan perintah untuk membuat cluster GKE secara asinkron. IP ini akan digunakan nanti di lab:
gcloud beta container clusters create gke-cluster \
--zone us-central1-a \
--async
3. Menyiapkan Aplikasi
Pertama, Anda akan menyiapkan aplikasi Node.js sederhana berbasis express yang merespons permintaan HTTP.
Di Cloud Shell, buat direktori baru bernama starter-nodejs, lalu beralihlah ke direktori tersebut:
mkdir starter-nodejs
cd starter-nodejs
Buat file package.json dengan menjalankan perintah di bawah:
cat > ./package.json << EOF
{
"name": "cloudrun-starter-app",
"version": "1.0.0",
"description": "Node.js Starter Application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "Apache-2.0",
"dependencies": {
"express": "^4.18.2"
}
}
EOF
File di atas berisi perintah mulai skrip dan dependensi pada framework aplikasi web Express.
Selanjutnya, di direktori yang sama, buat file index.js dengan menjalankan perintah di bawah:
cat > ./index.js << EOF
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log('Received a request.');
res.send("Hello Cloud Run!");
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Listening on port', port);
});
EOF
Kode ini menghasilkan server web dasar yang memantau port yang ditentukan oleh variabel lingkungan PORT. Aplikasi Anda kini sudah selesai dan siap dimasukkan ke dalam container serta di-deploy.
4. Men-deploy Aplikasi Cloud Run
Jalankan perintah di bawah untuk men-deploy aplikasi Anda:
gcloud run deploy starter-app \
--source . \
--region us-central1 \
--allow-unauthenticated \
--max-instances=3
Konfirmasi pembuatan repositori Artifact Registry:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created. Do you want to continue (Y/n)? y
5. Insight Keamanan Artifact Registry dan Cloud Build
Proses build akan memerlukan waktu beberapa menit hingga selesai.
Buka Cloud Build dan tinjau artefak build untuk build terbaru.
UI Cloud Build di Konsol Google Cloud berisi panel insight Keamanan Software Delivery Shield yang menampilkan informasi keamanan terkait build seperti tingkat SLSA, kerentanan dalam dependensi, dan asal build.

Tinjau Insight Keamanan untuk image container yang dibuat. Ikuti link untuk artefak yang dipindai guna melihat detail kerentanan untuk image ini di Artifact Registry.
Kembali ke konsol Cloud Shell dan verifikasi bahwa deployment aplikasi Cloud Run telah selesai.
Done. Service [starter-app] revision [starter-app-00001-maw] has been deployed and is serving 100 percent of traffic. Service URL: https://starter-app-nin5jpgefq-uc.a.run.app
6. Insight Keamanan Cloud Run
Cloud Run berisi panel keamanan (Pratinjau) yang menampilkan insight keamanan supply chain software seperti info kepatuhan tingkat build SLSA, asal build, dan kerentanan yang ditemukan dalam layanan yang sedang berjalan.
Buka Cloud Run dan tinjau Insight Keamanan di tab REVISI / KEAMANAN.

Panel ini menampilkan informasi berikut:
- Identitas dan enkripsi: Alamat email akun layanan Compute Engine default dan kunci enkripsi yang digunakan untuk deployment.
- Level SLSA: Build ini berada di Level SLSA 3, yang mengidentifikasi tingkat kematangan proses build software sesuai dengan spesifikasi SLSA
- Kerentanan: Kerentanan apa pun yang ditemukan dalam dependensi aplikasi.
- Detail build: Detail build seperti builder dan link untuk melihat log.
- Build provenance: Provenance untuk build, yang merupakan kumpulan metadata yang dapat diverifikasi tentang build. Hal ini mencakup detail seperti ringkasan gambar yang dibuat, lokasi sumber input, toolchain build, langkah-langkah build, dan durasi build.
7. Postur Keamanan GKE
GKE dapat menilai postur keamanan container Anda dan memberikan panduan aktif terkait setelan cluster, konfigurasi workload, dan kerentanan. Fitur ini mencakup dasbor postur keamanan (Pratinjau), yang memindai cluster dan workload GKE Anda untuk memberikan rekomendasi opini yang dapat Anda tindak lanjuti guna meningkatkan postur keamanan Anda.
Pada langkah selanjutnya, Anda akan men-deploy aplikasi ke cluster GKE dan meninjau insight keamanan di dasbor postur keamanan GKE.
Pastikan cluster siap dengan menjalankan perintah berikut:
gcloud beta container clusters list
Contoh output:
NAME: gke-cluster LOCATION: us-central1-a MASTER_VERSION: 1.24.9-gke.3200 MASTER_IP: 34.29.226.228 MACHINE_TYPE: e2-medium NODE_VERSION: 1.24.9-gke.3200 NUM_NODES: 3 STATUS: RUNNING
Dapatkan kredensial dan konfigurasi untuk cluster GKE:
gcloud container clusters get-credentials gke-cluster \
--region=us-central1-a
Jalankan perintah untuk men-deploy aplikasi menggunakan image yang dibuat pada langkah sebelumnya:
export PROJECT_ID=$(gcloud config get-value project)
kubectl run starter-app \
--image us-central1-docker.pkg.dev/${PROJECT_ID}/cloud-run-source-deploy/starter-app:latest \
--port 8080
Workload GKE idealnya memiliki konfigurasi yang diperkuat yang membatasi permukaan serangannya. Memeriksa workload di seluruh cluster untuk menemukan masalah konfigurasi mungkin sulit dilakukan secara manual dalam skala besar. Anda dapat menggunakan dasbor postur keamanan untuk otomatis memindai konfigurasi semua workload yang sedang berjalan di banyak cluster dan menampilkan hasil yang disertai skor dan dapat ditindaklanjuti, serta rekomendasi untuk meningkatkan postur keamanan Anda.
Aktifkan pemindaian konfigurasi workload:
gcloud beta container clusters update gke-cluster \
--region=us-central1-a \
--enable-workload-config-audit
Selain memindai konfigurasi workload, Anda juga dapat mengaktifkan pemindaian kerentanan workload dan meninjau hasilnya di dasbor postur keamanan, yang merupakan serangkaian fitur yang memberikan informasi dan rekomendasi opini untuk meningkatkan keamanan cluster dan workload GKE Anda.
GKE secara otomatis memindai image container di setiap Pod yang memenuhi syarat yang berjalan di cluster GKE Anda untuk mengetahui kerentanan yang diketahui, menggunakan data kerentanan dari database CVE publik seperti NIST.
Jika kerentanan ditemukan di image container Anda, GKE akan menetapkan rating tingkat keparahan dan menampilkan hasilnya di dasbor postur keamanan di Konsol Google Cloud. GKE juga menambahkan entri ke Cloud Logging untuk pengauditan dan keterlacakan.
Aktifkan pemindaian kerentanan workload:
gcloud beta container clusters update gke-cluster \
--region=us-central1-a \
--enable-workload-vulnerability-scanning \
--async
Buka halaman Postur Keamanan GKE.
Tunggu beberapa menit hingga audit workload selesai, lalu tinjau hasilnya.

Tinjau Masalah konfigurasi dan workload yang terpengaruh.

Alasan menggunakan dasbor postur keamanan
Dasbor postur keamanan adalah langkah keamanan dasar yang dapat Anda aktifkan untuk setiap cluster GKE yang memenuhi syarat. Google Cloud merekomendasikan penggunaan dasbor postur keamanan di semua cluster Anda karena alasan berikut:
- Gangguan minimal: Fitur tidak mengganggu atau merusak workload yang sedang berjalan.
- Rekomendasi yang dapat ditindaklanjuti: Jika tersedia, dasbor postur keamanan menyediakan item tindakan untuk memperbaiki masalah yang ditemukan. Tindakan ini mencakup perintah yang dapat Anda jalankan, contoh perubahan konfigurasi yang harus dibuat, dan saran tentang tindakan yang harus dilakukan untuk memitigasi kerentanan.
- Visualisasi: Dasbor postur keamanan memberikan visualisasi tingkat tinggi mengenai masalah yang memengaruhi cluster di seluruh project Anda, dan menyertakan diagram serta grafik untuk menunjukkan progres yang Anda capai dan dampak potensial dari setiap masalah.
- Hasil opini: GKE menetapkan rating tingkat keparahan untuk masalah yang ditemukan berdasarkan keahlian tim keamanan Google dan standar industri.
- Log peristiwa yang dapat diaudit: GKE menambahkan semua masalah yang ditemukan ke Logging untuk mendapatkan pelaporan dan kemampuan observasi yang lebih baik.
8. Selamat!
Selamat! Anda telah menyelesaikan codelab.
Yang telah kita bahas:
- Informasi Insight Keamanan untuk artefak build dan aplikasi yang berjalan di Cloud Run dan GKE
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
—
Terakhir diperbarui: 21/3/23