Beispielrichtlinien

Diese Seite enthält Beispielrichtlinien für die Binärautorisierung im YAML-Format. Eine Anleitung zum Konfigurieren von Richtlinien in der Binärautorisierung finden Sie unter Richtlinien mit der Google Cloud CLI konfigurieren oder Richtlinien mit der Google Cloud Console konfigurieren.

Alle Deployments zulassen

Das folgende Beispiel zeigt, wie Sie das Deployment aller Container-Images ohne Einschränkungen zulassen.

name: projects/example-project/policy
defaultAdmissionRule:
  evaluationMode: ALWAYS_ALLOW
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Hier hat die Standardregel den evaluationMode ALWAYS_ALLOW, was dazu führt, dass die Binärautorisierung das Deployment aller Container-Images zulässt. Die Standardeinstellung enforcementMode ist auf ENFORCED_BLOCK_AND_AUDIT_LOG gesetzt. Da jedoch alle Deployments zulässig sind, wird diese Aktion nie ausgeführt.

(Fast) alle Deployments blockieren

Im folgenden Beispiel wird gezeigt, wie Sie das Deployment aller Container-Images blockieren und gleichzeitig von Google verwaltete Systemimages zulassen. Diese Container-Images sind für den erfolgreichen Start der meisten Google Kubernetes Engine-Cluster (GKE) erforderlich.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Hier ist der Modus globalPolicyEvaluationMode aktiviert, sodass für GKE erforderliche Images nicht durch die Richtlinienerzwingung blockiert werden. Die Standardregel hat den evaluationMode ALWAYS_DENY. Dies führt dazu, dass die Binärautorisierung das Deployment aller Container-Images ablehnt. Der enforcementMode ist auf ENFORCED_BLOCK_AND_AUDIT_LOG gesetzt. Dies führt dazu, dass die Binärautorisierung das Deployment blockiert und dies in das Audit-Log schreibt.

Vor dem Deployment Signieren durch Attestierer verlangen

Im folgenden Beispiel wird gezeigt, wie Sie festlegen, dass Attestierer einen Release autorisieren, bevor ein Container-Image bereitgestellt werden kann. Das Deployment wird blockiert, wenn nicht alle Attestierer signiert haben.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Hier hat die Standardregel den evaluationMode REQUIRE_ATTESTATION, wodurch die Binärautorisierung nur das Deployment von Images zulässt, die von den erforderlichen Attestierern in requireAttestationsBy autorisiert wurden.

Deployments im Probelaufmodus zulassen

Der Probelaufmodus ist ein Erzwingungsmodus in einer Richtlinie, der das Deployment nicht konformer Images ermöglicht, aber Details zum Richtlinienverstoß und zum Deployment in das Audit-Log schreibt. Mit dem Probelaufmodus können Sie eine Richtlinie in Ihrer Produktionsumgebung testen, bevor sie in Kraft tritt.

Das folgende Beispiel zeigt, wie Sie das Deployment aller nicht konformen Images im Probelaufmodus zulassen.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: DRYRUN_AUDIT_LOG_ONLY
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Hier hat die Standardregel den enforcementMode DRYRUN_AUDIT_LOG_ONLY, wodurch das Deployment von Images zugelassen wird, die nicht vom angegebenen Attestierer autorisiert wurden. Informationen zum nicht konformen Deployment werden jedoch in das Audit-Log geschrieben.

Clusterspezifische Regel verwenden

Die folgenden Beispiele zeigen eine clusterspezifische Regel, die nur das Deployment von Container-Images zulässt, die von den angegebenen Attestierern autorisiert wurden:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
clusterAdmissionRules:
  us-east1-a.prod-cluster:
    evaluationMode: REQUIRE_ATTESTATION
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
    requireAttestationsBy:
    - projects/example-project/attestors/secure-build
    - projects/example-project/attestors/prod-qualified

Hier gilt die clusterspezifische Regel nur für die Container-Images, die in us-east1-a.prod-cluster bereitgestellt wurden. Für die Regel ist eine Attestierung durch zwei Attestierer erforderlich, bevor ein Image bereitgestellt werden kann.

Ausgenommene Images hinzufügen

Das folgende Beispiel zeigt, wie Sie der Liste der Images, die von der Richtlinie ausgenommen sind, zusätzliche Pfade in Container Registry oder einer anderen Registry hinzufügen:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
admissionWhitelistPatterns:
- namePattern: gcr.io/example-project-1/*
- namePattern: gcr.io/example-project-2/my-app
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Hier sind die übereinstimmenden Muster für zusätzliche ausgenommene Bilder gcr.io/example-project-1/* und gcr.io/example-project-2/my-app.