Anda dapat menggunakan tindakan Analisis Keamanan Kode 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 yang ada dan detector Security Health Analytics yang diterapkan ke resource Google Cloud Anda.
Untuk mengetahui informasi selengkapnya tentang validasi IaC, lihat Memvalidasi IaC terhadap kebijakan organisasi Google Cloud Anda.
Sebelum memulai
Selesaikan tugas berikut untuk memulai validasi IaC dengan GitHub Actions.
Mengaktifkan paket Premium Security Command Center atau paket Enterprise
Pastikan paket Premium atau Enterprise Security Command Center diaktifkan di tingkat organisasi.
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 Analisis Keamanan Kode.
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Security Posture Shift-Left Validator role to the service account.
To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.
- Click Continue.
-
Click Done to finish creating the service account.
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_NUMBER
adalah nomor project untuk project Google Cloud tempat Anda menyiapkan Workload Identity Federation.POOL_ID
adalah nama kumpulan.PROVIDER_ID
adalah nama penyedia identitas Anda.
Tambahkan tindakan Autentikasi ke Google Cloud ke alur kerja Anda untuk mengautentikasi tindakan validasi IaC.
Menentukan kebijakan Anda
Tentukan kebijakan organisasi dan detektor Security Health Analytics. Untuk menentukan kebijakan ini menggunakan postur keamanan, selesaikan tugas di Membuat dan men-deploy postur.
Membuat file JSON rencana Terraform
Buat kode Terraform Anda. Untuk mengetahui petunjuknya, lihat Membuat kode Terraform.
Di GitHub Actions, lakukan inisialisasi Terraform. Misalnya, jika Anda menggunakan HashiCorp - Setup Terraform action, jalankan perintah berikut:
- name: Terraform Init id: init run: terraform init
Buat file rencana Terraform:
- name: Create Terraform Plan id: plan run: terraform plan -out=TF_PLAN_FILE
Ganti
TF_PLAN_FILE
dengan nama untuk file rencana Terraform. Contoh,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_FILE
Ganti
TF_PLAN_JSON_FILE
dengan nama untuk file rencana Terraform, dalam format JSON. Contoh,mytfplan.json
.
Menambahkan tindakan ke alur kerja GitHub Actions
- Di repositori GitHub, buka alur kerja Anda.
- Buka editor alur kerja.
- Di sidebar GitHub Marketplace, telusuri Analyze Code Security.
- Di bagian Penginstalan, salin sintaksis.
- Tempelkan sintaksis sebagai langkah baru ke dalam alur kerja Anda.
Ganti nilai berikut:
workload_identity_provider
dengan link ke URL untuk token ID Workload Identity Federation Anda.service_account
dengan alamat email akun layanan yang Anda buat untuk tindakan tersebut.organization_id
dengan ID organisasi Google Cloud Anda.scan_file_ref
dengan jalur ke file rencana Terraform Anda, dalam format JSON.failure_criteria
dengan kriteria nilai minimum kegagalan yang menentukan kapan tindakan gagal. Kriteria nilai minimum didasarkan pada jumlah masalah dengan tingkat keparahan kritis, tinggi, sedang, dan rendah yang ditemukan oleh pemindaian validasi IaC.failure_criteria
menentukan jumlah masalah dari setiap tingkat keparahan yang diizinkan dan cara masalah digabungkan (AND
atauOR
). Misalnya, jika Anda ingin tindakan gagal jika mengalami satu masalah kritis atau satu masalah tingkat keparahan tinggi, tetapkanfailure_criteria
keCritical:1,High:1,Operator:OR
. Nilai defaultnya adalahCritical:1,High:1,Medium:1,Low:1,Operator:OR
, yang berarti bahwa jika pemindaian validasi IaC mengalami masalah, tindakan harus gagal.
Sekarang Anda dapat menjalankan alur kerja untuk memvalidasi file rencana Terraform. Untuk menjalankan alur kerja secara manual, lihat Menjalankan alur kerja secara manual.
Melihat laporan pelanggaran IaC
Di repositori GitHub Anda, klik Tindakan, lalu pilih alur kerja Anda.
Klik operasi terbaru untuk alur kerja Anda.
Di bagian Artefak, laporan pelanggaran (
ias-scan-sarif.json
) tersedia dalam file ZIP. Laporan ini mencakup kolom berikut:- Kolom
rules
yang menjelaskan kebijakan mana yang dilanggar oleh rencana Terraform. Setiap aturan menyertakanruleID
yang dapat Anda cocokkan dengan hasil yang disertakan dalam laporan. - Kolom
results
yang menjelaskan perubahan aset yang diusulkan yang melanggar aturan tertentu.
- Kolom
Selesaikan pelanggaran apa pun dalam kode Terraform Anda sebelum menerapkannya.
Langkah selanjutnya
- Lihat kode sumber tindakan analyze-code-security-scc di GitHub.