Zulassung privilegierter Arbeitslasten im Autopilot-Modus

Sie können mithilfe von Zulassungslisten und Richtlinien steuern, welche privilegierten Arbeitslasten im Google Kubernetes Engine (GKE) Autopilot-Modus ausgeführt werden können. In diesem Dokument werden die Standardeinschränkungen beschrieben, die Autopilot für Arbeitslasten erzwingt, die Arten von privilegierten Arbeitslasten, die Sie im Autopilot-Modus ausführen können, und die Methoden zum Steuern der Zulassung von privilegierten Arbeitslasten.

Dieses Dokument richtet sich an folgende Personen:

  • Plattformadministratoren und ‑operatoren, die privilegierte GKE-Arbeitslasten aus verschiedenen Quellen im Autopilot-Modus ausführen möchten.
  • Identitäts- und Kontoadministratoren, die die Sicherheit ihrer Organisation verbessern möchten, indem sie alle privilegierten Arbeitslasten mit Ausnahme bestimmter Arbeitslasten blockieren.

Privilegierte Arbeitslasten im Autopilot-Modus

Um die Sicherheit zu verbessern, erzwingen Autopilot-Modus-Cluster und ‑Knoten standardmäßig bestimmte Sicherheitseinschränkungen. Autopilot lehnt beispielsweise die meisten Pods ab, bei denen das Feld spec.securityContext.privileged in einem Container auf true gesetzt ist. Privilegierte Arbeitslasten in Autopilot sind Arbeitslasten, die diese Standardeinschränkungen nicht erfüllen. Standardmäßig lehnen Autopilot-Knoten in einer Google Cloud Organisation privilegierte Arbeitslasten ab.

Bestimmte privilegierte Arbeitslasten können nur im Autopilot-Modus ausgeführt werden, wenn der Cluster Zulassungslisten hat, die mit diesen Arbeitslasten übereinstimmen. Wenn ein Clusteradministrator einen Cluster erstellt oder ändert, kann er Pfade zu Zulassungslisten angeben, die der Cluster ausführen kann. Standardmäßig unterstützt jede Google Cloud Organisation Zulassungslisten von Autopilot-Partnern und verifizierten Open-Source-Projekten.

Organisationsadministratoren können dieses Standardverhalten mit dem Organisationsrichtliniendienst auf folgende Weise ändern:

  • Alle Arbeitslasten von GKE Autopilot-Partnern und verifizierten Open-Source-Arbeitslasten zulassen. Dies ist das Standardverhalten in allen Google Cloud Organisationen.
  • Bestimmte Partnerarbeitslasten oder verifizierte Open-Source-Arbeitslasten zulassen.
  • Nur bestimmte privilegierte Arbeitslasten zulassen, die sich im Besitz des Kunden befinden.
  • Alle privilegierten Arbeitslasten ablehnen.

Dieser Ansatz alle ablehnen und dann einige zulassen ist eine bewährte Sicherheitsmethode, mit der Sie genau steuern können, was mit erhöhten Berechtigungen in Ihren GKE-Clustern ausgeführt wird.

In folgenden Situationen kann es sinnvoll sein, privilegierte Arbeitslasten im Autopilot-Modus zu steuern:

Quellen privilegierter Autopilot-Arbeitslasten

In der folgenden Tabelle werden die Arten von privilegierten Arbeitslasten beschrieben, die Sie in Autopilot ausführen können:

Typen privilegierter Arbeitslasten
Autopilot-Partnerarbeitslasten

Einige Partner bieten privilegierte Arbeitslasten für den Autopilot-Modus an. Google Cloud GKE verifiziert diese Partner Arbeitslasten. Diese Arbeitslasten sind für alle Kunden verfügbar. Standardmäßig kann jeder Kunde die entsprechenden Zulassungslisten in einem beliebigen Autopilot- oder Standardcluster installieren.

Weitere Informationen zu den verfügbaren Partnerarbeitslasten finden Sie unter Autopilot-Partner.

Open-Source-Arbeitslasten

Für bestimmte privilegierte Open-Source-Arbeitslasten gibt es Zulassungslisten, mit denen Sie diese Arbeitslasten im Autopilot-Modus ausführen können. GKE verifiziert diese Arbeitslasten. Standardmäßig kann jeder Kunde die entsprechenden Zulassungslisten in einem beliebigen Autopilot- oder Standard Cluster installieren.

