Kontinuierliche Legacy-Validierung verwenden

Diese Seite richtet sich an Nutzer der Legacy-kontinuierlichen Validierung (Legacy-CV) (eingestellt).

Die kontinuierliche Legacy-Validierung ist ein Feature der Binärautorisierung, das regelmäßig Container-Images überprüft, die mit ausgeführten Pods verknüpft sind, um die Einhaltung Ihrer Singleton-Richtlinie für die Binärautorisierung zu gewährleisten. Die Ergebnisse des Legacy CV-Logs werden in Cloud Logging protokolliert.

Legacy CV beendet die ausgeführten Pods nicht.

Beschränkungen

Für die Legacy-CV gelten die folgenden Einschränkungen:

  • Legacy CV unterstützt nur Pods, die in Google Kubernetes Engine (GKE) bereitgestellt werden.
  • Legacy CV unterstützt keine Richtlinien für die Binärautorisierung, die bestimmte Regeln für Anthos Service Mesh-Dienstidentitäten, Kubernetes-Dienstkonten oder Kubernetes-Namespaces angeben.

Hinweise

  1. Achten Sie darauf, dass Sie die Binärautorisierung für Google Kubernetes Engine in einem Projekt eingerichtet haben. Legacy-CV-Logs zur Konformität von Richtlinien von Pods in allen Clustern im Projekt.

  2. Prüfen, ob die gcloud CLI auf die neueste Version aktualisiert ist

Erforderliche Berechtigungen

IAM-Rollen (Identity and Access Management) enthalten Berechtigungen und können Nutzern, Gruppen und Dienstkonten zugewiesen werden. Die folgenden Rollen enthalten die aufgeführten Berechtigungen für CV:

Rollenname Legacy-CV-Berechtigungen Beschreibung
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update CV aktivieren und deaktivieren

Führen Sie die folgenden Befehle aus, um die erforderlichen IAM-Berechtigungen festzulegen:

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'

Legacy-CV aktivieren

Console

So aktivieren Sie Legacy CV mithilfe der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Richtlinien für die Binärautorisierung auf.

    Zur Richtlinie für die Binärautorisierung

  2. Klicken Sie auf den Tab Richtlinie.

  3. Klicken Sie auf Richtlinie bearbeiten.

  4. Erweitern Sie den Abschnitt Zusätzliche Einstellungen für GKE- und Anthos-Bereitstellungen.

  5. Klicken Sie auf das Kästchen Kontinuierliche Validierung aktivieren.

  6. Klicken Sie auf Save Policy (Richtlinie speichern).

REST API

So aktivieren Sie Legacy CV mit der REST API:

  1. Speichern Sie Ihre Projekt-ID:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Ersetzen Sie dabei DEPLOYER_PROJECT_ID durch die ID des Projekts, in dem Sie GKE ausführen.

  2. Rufen Sie das OAuth-Token für Google Cloud ab.

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

    Das Token ist nur für kurze Zeit gültig.

  3. Legacy-CV aktivieren

    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"}}'
    

Das Legacy-CV ist jetzt so konfiguriert, dass Ereignisse protokolliert werden.

Der Logging-Logeintrag ähnelt dem folgenden Beispiel:

{
"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"
}

Informationen zum Abfragen von Legacy-CV-Ereignissen finden Sie unter Legacy-CV-Ereignisse in Cloud Logging ansehen.

Fehlerbehebung

Legacy CV verwendet andere Google Cloud-Dienste wie Cloud Asset Inventory und Pub/Sub. Wenn Legacy CV fehlschlägt, können Sie in Cloud Logging nach Fehlern von Cloud Asset Inventory suchen.

Darüber hinaus erstellt Legacy CV eine Feedressource mit dem Namen binauthz-cv-cai-feed. Das Löschen oder Ändern des Feeds kann dazu führen, dass Legacy CV fehlschlägt. Legacy CV stellt fehlende oder geänderte Feeds automatisch wieder her, kann die Ergebnisse jedoch möglicherweise erst protokollieren, wenn die Wiederherstellung erfolgt ist.

CV deaktivieren

Console

So deaktivieren Sie Legacy-CV mithilfe der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Binärautorisierung auf:

    Zur Richtlinie für die Binärautorisierung

  2. Klicken Sie auf den Tab Richtlinie.

  3. Klicken Sie auf Richtlinie bearbeiten.

  4. Entfernen Sie das Häkchen bei Kontinuierliche Validierung aktivieren.

  5. Klicken Sie auf Save Policy (Richtlinie speichern).

REST API

So deaktivieren Sie Legacy CV mit der REST API:

  1. Speichern Sie Ihre Projekt-ID:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Ersetzen Sie dabei DEPLOYER_PROJECT_ID durch die ID des Projekts, in dem Sie GKE ausführen.

  2. Rufen Sie das OAuth-Token für Google Cloud ab.

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

    Das Token ist nur für kurze Zeit gültig.

  3. Deaktivieren Sie Legacy-CV mit dem folgenden Befehl:

    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"}}'
    

Legacy-CV-Ereignisse in Cloud Logging ansehen

Nachdem Sie CV aktiviert haben, werden regelmäßig alle Pods protokolliert, die gegen die Richtlinie zur Binärautorisierung verstoßen, in Cloud Logging.

Diese Logeinträge enthalten den folgenden Lognamen:

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

Log-Explorer

So rufen Sie Legacy CV-Ereignisse in Cloud Logging mit dem Log-Explorer auf:

  1. Zum Log-Explorer

  2. Wählen Sie die Projekt-ID aus, für die Sie Google Cloud Observability aktiviert haben.

  3. Geben Sie die folgende Abfrage in das Feld search-query ein:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. Wählen Sie den Zeitraum unter time-range selector aus.

Legacy-Loganzeige

So rufen Sie Legacy CV-Ereignisse in Cloud Logging mit dem Log-Explorer auf:

  1. Zum Log-Explorer

  2. Wählen Sie im Drop-down-Menü Optionen die Option Zurück zur Legacy-Loganzeige aus.

  3. Wählen Sie das Google Cloud-Projekt aus, für das Sie Google Cloud Observability einrichten möchten.

  4. Geben Sie in das Feld search-query die folgende Abfrage ein:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. Wählen Sie den Zeitraum unter time-range selector aus.

gcloud

Führen Sie den folgenden Befehl aus, um die Legacy CV-Ereignisse der letzten Woche mit gcloud in Cloud Logging anzusehen:

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

Nächste Schritte