Gunakan validasi berkelanjutan lama

Halaman ini ditujukan untuk pengguna CV lama.

Validasi berkelanjutan (CV) kini mendukung kebijakan platform dengan pemeriksaan. Jika Anda baru menggunakan CV, sebaiknya gunakan CV yang berisi kebijakan platform. Jika Anda menggunakan CV lama, sebaiknya upgrade kebijakan singleton project ke kebijakan platform.

CV adalah fitur Otorisasi Biner yang secara berkala memeriksa image container yang terkait dengan Pod yang berjalan untuk terus mematuhi kebijakan project-singleton Otorisasi Biner Anda. CV mencatat temuan log ke Cloud Logging.

CV tidak menghentikan Pod yang sedang berjalan.

Batasan

CV memiliki batasan berikut:

  • CV hanya mendukung Pod yang di-deploy di Google Kubernetes Engine (GKE).
  • CV tidak mendukung kebijakan Otorisasi Biner yang menentukan aturan khusus untuk identitas layanan Anthos Service Mesh, akun layanan Kubernetes, atau namespace Kubernetes.

Sebelum memulai

  1. Pastikan Anda telah menyiapkan Otorisasi Biner untuk Google Kubernetes Engine dalam sebuah project. CV mencatat peristiwa kesesuaian kebijakan dari Pod di semua cluster dalam project.

  2. Pastikan gcloud CLI diupdate ke versi terbaru

Izin yang diperlukan

Peran Identity and Access Management (IAM) mencakup izin dan dapat ditetapkan ke pengguna, grup, dan akun layanan. Peran berikut mencakup izin yang tercantum untuk CV:

Nama peran Izin CV Deskripsi
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update Mengaktifkan dan menonaktifkan CV.

Untuk menetapkan izin IAM yang diperlukan, jalankan perintah berikut:

PROJECT_NUMBER=$(gcloud projects list \
  --filter="projectId:ATTESTATION_PROJECT_ID" \
  --format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role='roles/containeranalysis.occurrences.viewer'

Aktifkan CV lama

Konsol

Untuk mengaktifkan CV menggunakan Konsol Google Cloud, lakukan langkah berikut:

  1. Pada konsol Google Cloud, buka halaman Otorisasi Biner Kebijakan.

    Buka Binary Authorization Policy

  2. Klik tab Kebijakan.

  3. Klik Edit Policy.

  4. Luaskan bagian Setelan tambahan untuk deployment GKE dan Anthos.

  5. Centang kotak Aktifkan Validasi Berkelanjutan.

  6. Klik Simpan Kebijakan.

REST API

Untuk mengaktifkan CV menggunakan REST API, lakukan hal berikut:

  1. Simpan project ID Anda:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Ganti DEPLOYER_PROJECT_ID dengan ID project tempat Anda menjalankan GKE.

  2. Dapatkan token OAuth untuk Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    Token ini hanya valid dalam waktu singkat.

  3. Aktifkan CV:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
    

CV kini dikonfigurasi untuk mencatat peristiwa ke dalam log.

Entri log Logging mirip dengan contoh berikut:

{
"insertId": "6054e143-0000-2562-aa64-883d24f57e70",
"jsonPayload": {
  "@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
  "podEvent": {
    "images": [
      {
        "description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
        attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
        No attestations found that were valid and signed by a key trusted by
        the attestor",
        "image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
        "result": "DENY"
      }
    ],
    "verdict": "VIOLATES_POLICY",
    "deployTime": "2021-03-19T17:00:08Z",
    "pod": "<var>POD_NAME</var>"
  }
},
"resource": {
  "type": "k8s_cluster",
  "labels": {
    "cluster_name": "<var>CLUSTER_NAME</var>",
    "location": "<var>CLUSTER_LOCATION</var>",
    "project_id": "<var>DEPLOYER_PROJECT_ID</var>"
  }
},
"timestamp": "2021-03-19T17:15:43.872702342Z",
"severity": "WARNING",
"logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}

Untuk mempelajari cara membuat kueri untuk peristiwa CV, lihat Melihat peristiwa CV di Cloud Logging.

Pemecahan masalah

CV menggunakan layanan Google Cloud lainnya, seperti Inventaris Aset Cloud dan Pub/Sub. Jika CV gagal, Anda dapat memeriksa error Inventaris Aset Cloud di Cloud Logging.

Selain itu, CV membuat resource feed yang disebut binauthz-cv-cai-feed. Menghapus atau mengubah feed dapat menyebabkan CV gagal. CV secara otomatis memulihkan feed yang hilang atau diubah, tetapi dapat gagal mencatat temuan ke dalam log sebelum melakukan pemulihan.

Nonaktifkan CV

Konsol

Untuk menonaktifkan CV menggunakan konsol Google Cloud, lakukan langkah berikut:

  1. Di konsol Google Cloud, buka halaman Otorisasi Biner:

    Buka Binary Authorization Policy

  2. Klik tab Kebijakan.

  3. Klik Edit Policy.

  4. Hapus centang pada kotak Aktifkan Validasi Berkelanjutan.

  5. Klik Simpan Kebijakan.

REST API

Untuk menonaktifkan CV menggunakan REST API, lakukan hal berikut:

  1. Simpan project ID Anda:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Ganti DEPLOYER_PROJECT_ID dengan ID project tempat Anda menjalankan GKE.

  2. Dapatkan token OAuth untuk Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    Token ini hanya valid dalam waktu singkat.

  3. Nonaktifkan CV menggunakan perintah berikut:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
    

Melihat peristiwa CV di Cloud Logging

Setelah Anda mengaktifkan CV, semua Pod yang melanggar kebijakan Otorisasi Biner akan dicatat ke Cloud Logging secara berkala.

Entri log ini berisi nama log berikut:

logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"

Logs Explorer

Untuk melihat peristiwa CV di Cloud Logging menggunakan Logs Explorer, lakukan langkah berikut:

  1. Buka Logs Explorer.

  2. Pilih project ID tempat Anda mengaktifkan Kemampuan Observasi Google Cloud.

  3. Masukkan kueri berikut di kotak search-query:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. Pilih rentang waktu di pemilih rentang waktu.

Logs Viewer Lama

Untuk melihat peristiwa CV di Cloud Logging menggunakan Logs Explorer, lakukan langkah berikut:

  1. Buka Logs Explorer.

  2. Pilih Go back to the Legacy Logs Viewer dari menu drop-down Opsi.

  3. Pilih project Google Cloud tempat Anda menyiapkan Kemampuan Observasi Google Cloud.

  4. Masukkan kueri berikut ke dalam kotak kueri penelusuran:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. Pilih rentang waktu di pemilih rentang waktu.

gcloud

Untuk melihat peristiwa CV dari minggu lalu di Cloud Logging menggunakan gcloud, jalankan perintah berikut:

gcloud logging read --order="desc" --freshness=7d \
  'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'

Langkah selanjutnya