Mengintegrasikan validasi IaC dengan GitHub Actions

Anda dapat menggunakan alat Analyze Code Security tindakan untuk memvalidasi infrastruktur sebagai kode (IaC) yang merupakan bagian dari GitHub Actions Anda alur kerja. Dengan memvalidasi IaC, Anda dapat menentukan apakah resource Terraform atau tidak melanggar kebijakan organisasi yang ada dan Pendeteksi Security Health Analytics yang diterapkan ke resource Google Cloud Anda.

Untuk informasi selengkapnya tentang validasi IaC, lihat Validasi IaC berdasarkan kebijakan organisasi Google Cloud Anda.

Sebelum memulai

Selesaikan tugas ini untuk mulai menggunakan validasi IaC dengan GitHub Actions.

Aktifkan paket Enterprise atau paket Premium Security Command Center Premium

Verifikasi bahwa Paket Security Command Center Premium atau paket Enterprise diaktifkan di tingkat organisasi.

Mengaktifkan Security Command Center mengaktifkan securityposture.googleapis.com dan securitycentermanagement.googleapis.com API.

Membuat akun layanan

Buat akun layanan yang dapat Anda gunakan untuk Analytics Code Security tindakan.

  1. Di konsol Google Cloud, buka halaman Buat akun layanan.

    Buka Create service account
  2. Pilih project Anda.
  3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

    Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

  4. Klik Buat dan lanjutkan.
  5. Berikan peran Security Posture Shift-Left Validator ke akun layanan.

    Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Security Posture Shift-Left Validator.

  6. Klik Lanjutkan.
  7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

Untuk informasi selengkapnya tentang izin validasi IaC, lihat IAM untuk aktivasi tingkat organisasi.

Menyiapkan autentikasi

  1. Konfigurasi Workload Identity Federation dengan penyedia identitas GitHub Anda. Sebagai petunjuk, lihat Workload Identity Federation.

  2. Dapatkan URL untuk token Workload Identity Federation ID 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.
  3. Tambahkan Authentication to Google Cloud tindakan ke alur kerja Anda untuk mengautentikasi tindakan validasi IaC.

Menentukan kebijakan

Tentukan kebijakan organisasi dan Pendeteksi Security Health Analytics. Untuk menentukan kebijakan ini menggunakan postur keamanan, selesaikan tugas di Buat dan terapkan postur.

Membuat file JSON paket Terraform

  1. Buat kode Terraform Anda. Untuk mengetahui petunjuknya, lihat Membuat Terraform dari kode Anda.

  2. 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
    
  3. Buat file rencana Terraform:

    - name: Create Terraform Plan
      id: plan
      run: terraform plan -out=TF_PLAN_FILE
    

    Ganti TF_PLAN_FILE dengan nama untuk paket Terraform . Contoh, myplan.tfplan.

  4. Konversi 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 Terraform , dalam format JSON. Contoh, mytfplan.json.

Menambahkan tindakan ke alur kerja GitHub Actions

  1. Di repositori GitHub, buka alur kerja Anda.
  2. Buka editor alur kerja.
  3. Di sidebar GitHub Marketplace, cari Analyze Code Security.
  4. Di bagian Penginstalan, salin sintaksisnya.
  5. Tempel sintaksis sebagai langkah baru ke dalam alur kerja Anda.
  6. Ganti nilai berikut:

    • workload_identity_provider dengan link ke URL untuk Token ID Workload Identity Federation.
    • service_account dengan alamat email akun layanan yang Anda yang dibuat untuk tindakan.
    • organization_id dengan ID organisasi Google Cloud Anda.
    • scan_file_ref dengan jalur ke file rencana Terraform Anda, dalam format JSON.
    • failure_criteria dengan batas kegagalan kriteria yang menentukan kapan tindakan gagal. Kriteria ambang batasnya adalah berdasarkan jumlah masalah dengan tingkat keparahan kritis, tinggi, sedang, dan rendah yang pemindaian validasi IaC. failure_criteria menentukan berapa banyak masalah dari setiap tingkat keparahan diizinkan dan bagaimana masalah tersebut dikumpulkan (AND atau OR). Misalnya, jika Anda ingin tindakan gagal jika mengalami satu masalah kritis atau satu masalah dengan tingkat keparahan tinggi, tetapkan failure_criteria ke Critical:1,High:1,Operator:OR. Defaultnya adalah Critical:1,High:1,Medium:1,Low:1,Operator:OR, yang berarti jika IaC pemindaian validasi mengalami masalah, tindakan tersebut harus gagal.

Sekarang Anda dapat menjalankan alur kerja untuk memvalidasi file rencana Terraform. Untuk menjalankan secara manual, lihat Menjalankan alur kerja Anda.

Melihat laporan pelanggaran IaC

  1. Di repositori GitHub, klik Actions, lalu pilih alur kerja Anda.

  2. Klik operasi terbaru untuk alur kerja Anda.

    Di bagian Artefak, laporan pelanggaran (ias-scan-sarif.json) tersedia dalam file ZIP. Laporan ini berisi kolom berikut:

    • Kolom rules yang menjelaskan kebijakan mana yang dilanggar oleh paket Terraform. Setiap aturan menyertakan ruleID yang dapat Anda cocokkan dengan hasil yang disertakan dalam laporan.
    • Kolom results yang menjelaskan modifikasi aset yang diusulkan yang melanggar aturan tertentu.
  3. Selesaikan pelanggaran apa pun dalam kode Terraform Anda sebelum menerapkannya.

Langkah selanjutnya