Auf dieser Seite erfahren Sie, wie Sie mit dem Organisationsrichtliniendienst festlegen, dass GKE-Cluster eine oder mehrere prüfbasierte Plattformrichtlinien für die kontinuierliche Validierung (CV) verwenden müssen. Sie geben die erforderlichen prüfbasierten Plattformrichtlinien in benutzerdefinierten Einschränkungen an. Anschließend erzwingen Sie die benutzerdefinierten Einschränkungen in Ihrer Organisationsrichtlinie.
Kosten
In diesem Leitfaden werden folgende Google Cloud-Dienste verwendet.
- Binärautorisierung, aber CV ist in der Vorschauphase kostenlos.
- Organisationsrichtlinien und Einschränkungen werden kostenlos angeboten.
Hinweise
- Binärautorisierung aktivieren.
- Richten Sie CV mit prüfbasierten Plattformrichtlinien und mindestens eine prüfbasierte CV-Plattformrichtlinie ein.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization Policy Administrator (roles/orgpolicy.policyAdmin
) in Ihrer Google Cloud-Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Einschränkungen und zum Erzwingen von Organisationsrichtlinien benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Benutzerdefinierte Einschränkung für Lebensläufe erstellen
Console
Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Klicken Sie auf der Seite Organisationsrichtlinien auf
Benutzerdefinierte Einschränkung.Klicken Sie bei Aufforderung auf Zur übergeordneten Organisation wechseln. Weitere Informationen zu Organisationen finden Sie unter Einführung in den Organisationsrichtliniendienst.
Geben Sie unter Einschränkungsdetails die folgenden Informationen in die Felder ein:
Anzeigename: Ein Anzeigename für die Einschränkung, z. B.
Require a Binary Authorization continuous validation policy for all GKE clusters
. Anhand des Anzeigenamens können Sie die Einschränkung nach dem Speichern aufrufen. Das Feld „Anzeigename“ darf maximal 200 Zeichen lang sein.Einschränkungs-ID: Eine Einschränkungs-ID für Ihre Einschränkung, z. B.
RequireBinAuthzCVPolicy
.Beschreibung (Optional): Eine nutzerfreundliche Beschreibung der Einschränkung, die als Fehlermeldung angezeigt werden soll, wenn die Richtlinie verletzt wird Das Beschreibungsfeld hat eine maximale Länge von 2.000 Zeichen.
Gehen Sie unter Durchsetzung so vor:
Geben Sie unter Ressourcentypen
container.googleaips.com/Cluster
ein.Wählen Sie unter Methode zur Erzwingung die Option Beim Erstellen und Aktualisieren erzwingen aus.
Geben Sie einen Ausdruck in das Feld Bedingung ein. Dieses Feld hat eine maximale Länge von 1000 Zeichen. Die benutzerdefinierte Einschränkung wird angewendet, wenn die Bedingung
true
ergibt. Die Bedingung ist ein Ausdruck in der Common Expression Language (CEL)-Syntax. Sie können Ausdrücke mit „und“ (&&
) und „oder“ (||
) kombinieren, um eine komplexe Bedingung zu erstellen. CEL ist eine C-ähnliche Sprache für Ausdrücke. Weitere Informationen zur Syntax und Semantik von CEL finden Sie unter https://github.com/google/cel-spec. So geben Sie die Bedingung ein:Klicken Sie auf
Bedingung bearbeiten.Geben Sie einen Ausdruck ein, um zu prüfen, ob eine CV-Plattformrichtlinie vorhanden ist. Für die folgende Bedingung ist erforderlich, dass eine CV-Plattformrichtlinienbindung vorhanden ist und die Plattformrichtlinie einen bestimmten Namen hat:
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Ersetzen Sie Folgendes:
PROJECT_ID
: Die Projekt-ID Ihrer Plattformrichtlinie. Das Projekt muss sich in derselben Organisation befinden.POLICY_ID
: die Richtlinien-ID Ihrer Plattformrichtlinie.
Für die folgende Bedingung müssen zwei CV-Plattformrichtlinienbindungen vorhanden sein und jede muss einen bestimmten Namen für die Plattformrichtlinie haben.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: Die Projekt-ID Ihrer ersten Plattformrichtlinie. Das Projekt muss sich in derselben Organisation befinden.POLICY_ID1
: die Richtlinien-ID Ihrer ersten Plattformrichtlinie.PROJECT_ID2
: Die Projekt-ID Ihrer zweiten Plattformrichtlinie.POLICY_ID2
: die Richtlinien-ID Ihrer zweiten Plattformrichtlinie.Klicken Sie auf Speichern.
Wählen Sie unter Aktion die Option Zulassen aus.
Klicken Sie auf Einschränkung erstellen, um eine benutzerdefinierte Einschränkung zu erstellen.
gcloud
Erstellen Sie eine YAML-Datei für die benutzerdefinierte Einschränkung:
name: organizations/ORGANIZATION_ID/customConstraints/custom.CONSTRAINT_ID resource_types: container.googleapis.com/Cluster method_types: - CREATE - UPDATE condition: >- CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Ersetzen Sie Folgendes:
ORGANIZATION_ID
: Ihre Organisations-ID, z. B.123456789
.CONSTRAINT_ID
: eine Einschränkungs-ID, z. B.RequireBinAuthzCVPolicy
.CONDITION
: Geben Sie einen Ausdruck ein, um zu prüfen, ob eine CV-Plattformrichtlinie vorhanden ist. Dieses Feld hat eine maximale Länge von 1000 Zeichen. Die benutzerdefinierte Einschränkung wird angewendet, wenn die Bedingungtrue
ergibt. Die Bedingung ist ein Ausdruck in der Common Expression Language (CEL)-Syntax. Sie können Ausdrücke mit „und“ (&&
) und „oder“ (||
) kombinieren, um eine komplexe Bedingung zu erstellen. CEL ist eine C-ähnliche Sprache für Ausdrücke. Weitere Informationen zur Syntax und Semantik von CEL finden Sie unter https://github.com/google/cel-spec. Für die folgende Bedingung ist erforderlich, dass eine CV-Plattformrichtlinienbindung vorhanden ist und die Plattformrichtlinie einen bestimmten Namen hat:resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Ersetzen Sie Folgendes:
PROJECT_ID
: Die Projekt-ID Ihrer Plattformrichtlinie. Das Projekt muss sich in derselben Organisation befinden.POLICY_ID
: die Richtlinien-ID Ihrer Plattformrichtlinie.
Für die folgende Bedingung müssen zwei CV-Plattformrichtlinienbindungen vorhanden sein und jede muss einen bestimmten Namen für die Plattformrichtlinie haben.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: Die Projekt-ID Ihrer ersten Plattformrichtlinie. Das Projekt muss sich in derselben Organisation befinden.POLICY_ID1
: die Richtlinien-ID Ihrer ersten Plattformrichtlinie.PROJECT_ID2
: Die Projekt-ID Ihrer zweiten Plattformrichtlinie.POLICY_ID2
: die Richtlinien-ID Ihrer zweiten Plattformrichtlinie.ACTION
: Aktion, die ausgeführt werden soll, wenncondition
erfüllt ist. Dies kann entwederALLOW
oderDENY
sein.DISPLAY_NAME
: Ein nutzerfreundlicher Name für die Einschränkung, z. B.Require a Binary Authorization continuous validation policy for all GKE clusters
. Das Feld „Anzeigename“ darf maximal 200 Zeichen lang sein.DESCRIPTION
: Eine nutzerfreundliche Beschreibung der Einschränkung, die als Fehlermeldung angezeigt werden soll, wenn die Richtlinie verletzt wird Das Beschreibungsfeld hat eine maximale Länge von 2.000 Zeichen.
Wenden Sie die benutzerdefinierte Einschränkung an:
gcloud org-policies set-custom-constraint CUSTOM_CONSTRAINT_PATH
Ersetzen Sie
CUSTOM_CONSTRAINT_PATH
durch den Pfad zur Definition der benutzerdefinierten Einschränkung.Prüfen Sie, ob die benutzerdefinierte Einschränkung vorhanden ist:
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
Die Ausgabe sieht in etwa so aus:
CUSTOM_CONSTRAINT: custom.RequireBinAuthzCVPolicy ACTION_TYPE: ALLOW METHOD_TYPES: CREATE,UPDATE RESOURCE_TYPES: container.googleapis.com/Cluster DISPLAY_NAME: This cluster requires the continuous validation policy: projects/my-project/platforms/gke/policies/my-policy
Wenn Sie die Erzwingung der von Ihnen erstellten benutzerdefinierten Einschränkung aktivieren möchten, erstellen Sie eine Organisationsrichtlinie.
Benutzerdefinierte Einschränkung mit einer Organisationsrichtlinie erzwingen
Um die neue benutzerdefinierte Einschränkung zu erzwingen, erstellen Sie eine Organisationsrichtlinie, die auf die Einschränkung verweist, und wenden Sie die Organisationsrichtlinie an.
Console
So erzwingen Sie die Einschränkung:
Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Wählen Sie in der Projektauswahl die Organisation aus.
Suchen Sie in der Liste nach der Einschränkung und wählen Sie sie aus.
Klicken Sie auf der Seite Richtliniendetails für diese Einschränkung auf Richtlinie verwalten.
Wählen Sie auf der Seite Richtlinie bearbeiten die Option Richtlinie der übergeordneten Ressource überschreiben aus.
Klicken Sie auf Regel hinzufügen.
Wählen Sie unter Erzwingung die Option An aus.
Optional: Klicken Sie auf Änderungen testen, um die Auswirkungen dieser Organisationsrichtlinie zu simulieren. Weitere Informationen finden Sie unter Änderungen an Organisationsrichtlinien mit dem Richtliniensimulator testen.
Klicken Sie auf Richtlinie festlegen, um den Vorgang abzuschließen und die Organisationsrichtlinie anzuwenden.
gcloud
Erstellen Sie eine YAML-Datei mit der Richtliniendefinition:
name: organizations/ORGANIZATION_ID/policies/custom.CONSTRAINT_ID spec: rules: - enforce: true
Ersetzen Sie Folgendes:
ORGANIZATION_ID
: die Organisations-IDCONSTRAINT_ID
: die Einschränkungs-ID
Erzwingen Sie die Richtlinie:
gcloud org-policies set-policy ORG_POLICY_PATH
Ersetzen Sie
ORG_POLICY_PATH
durch den Pfad zu Ihrer Richtliniendefinitionsdatei.Prüfen Sie, ob die Richtlinie vorhanden ist:
gcloud org-policies list \ --organization=ORGANIZATION_ID
Ersetzen Sie
ORGANIZATION_ID
durch die Organisations-ID.Eine Liste der Argumente finden Sie unter
gcloud org-policies list
.Die Ausgabe sieht in etwa so aus:
CONSTRAINT: custom.RequireBinAuthzCVPolicy LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CN622LIGEIDXnpMB-
Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
So erzwingen Sie mehrere Einschränkungen für prüfbasierte CV-Plattformrichtlinien:
- Erstellen Sie eine benutzerdefinierte Einschränkung pro CV-Prüfungsrichtlinie.
- Aktualisieren Sie die Organisationsrichtlinie mit den einzelnen benutzerdefinierten Einschränkungen, wie in diesem Abschnitt beschrieben.
Benutzerdefinierte Einschränkung löschen
Sie können eine benutzerdefinierte Einschränkung mit der Google Cloud Console oder der Google Cloud CLI löschen.
Console
Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
Klicken Sie oben auf der Seite auf Projektauswahl.
Wählen Sie in der Projektauswahl Ihre Organisation aus.
Suchen Sie in der Liste nach der Einschränkung und wählen Sie sie aus.
Klicken Sie unter Einschränkungsdetails auf
Löschen.Klicken Sie auf Löschen, um zu bestätigen, dass Sie die Einschränkung löschen möchten.
gcloud
Verwenden Sie den Befehl org-policies delete-custom-constraint
der gcloud CLI, um eine benutzerdefinierte Einschränkung zu löschen:
gcloud org-policies delete-custom-constraint custom.CONSTRAINT_ID \
--organization=ORGANIZATION_ID
Ersetzen Sie Folgendes:
ORGANIZATION_ID
: Ihre Organisations-ID, z. B.123456789
CONSTRAINT_NAME
: der Name der benutzerdefinierten Einschränkung
Die Ausgabe sieht in etwa so aus:
Deleted custom constraint [organizations/123456789/customConstraints/CONSTRAINT_NAME]
Nachdem Sie eine benutzerdefinierte Einschränkung gelöscht haben, bleiben alle Richtlinien, die mit dieser Einschränkung erstellt wurden, erhalten, werden aber ignoriert. Sie können keine weitere benutzerdefinierte Einschränkung mit demselben Namen wie eine gelöschte benutzerdefinierte Einschränkung erstellen.
Nächste Schritte
- Informationen zu Einschränkungen für Organisationsrichtlinien.
- Aktualitätsprüfung für Bilder verwenden
- Einfache Prüfung auf Attestierungsignatur verwenden
- Sigstore-Signaturprüfung verwenden
- SLSA-Prüfung verwenden
- Prüfung auf vertrauenswürdige Verzeichnisse verwenden
- Sicherheitslückenprüfung verwenden
- CV-Logs ansehen