Weitere Informationen zu den verfügbaren Open-Source-Arbeitslasten finden Sie unter Privilegierte Open-Source-Arbeitslasten in GKE Autopilot ausführen.

Arbeitslasten im Besitz des Kunden

Wenn Sie ein berechtigter Kunde mit privilegierten Arbeitslasten sind, die Sie in Autopilot-Knoten ausführen möchten, können Sie Zulassungslisten für diese Arbeitslasten erstellen. Diese Funktion ist standardmäßig für alle Google Cloud Organisationen deaktiviert. Mit dem Organisationsrichtliniendienst fügen Sie Zulassungspfade für bestimmte Arbeitslasten hinzu und aktualisieren dann Cluster, um diese Zulassungslisten zu installieren.

Weitere Informationen finden Sie im Abschnitt Privilegierte Arbeitslasten im Besitz des Kunden.

Funktionsweise der Zulassungssteuerung für privilegierte Arbeitslasten

Wenn Sie bestimmte privilegierte Arbeitslasten in Ihren Autopilot-Knoten ausführen möchten, installieren Sie Zulassungslisten , die den jeweiligen Arbeitslasten entsprechen. Diese Zulassungslisten sind benutzerdefinierte Kubernetes-Ressourcen vom Typ „WorkloadAllowlist“. GKE validiert die Arbeitslastdetails anhand aller WorkloadAllowlists im Cluster und lässt die Zulassung nur zu, wenn die Details übereinstimmen. Standardmäßig können Sie in jedem Autopilot- oder Standardcluster in einer Google Cloud Organisation WorkloadAllowlists für Autopilot-Partner Arbeitslasten und für Open-Source-Arbeitslasten installieren.

Im Wesentlichen sind für das Ausführen privilegierter Arbeitslasten in Autopilot-Knoten folgende Schritte erforderlich:

  1. Der Organisationsadministrator prüft, ob die verwaltete Einschränkung der Organisationsrichtlinie container.managed.autopilotPrivilegedAdmission die Installation von Zulassungslisten aus einer bestimmten Quelle zulässt. Weitere Informationen finden Sie im Abschnitt Verwaltete Einschränkung der Organisationsrichtlinie für Zulassungslisten.
  2. Für privilegierte Arbeitslasten im Besitz des Kunden erstellt der Plattformadministrator Zulassungslisten, die mit den privilegierten Arbeitslasten übereinstimmen. Weitere Informationen finden Sie im Abschnitt Privilegierte Arbeitslasten im Besitz des Kunden.
  3. Der Clusteradministrator konfiguriert einen Autopilot- oder Standardcluster so, dass die Installation von Zulassungslisten aus einer bestimmten Quelle zulässig ist. Weitere Informationen finden Sie im Abschnitt Clusterkonfiguration.
  4. Der Clusteradministrator erstellt einen AllowlistSynchronizer, der auf den Pfad zur Zulassungsliste verweist. Der AllowlistSynchronizer installiert die Zulassungsliste und hält sie auf dem neuesten Stand. Weitere Informationen finden Sie im Abschnitt Installation von Zulassungslisten.

Nach Abschluss dieser Schritte kann ein App-Operator die privilegierte Arbeitslast im Cluster bereitstellen.

Verwaltete Einschränkung der Organisationsrichtlinie für Zulassungslisten

Standardmäßig erzwingt jede Google Cloud Organisation eine Organisations richtlinie, die auf der container.managed.autopilotPrivilegedAdmission verwalteten Einschränkung basiert. Diese Einschränkung definiert eine Reihe von Datei- oder Verzeichnispfaden, aus denen GKE-Cluster Zulassungslisten installieren können. In der Clusterkonfiguration müssen Zulassungspfade aus den Parametern dieser Einschränkung verwendet werden.

Standardmäßig lässt die Einschränkung autopilotPrivilegedAdmission die Verwendung aller Zulassungslisten zu, die sich im Besitz von zugelassenen GKE-Partnern und Open-Source-Projekten befinden. Diese Einstellung entspricht der Standardkonfiguration von GKE-Clustern, die alle diese zugelassenen Zulassungslisten installieren können.

