1. Pengantar
Ekstensi Keamanan Gemini CLI adalah ekstensi Gemini CLI open source yang dibuat Google yang menganalisis kode untuk mengetahui risiko dan kerentanan keamanan. Anda dapat menggunakan ekstensi Keamanan dengan Gemini CLI untuk mengidentifikasi masalah keamanan secara lokal, seperti yang Anda lakukan dengan ekstensi Gemini CLI lainnya. Anda juga dapat memanggilnya untuk meninjau Permintaan Pull di GitHub. Dalam codelab ini, kita akan membahas cara menggunakan ekstensi Keamanan di repositori GitHub Anda.
Yang akan Anda lakukan
- Mengonfigurasi autentikasi aman dari GitHub ke Google Cloud
- Membuat alur kerja GitHub Actions yang memanggil Ekstensi Keamanan Gemini CLI
- Menjalankan peninjauan keamanan pada PR baru atau yang sudah ada menggunakan GitHub Actions
Yang akan Anda pelajari
- Cara menggunakan Workload Identity Federation untuk autentikasi aman dari GitHub Actions ke Google Cloud
- Mempelajari manfaat menggunakan Workload Identity Pool dan Workload Identity Provider dibandingkan kunci Gemini API untuk autentikasi
- Cara menjalankan peninjauan keamanan dengan PR
- Cara menafsirkan peninjauan keamanan yang ditampilkan oleh ekstensi Keamanan
Yang akan Anda butuhkan
- Browser web
- Akun dan repositori GitHub
- Project Google Cloud
Codelab ini dirancang untuk developer yang memahami alur kerja CI/CD di GitHub. Anda tidak diharapkan untuk memahami Gemini CLI atau ekstensi Gemini CLI. Jika Anda ingin mempelajari cara kerja ekstensi, lihat codelab: Mulai Menggunakan Ekstensi Gemini CLI.
Dalam codelab ini, Anda akan mempelajari cara menyiapkan Ekstensi Keamanan Gemini CLI di repositori GitHub Anda. Kami tidak akan menyarankan kode untuk Anda membuka PR terhadap repositori Anda untuk memicu temuan kerentanan keamanan.
2. Sebelum memulai
Buat atau pilih project
- Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memverifikasi penagihan.
- Buka Cloud Shell, lingkungan command line yang dijalankan di Google Cloud. Klik Activate Cloud Shell di bagian atas konsol Google Cloud.

- Setelah terhubung ke Cloud Shell, pastikan Anda diautentikasi dan project ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
- Jalankan perintah berikut untuk mengonfirmasi bahwa perintah
gclouddikonfigurasi untuk menggunakan project Anda.
gcloud config list project
- Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project ${GOOGLE_CLOUD_PROJECT}
3. Menyiapkan autentikasi dari GitHub ke Google Cloud
Cara kerjanya

