Menggunakan validasi berkelanjutan lama

Halaman ini ditujukan untuk pengguna validasi berkelanjutan lama (CV lama) (tidak digunakan lagi).

Validasi berkelanjutan lama adalah fitur Otorisasi Biner yang secara berkala memeriksa image container yang terkait dengan Pod yang sedang berjalan untuk memastikan kepatuhan berkelanjutan terhadap kebijakan singleton project Otorisasi Biner Anda. CV lama mencatat temuan ke Cloud Logging.

CV lama tidak menghentikan Pod yang sedang berjalan.

Batasan

CV lama memiliki batasan berikut:

  • CV lama hanya mendukung Pod yang di-deploy di Google Kubernetes Engine (GKE).
  • CV lama tidak mendukung kebijakan Otorisasi Biner yang menentukan aturan khusus untuk identitas layanan Cloud 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 lama mencatat peristiwa kepatuhan 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 lama 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'

Mengaktifkan CV lama

Konsol

Untuk mengaktifkan CV lama menggunakan Google Cloud konsol, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman Binary Authorization Policy.

    Buka Kebijakan Otorisasi Biner

  2. Klik tab Policy.

  3. Klik Edit Policy.

  4. Luaskan bagian Additional settings for GKE and Anthos deployments.

  5. Centang kotak Enable Continuous Validation.

  6. Klik Save Policy.

REST API

Untuk mengaktifkan CV lama menggunakan REST API, lakukan hal berikut:

  1. Simpan ID project 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 hanya berlaku dalam waktu singkat.

  3. Aktifkan CV lama:

    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 lama kini dikonfigurasi untuk mencatat peristiwa.

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 lama, lihat Melihat peristiwa CV lama di Cloud Logging.

Pemecahan masalah

CV lama menggunakan layanan lain Google Cloud , seperti Cloud Asset Inventory dan Pub/Sub. Jika CV lama gagal, Anda dapat memeriksa error Cloud Asset Inventory di Cloud Logging.

Selain itu, CV lama membuat resource feed bernama binauthz-cv-cai-feed. Menghapus atau mengubah feed dapat menyebabkan CV lama gagal. CV lama otomatis memulihkan feed yang hilang atau diubah, tetapi dapat gagal mencatat temuan hingga melakukannya.

Menonaktifkan CV

Konsol

Untuk menonaktifkan CV lama menggunakan Google Cloud konsol, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman Binary Authorization:

    Buka Kebijakan Otorisasi Biner

  2. Klik tab Policy.

  3. Klik Edit Policy.

  4. Hapus centang pada kotak Enable Continuous Validation.

  5. Klik Save Policy.

REST API

Untuk menonaktifkan CV lama menggunakan REST API, lakukan hal berikut:

  1. Simpan ID project 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 hanya berlaku dalam waktu singkat.

  3. Nonaktifkan CV lama 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 lama di Cloud Logging

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

Entri log ini berisi nama log berikut:

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

Logs Explorer

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

  1. Buka Logs Explorer.

  2. Pilih ID project tempat Anda mengaktifkan Google Cloud Observability.

  3. Masukkan kueri berikut di kotak search-query:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. Pilih rentang waktu di time-range selector.

Logs Viewer Lama

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

  1. Buka Logs Explorer.

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

  3. Pilih Google Cloud project untuk tempat Anda menyiapkan Google Cloud Observability.

  4. Masukkan kueri berikut ke dalam search-query box:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. Pilih rentang waktu di time-range selector.

gcloud

Untuk melihat peristiwa CV lama 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 berikutnya