Als Administrator für Organisationsrichtlinien können Sie die Gruppe der Zulassungspfade ändern, die auf GKE-Cluster in Ihrer Organisation, Ihrem Ordner oder Ihrem Projekt angewendet werden können. Wenn Sie beispielsweise die Verwendung einer benutzerdefinierten Zulassungsliste zulassen möchten, die sich im Besitz Ihrer Organisation befindet, fügen Sie diesen Zulassungspfad der verwalteten Einschränkung hinzu.

Parameter der verwalteten Einschränkung

Die verwaltete Einschränkung autopilotPrivilegedAdmission hat die folgende Spezifikation:

spec:
  rules:
  - enforce: true
    parameters:
      allowAnyGKEPath: ALLOW_GKE_PATHS
      allowPaths:
      - PATH1
      - PATH2
      - PATH3

Mit den folgenden Feldern in der Spezifikation wird die Gruppe der Zulassungslisten gesteuert, die von Clustern verwendet werden können:

  • allowAnyGKEPath: Ein boolescher Wert, der steuert, ob Cluster die Standardgruppe der von GKE genehmigten Zulassungspfade verwenden können. Dieser Parameter unterstützt die folgenden Werte:

    • True: Clusteradministratoren können Cluster konfigurieren, ohne die Zulassungskonfiguration zu ändern, mit einem oder mehreren Zulassungspfaden, die mit gke:// beginnen, oder mit einem leeren String, um alle Zulassungslisten für den Cluster zu deaktivieren. True ist der Standardwert für diesen Parameter.

    • False: Clusteradministratoren müssen Cluster mit einem leeren String für Zulassungsquellen oder mit beliebigen Zulassungspfaden aus dem Parameter allowPaths konfigurieren.

  • allowPaths: Eine Liste der zugelassenen Zulassungsquellen, aus denen Clusteradministratoren Werte angeben können, wenn sie einen Cluster konfigurieren. Sie können Pfade zu bestimmten Zulassungslistendateien oder zu ganzen Verzeichnissen angeben.

In der folgenden Tabelle werden die Ergebnisse der Konfiguration dieser Parameter auf verschiedene Weise beschrieben:

Wert von allowAnyGKEPath Wert von allowPaths Ergebnis
True Leer oder nicht angegeben.

Clusteradministratoren können bei der Erstellung oder Änderung von Clustern eine der folgenden Aktionen ausführen:

  • Standardkonfiguration für Zulassungslisten verwenden: Lassen Sie alle Konfigurationsoptionen für Zulassungslisten weg, damit der Cluster Zulassungslisten aus jedem Pfad mit dem gke:// Präfix installieren kann.
  • Installation von Zulassungslisten deaktivieren: Geben Sie einen leeren Wert für die Zulassungskonfiguration des Clusters an.
  • GKE-Zulassungspfade angeben: Geben Sie einen oder mehrere Zulassungspfade mit dem gke:// Präfix an. Der Cluster kann Zulassungslisten nur aus diesen Pfaden installieren.
False Leer oder nicht angegeben.

Clusteradministratoren müssen einen leeren Wert für die Zulassungskonfiguration des Clusters angeben. Wenn Clusteradministratoren die Konfiguration des Zulassungspfads überspringen, dann schlägt die Erstellung oder Änderung des Clusters fehl.

True Werte sind angegeben.

Clusteradministratoren können bei der Erstellung oder Änderung von Clustern eine der folgenden Aktionen ausführen:

  • Standardkonfiguration für Zulassungslisten verwenden:Lassen Sie alle Konfigurationsoptionen für Zulassungslisten weg, damit der Cluster Zulassungslisten aus jedem Pfad mit dem gke:// Präfix installieren kann.
  • Installation von Zulassungslisten deaktivieren: Geben Sie einen leeren Wert für die Zulassungskonfiguration des Clusters an.
  • Zulassungspfade angeben: Geben Sie einen oder mehrere Zulassungspfade an, die entweder das Präfix gke:// haben oder im Parameter allowPaths angegeben sind.
False Werte sind angegeben.

Clusteradministratoren müssen bei der Erstellung oder Änderung von Clustern eine der folgenden Aktionen ausführen:

  • Installation von Zulassungslisten deaktivieren: Geben Sie einen leeren Wert für die Zulassungskonfiguration des Clusters an.
  • Zulassungspfade angeben: Geben Sie einen oder mehrere Zulassungspfade aus dem allowPaths Parameter an.

