Anda dapat menggunakan tindakan Analyze Code Security untuk memvalidasi infrastruktur sebagai kode (IaC) yang merupakan bagian dari alur kerja GitHub Actions Anda. Dengan memvalidasi IaC, Anda dapat menentukan apakah definisi resource Terraform Anda melanggar kebijakan organisasi dan detektor Security Health Analytics yang ada yang diterapkan ke resource Anda. Google Cloud
Untuk mengetahui informasi selengkapnya tentang validasi IaC, lihat Memvalidasi IaC terhadap kebijakan organisasi Anda. Google Cloud
Sebelum memulai
Selesaikan tugas berikut untuk mulai menggunakan validasi IaC dengan GitHub Actions.
Mengaktifkan paket Premium atau paket Enterprise Security Command Center
Mengaktifkan Security Command Center akan mengaktifkan API securityposture.googleapis.com dan securitycentermanagement.googleapis.com.
Membuat akun layanan
Buat akun layanan yang dapat Anda gunakan untuk tindakan Analyze Code Security.
-
Pastikan Anda memiliki peran IAM Buat Akun Layanan
(
-
Di Google Cloud console, buka halaman Buat akun layanan.
Buka Buat akun layanan - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Console akan mengisi kolom ID akun layanan berdasarkan nama ini. Google Cloud
Di kolom Deskripsi akun layanan, masukkan deskripsi. Sebagai contoh,
Service account for quickstart. - Klik Buat dan lanjutkan.
-
Berikan peran Security Posture Shift-Left Validator ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Security Posture Shift-Left Validator.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
roles/iam.serviceAccountCreator) dan peran IAM Admin Project
(roles/resourcemanager.projectIamAdmin). Pelajari cara memberikan
peran.
Untuk mengetahui informasi selengkapnya tentang izin validasi IaC, lihat IAM untuk aktivasi tingkat organisasi.
Menyiapkan autentikasi
Konfigurasikan Workload Identity Federation dengan penyedia identitas GitHub Anda. Untuk mengetahui petunjuknya, lihat Workload Identity Federation.
Dapatkan URL untuk token ID Workload Identity Federation Anda. Misalnya,
https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID.Pertimbangkan hal berikut:
PROJECT_NUMBERadalah nomor project untuk Google Cloud project tempat Anda menyiapkan Workload Identity Federation.POOL_IDadalah nama pool.PROVIDER_IDadalah nama penyedia identitas Anda.
Tambahkan tindakan Authenticate to Google Cloud ke alur kerja Anda untuk mengautentikasi tindakan validasi IaC.
Menentukan kebijakan Anda
Tentukan kebijakan organisasi dan detektor Security Health AnalyticsAnda. Untuk menentukan kebijakan ini menggunakan postur keamanan, selesaikan tugas di Membuat dan men-deploy postur.
Membuat file JSON rencana Terraform Anda
Buat kode Terraform Anda. Untuk mengetahui petunjuknya, lihat Membuat kode Terraform Anda.
Di GitHub Actions Anda, lakukan inisialisasi Terraform. Misalnya, jika Anda menggunakan tindakan HashiCorp - Setup Terraform, jalankan perintah berikut:
- name: Terraform Init id: init run: terraform initBuat file rencana Terraform:
- name: Create Terraform Plan id: plan run: terraform plan -out=TF_PLAN_FILEGanti
TF_PLAN_FILEdengan nama untuk file rencana Terraform. Misalnya,myplan.tfplan.Konversikan file rencana Anda ke format JSON:
- name: Convert Terraform Plan to JSON id: convert run: terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILEGanti
TF_PLAN_JSON_FILEdengan nama untuk file rencana Terraform, dalam format JSON. Misalnya,mytfplan.json.
Menambahkan tindakan ke alur kerja GitHub Actions Anda
- Di repositori GitHub, telusuri alur kerja Anda.
- Buka editor alur kerja.
- Di sidebar GitHub Marketplace, telusuri Analyze Code Security.
- Di bagian Installation, salin sintaksis.
- Tempelkan sintaksis sebagai langkah baru ke dalam alur kerja Anda.
Ganti nilai berikut:
workload_identity_providerdengan link ke URL untuk token ID Workload Identity Federation Anda.service_accountdengan alamat email akun layanan yang Anda buat untuk tindakan tersebut.organization_iddengan ID organisasi Anda. Google Cloudscan_file_refdengan jalur ke file rencana Terraform Anda, dalam format JSON.failure_criteriadengan kriteria nilai minimum kegagalan yang menentukan kapan tindakan gagal. Kriteria nilai minimum didasarkan pada jumlah masalah tingkat keseriusan kritis, tinggi, sedang, dan rendah yang ditemukan oleh pemindaian validasi IaC.failure_criteriamenentukan jumlah masalah dari setiap tingkat keseriusan yang diizinkan dan cara masalah tersebut diagregasi (baikANDatauOR). Misalnya, jika Anda ingin tindakan gagal jika menemukan satu masalah kritis atau satu masalah tingkat keseriusan tinggi, tetapkanfailure_criteriakeCritical:1,High:1,Operator:OR. Nilai defaultnya adalahCritical:1,High:1,Medium:1,Low:1,Operator:OR, yang berarti bahwa jika pemindaian validasi IaC menemukan masalah apa pun, tindakan tersebut harus gagal.
Sekarang Anda dapat menjalankan alur kerja untuk memvalidasi file rencana Terraform Anda. Untuk menjalankan alur kerja secara manual, lihat Menjalankan alur kerja secara manual.
Melihat laporan pelanggaran IaC
Di repositori GitHub Anda, klik Actions , lalu pilih alur kerja Anda.
Klik run terbaru untuk alur kerja Anda.
Di bagian Artifacts, laporan pelanggaran (
ias-scan-sarif.json) tersedia dalam file zip. Laporan tersebut mencakup kolom berikut:- Kolom
rulesyang menjelaskan kebijakan mana yang dilanggar oleh rencana Terraform. Setiap aturan menyertakanruleIDyang dapat Anda cocokkan dengan hasil yang disertakan dalam laporan. - Kolom
resultsyang menjelaskan modifikasi aset yang diusulkan yang melanggar aturan tertentu.
- Kolom
Selesaikan pelanggaran apa pun dalam kode Terraform Anda sebelum menerapkannya.
Langkah berikutnya
- Lihat kode sumber tindakan analyze-code-security-scc di GitHub.