1. Pengantar
Ekstensi Keamanan Gemini CLI adalah ekstensi Gemini CLI open source buatan Google yang menganalisis kode untuk menemukan risiko dan kerentanan keamanan. Anda dapat menggunakan ekstensi Security 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 Security di repositori GitHub Anda.
Yang akan Anda lakukan
- Mengonfigurasi autentikasi yang 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 yang aman dari GitHub Actions ke Google Cloud
- Pelajari manfaat penggunaan Kumpulan Workload Identity dan Penyedia Workload Identity dibandingkan kunci Gemini API untuk autentikasi
- Cara menjalankan peninjauan keamanan dengan PR
- Cara menafsirkan peninjauan keamanan yang ditampilkan oleh ekstensi Keamanan
Yang Anda butuhkan
- Browser web
- Akun dan repositori GitHub
- Project Google Cloud
Codelab ini dirancang untuk developer yang sudah 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 penemuan 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 berjalan di Google Cloud. Klik Activate Cloud Shell di bagian atas konsol Google Cloud.

- Setelah terhubung ke Cloud Shell, periksa apakah Anda sudah diautentikasi dan project sudah 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 dijalankan tugas GitHub Actions, GitHub sebagai Penyedia Identitas eksternal menerbitkan JWT (Token Web JSON) yang ditandatangani. Token ini berisi "klaim" seperti
repository,workflow, danjob_workflow_ref, yang berfungsi sebagai kartu identitas digital untuk pelari tertentu tersebut. Dalam 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 menyetel URL penerbit ke URL layanan token GitHub resmi
https://token.actions.githubusercontent.comdan menentukan "Pemetaan Atribut", yang biasanya mencakup nama repositori dan cabang. Google Cloud STS memvalidasi JWT berdasarkan aturan Workload Identity Pool. Jika semuanya, termasuk pemetaan atribut, sudah benar, STS akan menukar token GitHub dengan Token Akses Gabungan Google Cloud yang berumur pendek. - Sekarang, tindakan
google-github-actions/run-gemini-clidalam alur kerja GitHub Actions Anda dapat menggunakan Token Akses Terfederasi Google Cloud dengan masa berlaku singkat untuk "meniru identitas" Akun Layanan yang terhubung ke Kumpulan Identitas Beban Kerja. 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 API Gemini, yang melibatkan pembuatan secret GitHub Actions baru bernama GEMINI_API_KEY dengan nilai kunci yang sesuai. Namun, tindakan ini tidak disarankan karena alasan keamanan berikut:
- Kunci API Gemini dapat memiliki izin yang luas dari binding peran IAM masing-masing. Jika disusupi, kredensial ini akan membuka akses ke berbagai resource dan layanan Google Cloud. Workload Identity Federation menggunakan akun layanan dan token akses berumur pendek, yang memperketat autentikasi secara signifikan.
- Kunci Gemini API juga sulit dikelola dalam skala besar. Mengidentifikasi alur kerja mana yang menggunakan kunci yang terekspos membutuhkan waktu. Memutar kunci secara manual juga membutuhkan 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 API Gemini, Anda harus selalu memeriksa kembali bahwa Anda tidak secara tidak sengaja mengeksposnya dalam log akses atau debug apa pun. Dengan Workload Identity Federation, Anda tidak menyimpan secret alur kerja GitHub Actions, tetapi variabel, yang pada dasarnya kurang sensitif.
Mengonfigurasi GitHub Actions dan Google Cloud
- Di Cloud Shell, login ke akun GitHub Anda.
gh auth login
- Buat file
setup_workload_identity.shbaru, lalu salin dan tempel skrip penyiapan dari repositorigoogle-github-actions/run-gemini-cli. - Jadikan skrip 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
- Periksa 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 skrip contoh alur kerjaymldari 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 origin 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 repositori. Tindakan ini akan memulai peninjauan keamanan pada PR. Ekstensi Keamanan Gemini CLI dari alur kerja GitHub Actions yang telah Anda lakukan ke repo akan menandai masalah keamanan apa pun yang ditemukannya berdasarkan kategori tingkat keparahan dari "Kritis", "Tinggi", "Sedang", hingga "Rendah".
Berikut adalah contoh peninjauan keamanan pada PR baru dan contoh peninjauan keamanan pada PR yang ada.
6. Eksplorasi lebih lanjut
Sebaiknya Anda menjelajahi 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-depsmencocokkan 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 risiko dan kerentanan keamanan.