Workload Identity Federation adalah cara yang direkomendasikan untuk melakukan autentikasi dari GitHub Actions ke Google Cloud.
- Untuk setiap alur kerja yang menjalankan tugas GitHub Actions, GitHub sebagai Penyedia Identitas eksternal akan menerbitkan JWT (JSON Web Token) yang ditandatangani. Token ini berisi "klaim" seperti
repository,workflow, danjob_workflow_ref, yang bertindak sebagai kartu identitas digital untuk runner tertentu. Di lab ini, Anda akan membuat alur kerja GitHub Actions dengan tugas yang menggunakan tindakangoogle-github-actions/run-gemini-cli, yang akan meminta JWT dari GitHub dan mengirimkan token ini ke Security Token Service (STS) di Google Cloud. - Anda akan mengonfigurasi Workload Identity Pool dan Provider di Google Cloud dengan menetapkan URL penerbit ke URL layanan token GitHub resmi
https://token.actions.githubusercontent.comdan menentukan "Pemetaan Atribut" Anda, yang biasanya mencakup nama repositori dan cabang. Google Cloud STS memvalidasi JWT terhadap aturan Workload Identity Pool. Jika semuanya, termasuk pemetaan atribut, berhasil diperiksa, STS akan menukar token GitHub dengan Google Cloud Federated Access Token yang berumur pendek. - Sekarang, tindakan
google-github-actions/run-gemini-clidalam alur kerja GitHub Actions Anda dapat menggunakan Google Cloud Federated Access Token yang berumur pendek untuk "meniru" Akun Layanan yang terhubung ke Workload Identity Pool. Akun Layanan yang terhubung harus memiliki peran dan izin IAM yang diperlukan untuk mengakses resource dan layanan Google Cloud.
Manfaat menggunakan Workload Identity Federation dibandingkan Kunci Gemini API
Panggilan Gemini CLI yang berasal dari GitHub Actions dapat diautentikasi menggunakan Kunci Gemini API, yang melibatkan pembuatan secret GitHub Actions baru bernama GEMINI_API_KEY dengan nilai kunci yang sesuai. Namun, hal ini tidak disarankan karena alasan keamanan berikut:
- Kunci Gemini API dapat memiliki izin luas dari binding peran IAM masing-masing. Jika disusupi, kunci tersebut akan membuka akses ke berbagai resource dan layanan Google Cloud. Workload Identity Federation menggunakan akun layanan dan token akses yang berumur pendek, yang memperketat autentikasi secara signifikan.
- Kunci Gemini API juga sulit dikelola dalam skala besar. Mengidentifikasi alur kerja yang menggunakan kunci yang terekspos memerlukan waktu. Memutar kunci secara manual juga memerlukan waktu. Di sisi lain, Anda dapat dengan mudah mencari, mengedit, dan menghapus kumpulan dan penyedia Workload Identity yang terkait dengan repositori Anda dari Konsol Cloud.
- Dengan kunci Gemini API, Anda harus selalu memeriksa ulang bahwa Anda tidak secara tidak sengaja mengeksposnya dalam log akses atau debug. Dengan Workload Identity Federation, Anda tidak menyimpan secret alur kerja GitHub Actions, tetapi variabel, yang secara inheren kurang sensitif.
Mengonfigurasi GitHub Actions dan Google Cloud
- Di Cloud Shell, login ke akun GitHub Anda.
gh auth login
- Buat file baru
setup_workload_identity.sh, lalu salin dan tempelkan skrip penyiapan dari repositorigoogle-github-actions/run-gemini-cli. - Jadikan skrip sebagai file yang dapat dieksekusi.
chmod +x setup_workload_identity.sh
- Jalankan skrip.
./setup_workload_identity.sh --repo {OWNER/REPO} --project {GOOGLE_CLOUD_PROJECT}
4. Membuat alur kerja GitHub Actions
- Lihat repositori GitHub yang Anda miliki.
git clone {YOUR_REPO}
cd {YOUR REPO}
- Buat alur kerja GitHub Actions yang memanggil perintah garis miring
/security:analyze-github-prdengan menyalin contoh skripymlalur kerja dari repo/gemini-cli-extensions/security.
git checkout -b workflow
mkdir .github/ && cd .github/
mkdir workflows/ && cd workflows/
curl -L https://raw.githubusercontent.com/gemini-cli-extensions/security/refs/heads/main/.github/workflows/gemini-review.yml -o gemini-review.yml
- Kirim alur kerja GitHub Actions ke asal jarak jauh Anda di GitHub.
git add .github/workflows/gemini-review.yml
git commit -m "add new gha workflow"
git push --set-upstream origin workflow
5. Menjalankan alur kerja analisis keamanan pada PR baru dan yang sudah ada
Mulai PR baru di repositori GitHub Anda atau posting komentar baru "@gemini-cli /review" sebagai pemilik atau kontributor repo. Tindakan ini akan memulai peninjauan keamanan pada PR. Ekstensi Keamanan Gemini CLI dari alur kerja GitHub Actions yang telah Anda commit ke repo Anda akan menandai masalah keamanan apa pun yang ditemukannya berdasarkan kategori keparahan dari "Kritis", "Tinggi", "Sedang", hingga "Rendah".
Berikut adalah contoh peninjauan keamanan pada PR baru dan contoh peninjauan keamanan pada PR yang sudah ada.
6. Eksplorasi lebih lanjut
Sebaiknya jelajahi daftar perintah kustom yang terus bertambah yang menampilkan kemampuan keamanan baru di ekstensi Keamanan Gemini CLI dan mulai menggunakannya dalam alur kerja Anda. Contoh:
/security:scan-depsmelakukan referensi silang dependensi project Anda dengan OSV.dev.
Lihat catatan rilis untuk mengetahui fitur dan perbaikan bug terbaru.
7. Selamat
Selamat, Anda telah berhasil mengonfigurasi repositori GitHub untuk menggunakan Ekstensi Keamanan Gemini CLI guna menganalisis PR untuk mengetahui risiko dan kerentanan keamanan.