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 den Sicherheitsstatus ihrer Organisation verbessern möchten, indem sie alle privilegierten Arbeitslasten mit Ausnahme bestimmter Arbeitslasten blockieren.

Privilegierte Arbeitslasten im Autopilot-Modus

Zur Verbesserung der Sicherheit erzwingen Cluster und Knoten im Autopilot-Modus standardmäßig bestimmte Sicherheitseinschränkungen. Beispielsweise lehnt Autopilot 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 Cloud de Confiance 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 Cloud de Confiance 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 Cloud de Confiance 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 Cloud de Confiance Partner bieten privilegierte Arbeitslasten für den Autopilot-Modus an. GKE überprüft diese Partner Arbeitslasten. Diese Arbeitslasten sind für alle Kunden verfügbar. Standardmäßig kann jeder Kunde die entsprechenden Zulassungslisten in jedem 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 überprüft diese Arbeitslasten. Standardmäßig kann jeder Kunde die entsprechenden Zulassungslisten in jedem 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 Cloud de Confiance 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 Cloud de Confiance Organisation WorkloadAllowlists für Autopilot-Partner Arbeitslasten und für Open-Source-Arbeitslasten installieren.

Auf übergeordneter Ebene umfasst das Ausführen privilegierter Arbeitslasten in Autopilot-Knoten folgende Schritte:

  1. Der Administrator der Organisation prüft, ob die verwaltete Organisationsrichtlinieneinschränkung 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 Anwendungsoperator die privilegierte Arbeitslast im Cluster bereitstellen.

Verwaltete Einschränkung der Organisationsrichtlinie für Zulassungslisten

Standardmäßig erzwingt jede Cloud de Confiance 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. Die Clusterkonfiguration muss Zulassungslistenpfade aus den Parametern dieser Einschränkung verwenden.

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

Als Administrator für Organisationsrichtlinien können Sie die Gruppe der Zulassungslistenpfade ä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

Die folgenden Felder in der Spezifikation steuern die Gruppe der Zulassungslisten, die von Clustern verwendet werden können:

  • allowAnyGKEPath: Ein boolescher Wert, der steuert, ob Cluster die Standardgruppe der von GKE genehmigten Zulassungslistenpfade 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 genehmigten 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-Zulassungslistenpfade angeben: Geben Sie einen oder mehrere Zulassungslistenpfade 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.
  • Zulassungslistenpfade angeben: Geben Sie einen oder mehrere Zulassungslistenpfade 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.
  • Zulassungslistenpfade angeben: Geben Sie einen oder mehrere Zulassungslistenpfade aus dem allowPaths Parameter an.

Weitere Informationen zum Steuern der Zulassung von privilegierten 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 spezielle 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 die folgenden 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 genehmigte Zulassungslistenpfade hinzu. Nachdem Sie die Pfade dem Cluster hinzugefügt haben, können Anwendungsoperatoren die entsprechenden Zulassungslisten und privilegierten Arbeitslasten im Cluster installieren.

Standardmäßig können Sie Zulassungslisten von Autopilot-Partnern und genehmigten Open-Source-Projekten installieren. Diese Standardgruppe genehmigter Quellen für Zulassungslisten kann sich aufgrund einer Organisationsrichtlinie ändern, wie im vorherigen Abschnitt beschrieben. Wenn eine Organisationsrichtlinie die genehmigten Zulassungspfade steuert, müssen Sie sich mit Ihrem Organisationsadministrator abstimmen, um diese Pfade zu ermitteln. Anschließend können Sie einen oder mehrere der genehmigten 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 genehmigten 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 sucht GKE nach Änderungen an Zulassungslistendateien. 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.

Zulassungsliste-Pfade

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 genehmigt haben. Die Syntax für diese Pfade hängt davon ab, wer die WorkloadAllowlist erstellt hat:

  • Bestimmte Autopilot-Partner und genehmigte 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 genehmigten Pfad an, wenn Sie Zulassungslisten für Ihren Cluster konfigurieren.
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 genehmigten Pfad, wenn Sie einen Cluster erstellen oder aktualisieren.

Nächste Schritte