Weitere Informationen zum Steuern der Zulassung privilegierter Arbeitslasten in Organisationsrichtlinien finden Sie unter Privilegierte GKE-Arbeitslasten in Organisationen einschränken.

Privilegierte Arbeitslasten im Besitz des Kunden

Als GKE-Kunde haben Sie möglicherweise eigene spezialisierte Arbeitslasten, die im Cluster mehr Berechtigungen erfordern, als die Standardeinschränkungen für Autopilot zulassen. In GKE-Version 1.35 und höher können Sie diese Arbeitslasten von den Standardeinschränkungen für Autopilot ausnehmen, indem Sie Zulassungslisten erstellen.

Eine Zulassungsliste ist eine YAML-Datei, die eine benutzerdefinierte Kubernetes-Ressource vom Typ „WorkloadAllowlist“ definiert. Die Spezifikation einer WorkloadAllowlist entspricht verschiedenen Feldern in der Kubernetes Pod-Spezifikation. Wenn Sie eine WorkloadAllowlist definieren, gleichen Sie die Werte in der WorkloadAllowlist mit den entsprechenden Feldern in der Spezifikation Ihrer privilegierten Arbeitslast ab. Sie speichern die YAML-Dateien in einem Cloud Storage-Bucket.

Damit diese Zulassungslisten im Besitz des Kunden in einem Cluster installiert werden können, müssen folgende Schritte ausgeführt werden:

  1. Der Organisationsadministrator fügt die Cloud Storage-Pfade einer Organisationsrichtlinie hinzu. Weitere Informationen finden Sie im Abschnitt Verwaltete Einschränkung der Organisationsrichtlinie.
  2. Sie fügen die Cloud Storage-Pfade einer Clusterkonfiguration hinzu. Weitere Informationen finden Sie im Abschnitt Clusterkonfiguration.

Weitere Informationen zum Erstellen eigener WorkloadAllowlists finden Sie unter Zulassungslisten für privilegierte Autopilot-Arbeitslasten erstellen.

Clusterkonfiguration

Wenn Sie eine privilegierte Arbeitslast im Autopilot-Modus ausführen möchten, fügt ein Clusteradministrator der Clusterkonfiguration einen oder mehrere zugelassene Zulassungspfade hinzu. Nachdem Sie die Pfade dem Cluster hinzugefügt haben, können App-Operatoren die entsprechenden Zulassungslisten und privilegierten Arbeitslasten im Cluster installieren.

Standardmäßig können Sie Zulassungslisten von Autopilot-Partnern und zugelassenen Open-Source-Projekten installieren. Diese Standardgruppe zugelassener Quellen für Zulassungslisten kann sich aufgrund einer Organisationsrichtlinie ändern, wie im vorherigen Abschnitt beschrieben. Wenn eine Organisationsrichtlinie die zugelassenen Zulassungspfade steuert, müssen Sie sich mit Ihrem Organisationsadministrator abstimmen, um diese Pfade zu ermitteln. Anschließend können Sie einen oder mehrere der zugelassenen Pfade in der Clusterkonfiguration angeben.

Weitere Informationen zum Konfigurieren von Clustern finden Sie unter Privilegierte Arbeitslasten in Autopilot ausführen.

Installation von Zulassungslisten

Wenn Sie eine Zulassungsliste aus einer zugelassenen Quelle in Ihrem Cluster installieren möchten, verwenden Sie eine benutzerdefinierte Kubernetes-Ressource namens AllowlistSynchronizer. Sie definieren und erstellen AllowlistSynchronizers ähnlich wie andere Kubernetes-Ressourcen wie Pods und Deployments. Jeder AllowlistSynchronizer hat eine Liste von Pfaden zu Zulassungslisten, die Sie im Cluster installieren möchten.

Wenn Sie einen AllowlistSynchronizer erstellen, installiert GKE Zulassungslisten aus diesen Pfaden und hält sie auf dem neuesten Stand. Alle 10 Minuten prüft GKE, ob sich Zulassungslistendateien geändert haben. Wenn ein Update vorhanden ist, installiert der Synchronizer die aktualisierte Zulassungsliste im Cluster.

Nachdem GKE eine Zulassungsliste basierend auf einem AllowlistSynchronizer installiert hat, können Sie die entsprechende privilegierte Arbeitslast im Cluster erstellen.

