Mit der Binärautorisierung für Google Distributed Cloud können Sie die Erzwingung der Binärautorisierung bei der Bereitstellung auf Ihre lokalen Nutzercluster ausweiten, um deren Containerarbeitslasten zu schützen. Sie können die Erzwingungsregeln einer in Ihrem Google Cloud -Projekt konfigurierten Richtlinie auf Nutzercluster der Version 1.28 oder höher anwenden. Weitere Informationen zu Richtlinien und Regeln finden Sie in der Übersicht über die Binärautorisierung.
Wenn Sie die Vorabversion der Binärautorisierung für Google Distributed Cloud aktiviert haben, deaktivieren Sie sie und bereinigen Sie die Ressourcen, bevor Sie die GA-Funktion auf Clustern der Version 1.28 oder höher aktivieren.
Vorbereitung
Bevor Sie die Erzwingung von Binärautorisierungsrichtlinien für einen Nutzercluster aktivieren können, müssen die folgenden Voraussetzungen erfüllt sein:
Cluster bei einer Flotte registrieren: Ein mit
gkectlerstellter Cluster wird bei dem Google Cloud -Projekt registriert, das Sie im FeldgkeConnect.projectIDin der Clusterkonfigurationsdatei angeben. Dieses Projekt wird als Flotten-Hostprojekt bezeichnet. Weitere Informationen zu Flotten, darunter Anwendungsfälle, Best Practices und Beispiele, finden Sie in der Dokumentation zur Flottenverwaltung.Aktivieren Sie die Binärautorisierung API in Ihrem Google Cloud Projekt: Aktivieren Sie den Binärautorisierung-Service in Ihrem Flotten-Hostprojekt.
Fügen Sie Ihrem Flotten-Hostprojekt die Rolle „Binary Authorization Policy Evaluator“ hinzu: Führen Sie den folgenden Befehl aus, um dem Kubernetes-Dienstkonto in Ihrem Flotten-Hostprojekt die Rolle „Binary Authorization Policy Evaluator“ (
roles/binaryauthorization.policyEvaluator) zuzuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \ --role="roles/binaryauthorization.policyEvaluator"Wenn Ihr Cluster hinter einem Proxyserver ausgeführt wird, muss der Proxyserver Verbindungen zur Binärautorisierung API (
binaryauthorization.googleapis.com) zulassen. Diese API bietet eine richtlinienbasierte Bereitstellungsvalidierung und -steuerung für Images, die in Ihrem Cluster bereitgestellt werden. Weitere Informationen finden Sie unter Proxy- und Firewallregeln.
Sobald Sie die Voraussetzungen erfüllen, können Sie die Richtlinie für die Binärautorisierung aktivieren (oder deaktivieren), wenn Sie einen neuen Cluster erstellen oder einen vorhandenen Cluster aktualisieren.
Richtlinie zur Binärautorisierung beim Erstellen des Clusters aktivieren
Sie können die Erzwingung der Binärautorisierungsrichtlinie entweder mit gkectl oder der gcloud CLI aktivieren.
gkectl
So aktivieren Sie die Binärautorisierung, wenn Sie einen Cluster mit gkectl erstellen:
Fügen Sie vor dem Erstellen des Clusters
binaryAuthorization.evaluationModeder Konfigurationsdatei für den Nutzercluster hinzu, wie im folgenden Beispiel gezeigt:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce" ...Zulässige Werte für
evaluationModesind:project_singleton_policy_enforce: Erzwingen Sie die in der Richtlinie zur Binärautorisierung (auch als Projekt-Singleton-Richtlinie bezeichnet) angegebenen Regeln für Ihr Google Cloud Projekt, um die Bereitstellung von Container-Images in Ihrem Cluster zu steuern.disabled: Deaktiviert die Verwendung der Binärautorisierung für Ihren Cluster. Dies ist der Standardwert. Wenn SiebinaryAuthorizationweglassen, ist die Funktion deaktiviert.
Nehmen Sie alle anderen erforderlichen Änderungen in der Clusterkonfigurationsdatei vor und führen Sie dann den Befehl
gkectl create clusteraus.
Weitere Informationen zum Erstellen von Clustern finden Sie unter Google Distributed Cloud – Übersicht über die Installation.
Binärautorisierungsrichtlinie für einen vorhandenen Cluster aktivieren oder deaktivieren
Wenn Sie einen Cluster der Version 1.28 oder höher haben, können Sie die Binärautorisierung jederzeit mit gkectl oder der gcloud CLI aktivieren oder deaktivieren.
gkectl
Zum Aktivieren:
Bearbeiten Sie die Clusterkonfigurationsdatei, um die
binaryAuthorization-Felder hinzuzufügen:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"Aktualisieren Sie den Cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Ersetzen Sie Folgendes:
ADMIN_CLUSTER_KUBECONFIG: der Pfad der kubeconfig-Datei des AdministratorclustersUSER_CLUSTER_CONFIG_FILE: Pfad Ihrer Nutzercluster-Konfigurationsdatei.
Warten Sie, bis das Deployment mit dem Namen
binauthz-module-deploymentim Namespacebinauthz-systembereit ist.Wenn die Bereitstellung bereit ist, erzwingt die Binärautorisierung die Regeln, die in der Richtlinie für die Binärautorisierung angegeben sind, auch als Projekt-Singleton-Richtlinie bezeichnet. Diese Richtlinie ist mit Ihrem ProjektGoogle Cloud verknüpft und legt Regeln für die Bereitstellung von Container-Images fest. Weitere Informationen zum Aktualisieren eines Clusters mit
gkectlfinden Sie unter Cluster aktualisieren. Weitere Informationen zu Richtlinien und Regeln für die Binärautorisierung finden Sie unter Überblick über die Binärautorisierung.
So deaktivieren Sie die Funktion:
Bearbeiten Sie die Clusterkonfigurationsdatei und entfernen Sie entweder den Abschnitt
binaryAuthorizationoder setzen SieevaluationModeaufdisabled.... binaryAuthorization: evaluationMode: "disabled"Aktualisieren Sie den Cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Warten Sie nach dieser Änderung einige Minuten, bis das Deployment mit dem Namen
binauthz-module-deploymentim Namespacebinauthz-systementfernt wurde.
Fehlerbehebung
Wenn Sie nicht alle Voraussetzungen erfüllen, wird möglicherweise eine Meldung wie die folgende angezeigt, die auf ein Problem mit der Konfiguration der Binärautorisierung hinweist:
failed to validate Binary Authorization policy (1) Ensure the Binary Authorization API is enabled for your Google Cloud project: gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID (2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account: gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator