Privilegierte GKE-Arbeitslasten in Organisationen einschränken

Mit Richtlinien können Sie steuern, welche privilegierten Arbeitslasten in Google Kubernetes Engine-Clustern (GKE) in Ihrer gesamten Google Cloud -Organisation ausgeführt werden können. In diesem Dokument wird gezeigt, wie Sie mithilfe von Richtlinien genehmigte Arbeitslastquellen definieren und Best Practices erzwingen, um Ihren Sicherheitsstatus zu verbessern.

Dieses Dokument richtet sich an Identitäts- und Kontoadministratoren, die nur genehmigte privilegierte Arbeitslasten in der Organisation ausführen möchten. Sie sollten mit den Konzepten auf den folgenden Seiten vertraut sein:

Funktionsweise der Zulassungssteuerung für privilegierte Arbeitslasten für Organisationen

Standardmäßig erzwingt GKE Autopilot eine Reihe von Sicherheitsmaßnahmen für Arbeitslasten. Die einzige Möglichkeit, Arbeitslasten auszuführen, die gegen diese Einschränkungen verstoßen, besteht darin, Zulassungslisten für diese Arbeitslasten zu installieren. Wenn Sie eine Zulassungsliste aus einer bestimmten Quelle installieren möchten, muss der Cluster so konfiguriert sein, dass Zulassungslisten aus dieser Quelle zugelassen werden.

Standardmäßig können Plattformadministratoren in Google Cloud -Organisationen Cluster so konfigurieren, dass Zulassungslisten von GKE-Partnern und verifizierten Open-Source-Projekten zugelassen werden. Wenn Ihre Organisation Sicherheitsanforderungen hat, die privilegierte Arbeitslasten auf eine explizite bekannte Gruppe von Quellen beschränken, können Sie das Standardverhalten mit einer Organisationsrichtlinie ändern.

Wenn Sie eine Liste genehmigter Zulassungsquellen für Ihre Organisation, Ihren Ordner oder Ihr Projekt erzwingen, können Plattformadministratoren nur diese Quellen angeben, wenn sie Autopilot- oder Standardcluster erstellen oder aktualisieren. Wenn ein Cluster mit einer nicht genehmigten Quelle erstellt oder aktualisiert wird, schlägt der Vorgang fehl.

Welche Organisationsrichtlinien Sie konfigurieren sollten, hängt von Ihrem Anwendungsfall ab:

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Enable the Resource Manager API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. Enable the Resource Manager API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  4. Wenn Ihre Teams Zulassungslisten für privilegierte Arbeitslasten haben, die ihnen gehören, bitten Sie sie, Ihnen die Pfade zu diesen Zulassungslisten in Cloud Storage zu geben.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization policy administrator (roles/orgpolicy.policyAdmin) für die Organisation, den Ordner oder das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten 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.

Organisationsrichtlinie für Zulassungslisten konfigurieren

Sie können die genehmigten Quellen von Zulassungslisten für eine Organisation, einen Ordner oder ein Projekt steuern, indem Sie eine Organisationsrichtlinie basierend auf der verwalteten Einschränkung constraints/container.managed.autopilotPrivilegedAdmission erstellen oder aktualisieren. Wenn Sie diese Organisationsrichtlinie erzwingen, können Clusteradministratoren nur Zulassungslisten aus den Quellen installieren, die Sie in der Richtlinie definieren.

Zusätzlich zu diesen Schritten empfehlen wir, eine Organisationsrichtlinie zu erzwingen, die nur die Ausführung von Autopilot-Clustern in Ihrer Umgebung zulässt. Wenn in der Umgebung keine Standardcluster vorhanden sind, können nur Ihre genehmigten privilegierten Arbeitslasten ausgeführt werden. Weitere Informationen finden Sie im Abschnitt Organisationsrichtlinie so konfigurieren, dass nur Autopilot-Cluster zulässig sind.

Wählen Sie eine der folgenden Optionen aus, um eine Organisationsrichtlinie für Zulassungslisten für genehmigte privilegierte Arbeitslasten zu konfigurieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Organisationsrichtlinien auf:

    Zu den Organisationsrichtlinien

  2. Suchen Sie in der Tabelle mit den Einschränkungen nach der verwalteten Einschränkung container.managed.autopilotPrivilegedAdmission.

  3. Klicken Sie auf Aktionen > Richtlinie bearbeiten. Die Seite Richtlinie bearbeiten wird geöffnet.

  4. Wählen Sie im Abschnitt Richtlinienquelle die Option Richtlinie der übergeordneten Ressource überschreiben aus.

  5. Klicken Sie im Bereich Regeln auf Regel hinzufügen.

  6. Wählen Sie im Abschnitt Erzwingung die Option An aus. Der Abschnitt Parameter wird angezeigt.

  7. So legen Sie fest, ob von GKE genehmigte Zulassungslisten installiert werden können:

    1. Klicken Sie im Parameter allowAnyGKEPath auf Bearbeiten. Der Bereich Parameterwerte bearbeiten wird geöffnet.
    2. Wählen Sie im Bereich Werttyp die Option Benutzerdefiniert aus.
    3. Wählen Sie im Bereich Benutzerdefinierte Werte eine der folgenden Optionen aus:

      • True: Administratoren können Cluster so konfigurieren, dass Zulassungslisten von jedem Pfad ausgeführt werden, der mit gke:// beginnt. Das ist der Standardwert.
      • False: Administratoren können Cluster so konfigurieren, dass Zulassungslisten nur von den Pfaden ausgeführt werden, die Sie im Parameter allowPaths der Organisationsrichtlinie angeben. Wenn Sie im Parameter allowPaths keine Pfade angeben, können Cluster keine Zulassungslisten aus einer beliebigen Quelle ausführen.
    4. Klicken Sie auf Speichern. Der Bereich Parameterwerte bearbeiten wird geschlossen.

  8. So definieren Sie die spezifischen Zulassungslisten, die installiert werden können:

    1. Klicken Sie im Parameter allowPaths auf Bearbeiten. Der Bereich Parameterwerte bearbeiten wird geöffnet.
    2. Wählen Sie im Bereich Werttyp die Option Benutzerdefiniert aus.
    3. Geben Sie im Abschnitt Benutzerdefinierte Werte einen oder mehrere Pfade zu Quellen auf der Zulassungsliste an. Weitere Informationen zu den möglichen Angaben finden Sie unter Zulassungslistenpfade.
    4. Klicken Sie auf Speichern. Der Bereich Parameterwerte bearbeiten wird geschlossen.
    5. Klicken Sie im Bereich Regel bearbeiten auf Fertig.
  9. Optional: Klicken Sie auf Änderungen testen, um die Auswirkungen der Durchsetzung der Organisationsrichtlinie zu testen. Weitere Informationen finden Sie unter Änderungen an Organisationsrichtlinien mit dem Richtliniensimulator testen.

  10. Klicken Sie auf Probelaufrichtlinie festlegen, um die Richtlinie im Probelaufmodus zu erzwingen.

  11. Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie vorgesehen funktioniert, legen Sie die Live-Richtlinie fest, indem Sie auf Richtlinie festlegen klicken.

Es kann bis zu 15 Minuten dauern, bis Änderungen an Ihrer Organisationsrichtlinie vollständig wirksam werden.

gcloud

  1. Erstellen Sie eine YAML-Datei, in der die Organisationsrichtlinie definiert wird:

    name: RESOURCE_TYPE/RESOURCE_ID/policies/container.managed.autopilotPrivilegedAdmission
    spec:
      rules:
      - enforce: true
        parameters:
          allowAnyGKEPath: ALLOW_GKE_PATHS
          allowPaths:
          - ALLOWLIST1_PATH
          - ALLOWLIST2_PATH
    

    Ersetzen Sie Folgendes:

    • RESOURCE_TYPE: Der Typ derGoogle Cloud -Ressource. Dies muss einer der folgenden Werte sein:

      • organizations
      • folders
      • projects
    • RESOURCE_ID: die Organisations-ID, Ordner-ID oder Projekt-ID.

    • ALLOW_GKE_PATHS: Gibt an, ob von GKE genehmigte Zulassungslisten zulässig sind. Geben Sie einen der folgenden Werte an:

      • True: Clusterkonfiguration mit beliebigen GKE-Partnerarbeitslasten oder verifizierten Open-Source-Arbeitslasten zulassen. Dies ist der Standardwert.
      • False: Clusterkonfiguration nur mit den Pfaden im Feld allowPaths zulassen.

    • ALLOWLIST1_PATH,ALLOWLIST2_PATH: Der Pfad zu Zulassungslisten. Weitere Informationen zu den möglichen Angaben finden Sie unter Zulassungslistenpfade.

    Optional: Wenn Sie die Organisationsrichtlinie von einem Tag abhängig machen möchten, fügen Sie dem Feld rules einen condition-Block hinzu. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine bedingungsfreie Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinie mit Tags festlegen.

  2. Wenn Sie die Organisationsrichtlinie im Probelaufmodus festlegen möchten, geben Sie im Befehl gcloud org-policies set-policy den Wert dryRunSpec für das Flag --update-mask an:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=dryRunSpec
    

    Ersetzen Sie POLICY_FILEPATH durch den Pfad zur YAML-Datei, die Sie im vorherigen Schritt erstellt haben.

  3. Optional: Wenn Sie die Auswirkungen der Erzwingung dieser Organisationsrichtlinie testen möchten, verwenden Sie den Befehl gcloud policy-intelligence simulate org-policy:

    gcloud policy-intelligence simulate org-policy \
        --organization=ORGANIZATION_ID \
        --policy-path=POLICY_FILEPATH
    

    Ersetzen Sie ORGANIZATION_ID durch Ihre Organisations-ID.

  4. Nachdem Sie überprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie vorgesehen funktioniert, legen Sie die Live-Richtlinie fest. Geben Sie dazu den Wert spec für das Flag --update-mask im Befehl gcloud org-policies set-policy an:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=spec
    

    Es kann bis zu 15 Minuten dauern, bis Änderungen an Ihrer Organisationsrichtlinie vollständig wirksam werden.

Organisationsrichtlinie konfigurieren, um nur Autopilot-Cluster zuzulassen

In diesem Abschnitt erfahren Sie, wie Sie eine Organisationsrichtlinie konfigurieren, die nur Autopilot-Cluster zulässt. Wir empfehlen, diese Richtlinie zusätzlich zum Erstellen einer Organisationsrichtlinie für Zulassungslisten zu konfigurieren, da Standardcluster die meisten privilegierten Arbeitslasten ausführen können. Wenn Sie nur Autopilot-Cluster zulassen, werden in Ihrer Umgebung nur die privilegierten Arbeitslasten ausgeführt, die Sie zulassen. Die Schritte in diesem Abschnitt sind optional.

Wählen Sie eine der folgenden Optionen aus, um diese Richtlinie zu konfigurieren:

Console

  1. Erstellen Sie eine benutzerdefinierte Einschränkung, die nur die Erstellung von Autopilot-Clustern zulässt:

    1. Rufen Sie in der Google Cloud Console die Seite Organisationsrichtlinien auf:

      Zu den Organisationsrichtlinien

    2. Klicken Sie auf Benutzerdefinierte Einschränkung. Die Seite Benutzerdefinierte Einschränkung erstellen wird geöffnet.

    3. Geben Sie einen Anzeigenamen und eine eindeutige ID für die Einschränkung an.

    4. Führen Sie im Abschnitt Erzwingung die folgenden Schritte aus:

      1. Wählen Sie in der Liste Ressourcentyp die Option container.googleapis.com/Cluster aus.
      2. Wählen Sie in der Liste Erzwingungsmethode die Option Erzwingung beim Erstellen aus.
      3. Klicken Sie im Abschnitt Bedingung auf Bedingung bearbeiten. Der Bereich Bedingung hinzufügen wird geöffnet.
      4. Geben Sie den folgenden Ausdruck an:

        resource.autopilot.enabled == true
        
      5. Klicken Sie auf Speichern. Der Bereich Bedingung hinzufügen wird geschlossen.

      6. Wählen Sie im Bereich Aktion die Option Zulassen aus.

    5. Klicken Sie auf Einschränkung erstellen.

  2. Erstellen Sie eine benutzerdefinierte Organisationsrichtlinie, die die Einschränkung erzwingt:

    1. Suchen Sie in der Tabelle mit den Einschränkungen nach der benutzerdefinierten Einschränkung, die Sie im vorherigen Schritt erstellt haben.
    2. Klicken Sie auf Aktionen > Richtlinie bearbeiten. Die Seite Richtlinie bearbeiten wird geöffnet.
    3. Wählen Sie im Abschnitt Richtlinienquelle die Option Richtlinie der übergeordneten Ressource überschreiben aus.
    4. Klicken Sie auf Regel hinzufügen.
    5. Wählen Sie im Abschnitt Erzwingung die Option An aus.
    6. Klicken Sie auf Änderungen testen, um die Auswirkungen der Erzwingung der Organisationsrichtlinie zu testen. Weitere Informationen finden Sie unter Änderungen an Organisationsrichtlinien mit dem Richtliniensimulator testen.
    7. Klicken Sie auf Probelaufrichtlinie festlegen, um die Richtlinie im Probelaufmodus zu erzwingen.
    8. Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie vorgesehen funktioniert, legen Sie die Live-Richtlinie fest, indem Sie auf Richtlinie festlegen klicken.

    Es kann bis zu 15 Minuten dauern, bis Änderungen an Ihrer Organisationsrichtlinie vollständig wirksam werden.

gcloud

  1. Erstellen Sie eine benutzerdefinierte Einschränkung, die nur die Erstellung von Autopilot-Clustern zulässt:

    1. Erstellen Sie eine YAML-Datei, die die benutzerdefinierte Einschränkung definiert:

      name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: container.googleapis.com/Cluster
      methodTypes:
      - CREATE
      condition: resource.autopilot.enabled == true
      actionType: ALLOW
      displayName: "Allow only Autopilot clusters"
      

      Ersetzen Sie Folgendes:

      • ORGANIZATION_ID: Ihre Organisations-ID.
      • CONSTRAINT_NAME: ein Name für die neue Einschränkung.
    2. Legen Sie die benutzerdefinierte Einschränkung fest:

      gcloud org-policies set-custom-constraint CONSTRAINT_FILEPATH
      

      Ersetzen Sie CONSTRAINT_FILEPATH durch den Pfad zur YAML-Datei, die Sie im vorherigen Schritt erstellt haben.

    Die benutzerdefinierte Einschränkung kann in einer Organisationsrichtlinie verwendet werden.

  2. Erstellen Sie eine benutzerdefinierte Organisationsrichtlinie, die die Einschränkung erzwingt:

    1. Erstellen Sie eine YAML-Datei, in der die Organisationsrichtlinie definiert wird:

      name: RESOURCE_TYPE/RESOURCE_ID/policies/custom.CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      

      Ersetzen Sie Folgendes:

      • RESOURCE_TYPE: Der Typ derGoogle Cloud -Ressource. Dies muss einer der folgenden Werte sein:

        • organizations
        • folders
        • projects
      • RESOURCE_ID: die ID der Organisation, des Ordners oder des Projekts.

      Optional: Wenn Sie die Organisationsrichtlinie von einem Tag abhängig machen möchten, fügen Sie dem Feld rules einen condition-Block hinzu. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine bedingungsfreie Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinie mit Tags festlegen.

    2. Wenn Sie die Organisationsrichtlinie im Probelaufmodus festlegen möchten, geben Sie im Befehl gcloud org-policies set-policy den Wert dryRunSpec für das Flag --update-mask an:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=dryRunSpec
      

      Ersetzen Sie POLICY_FILEPATH durch den Pfad zur YAML-Datei, die Sie im vorherigen Schritt erstellt haben.

    3. Verwenden Sie den Befehl gcloud policy-intelligence simulate org-policy, um die Auswirkungen der Erzwingung dieser Organisationsrichtlinie zu testen:

      gcloud policy-intelligence simulate org-policy \
          --organization=ORGANIZATION_ID \
          --policy-path=POLICY_FILEPATH
      

      Ersetzen Sie ORGANIZATION_ID durch Ihre Organisations-ID.

    4. Nachdem Sie überprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie vorgesehen funktioniert, legen Sie die Live-Richtlinie fest. Geben Sie dazu im Befehl gcloud org-policies set-policy den Wert spec für das Flag --update-mask an:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=spec
      

      Es kann bis zu 15 Minuten dauern, bis Änderungen an Ihrer Organisationsrichtlinie vollständig wirksam werden.

Nächste Schritte