Weitere Informationen zum Installieren von Zulassungslisten in einem Cluster finden Sie unter Privilegierte Arbeitslasten in Autopilot ausführen.

Zulassungspfade

Wenn Sie die Unterstützung von Zulassungslisten in Ihrer Organisationsrichtlinie oder Ihren Clustern konfigurieren, geben Sie Pfade zu einer oder mehreren WorkloadAllowlists an, die Sie für die Installation zugelassen haben. Die Syntax für diese Pfade hängt davon ab, wer die WorkloadAllowlist erstellt hat:

  • Bestimmte Autopilot-Partner und zugelassene Open-Source-Projekte:

    gke://REPOSITORY_PATH/SELECTOR
    

    Ersetzen Sie Folgendes:

    Der folgende Pfad wählt beispielsweise alle Zulassungslisten im Verzeichnis Grafana/alloy aus:

    gke://Grafana/alloy/*
    
  • Privilegierte Arbeitslasten im Besitz des Kunden:

    gs://DIRECTORY_PATH/SELECTOR
    

    Ersetzen Sie DIRECTORY_PATH durch den Pfad zum Verzeichnis in Cloud Storage, das Ihre Zulassungslistendateien enthält. Sie können mehrere Pfade angeben.

Sie können einen oder mehrere der oben genannten Pfade in Ihrer Organisationsrichtlinie oder Clusterkonfiguration angeben. Sie können beispielsweise GKE-Partnerarbeitslasten und Arbeitslasten im Besitz des Kunden derselben Konfiguration hinzufügen. Sie können auch das Zeichen * verwenden, um alle Zulassungslisten auszuwählen. Mit gke://* werden beispielsweise alle von GKE genehmigten Zulassungslisten aus einer beliebigen Quelle ausgewählt.

In der folgenden Tabelle wird die Konfiguration beschrieben, die in Organisationsrichtlinien oder Clustern erforderlich ist, um bestimmte Ziele zu unterstützen:

Ziel Konfiguration der Organisationsrichtlinie Clusterkonfiguration
Alle von GKE genehmigten WorkloadAllowlists zulassen Gehen Sie so vor:
  1. Setzen Sie den Parameter allowAnyGKEPath auf den Standardwert True.
  2. Lassen Sie den Parameter allowPaths leer.
Führen Sie einen der folgenden Schritte aus:
  • Konfigurieren Sie keine Zulassungslisten für Ihren Cluster. Standardmäßig lassen alle Cluster die Installation von von GKE genehmigten WorkloadAllowlists zu.
  • Geben Sie beim Konfigurieren von Zulassungslisten für Ihren Cluster nur gke://* als zugelassenen Pfad an, wenn Sie
Nur bestimmte von GKE genehmigte WorkloadAllowlists zulassen Gehen Sie so vor:
  1. Setzen Sie den Parameter allowAnyGKEPath auf False.
  2. Geben Sie im Parameter allowPaths Pfade zu bestimmten von GKE genehmigten WorkloadAllowlists an.
Geben Sie beim Erstellen oder Aktualisieren eines Clusters Pfade zu bestimmten von GKE genehmigten WorkloadAllowlists an. Eine Organisationsrichtlinie kann einschränken, welche von GKE genehmigten Pfade Sie angeben können.
Nur von Kunden verwaltete WorkloadAllowlists zulassen Gehen Sie so vor:
  1. Setzen Sie den Parameter allowAnyGKEPath auf False.
  2. Geben Sie im allowPaths Parameter Pfade zu von Kunden verwalteten WorkloadAllowlists an.
Geben Sie beim Erstellen oder Aktualisieren eines Clusters Pfade zu von Kunden verwalteten WorkloadAllowlists an. Die von Ihnen angegebenen Pfade müssen im allowPaths Parameter einer Organisationsrichtlinie enthalten sein.
Verwendung von WorkloadAllowlists verhindern Gehen Sie so vor:
  1. Setzen Sie den Parameter allowAnyGKEPath auf False.
  2. Lassen Sie den Parameter allowPaths leer.
Setzen Sie beim Erstellen oder Aktualisieren eines Clusters einen leeren String "" als zugelassenen Pfad, wenn Sie erstellen oder aktualisieren.

Nächste Schritte