Namespaces aus Policy Controller ausschließen

Auf dieser Seite wird beschrieben, wie ausgenommene Namespaces in Policy Controller konfiguriert werden.

Ausgenommene Namespaces entfernen einen Namespace aus der Erzwingung von Zulassungs-Webhooks mit Policy Controller. Verstöße werden jedoch weiterhin im Audit gemeldet. Wenn Sie keine Namespaces konfigurieren, ist nur der gatekeeper-system-Namespace so vorkonfiguriert, dass er von der Erzwingung des Policy Controller-Zulassungs-Webhooks ausgenommen ist.

Ausgenommene Namespaces konfigurieren

Wenn Sie einen ausnahmefähigen Namespace konfigurieren, können Sie das Label admission.gatekeeper.sh/ignore anwenden, um den Namespace von der Erzwingung des Policy Controller-Zulassungs-Webhooks auszunehmen. Wenn Sie später einen ausnahmefähigen Namespace entfernen, entfernt Policy Controller das Label admission.gatekeeper.sh/ignore nicht aus dem Namespace.

Namespaces von der Erzwingung ausnehmen

Sie können Namespaces während der Installation von Policy Controller oder nach der Installation ausschließen. Im folgenden Verfahren erfahren Sie, wie Sie Namespaces nach der Installation ausnehmen.

Console

  1. Rufen Sie in der Google Cloud Console im Abschnitt Posture Management (Verwaltung des Sicherheitsstatus) die Seite GKE Enterprise-Richtlinie auf.

    Zur Richtlinie

  2. Wählen Sie in der Clustertabelle auf dem Tab Einstellungen in der Spalte Konfiguration bearbeiten die Option Bearbeiten aus.
  3. Maximieren Sie das Menü Policy Controller-Konfiguration bearbeiten.
  4. Geben Sie im Feld Ausnahmefähige Namespaces eine Liste gültiger Namespaces an. Objekte in diesen Namespaces werden von allen Richtlinien ignoriert. Die Namespaces müssen noch nicht vorhanden sein.
  5. Wählen Sie Änderungen speichern aus.

gcloud Policy Controller

Führen Sie den folgenden Befehl aus, um der Liste der Namespaces Namespaces hinzuzufügen, die vom Zulassungs-Webhook von der Erzwingung ausgenommen sein können:

  gcloud container fleet policycontroller update \
    --memberships=MEMBERSHIP_NAME \
    --exemptable-namespaces=[NAMESPACE_LIST]

Ersetzen Sie Folgendes:

  • MEMBERSHIP_NAME: der Mitgliedsname des registrierten Clusters, für den ausgenommene Namespaces verwendet werden sollen. Du kannst mehrere Mitgliedschaften angeben, die durch ein Komma getrennt sind.
  • NAMESPACE_LIST: eine durch Kommas getrennte Liste von Namespaces, die von Policy Controller von der Erzwingung ausgenommen werden sollen.

Durch diesen Befehl werden nur Ressourcen vom Zulassungs-Webhook ausgenommen. Die Ressourcen werden weiterhin geprüft. Wenn Sie Namespaces vom Audit ausnehmen möchten, legen Sie die Ausnahme stattdessen auf der Ebene des Richtlinien-Bundles fest:

  gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
    --memberships=MEMBERSHIP_NAME \
    --exempted-namespaces=[NAMESPACE_LIST]

Ersetzen Sie Folgendes:

  • BUNDLE_NAME durch den Namen des Richtlinien-Bundles, das Sie mit ausgenommenen Namespaces aktualisieren möchten.
  • MEMBERSHIP_NAME: der Mitgliedsname des registrierten Clusters, für den ausgenommene Namespaces verwendet werden sollen. Du kannst mehrere Mitgliedschaften angeben, die durch ein Komma getrennt sind.
  • NAMESPACE_LIST: eine durch Kommas getrennte Liste von Namespaces, die von Policy Controller von der Erzwingung ausgenommen werden sollen.

gcloud ConfigManagement

  1. Um einen Namespace von der Erzwingung auszunehmen, fügen Sie den Namen des Namespace zu spec.policyController.exemptableNamespaces hinzu:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["NAMESPACE_NAME"]
    ...
    

    Ersetzen Sie NAMESPACE_NAME durch den Namen des Namespace, den Sie von der Erzwingung ausnehmen möchten.

    Sie können auch für mehrere Namespaces eine Ausnahme festlegen. Um beispielsweise die Namespaces not-applicable und also-not-applicable hinzuzufügen, wenden Sie das folgende Manifest an:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["not-applicable","also-not-applicable"]
    ...
    
  2. Wenden Sie die Änderungen auf die Datei apply-spec.yaml an:

     gcloud beta container fleet config-management apply \
         --membership=MEMBERSHIP_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • MEMBERSHIP_NAME: Fügen Sie den registrierten Cluster hinzu, auf den Sie diese Konfiguration anwenden möchten. Wenn Sie den Cluster in der Google Cloud Console registriert haben, entspricht der Name der Mitgliedschaft dem Namen Ihres Clusters.
    • CONFIG_YAML: Fügen Sie den Pfad zur Datei apply-spec.yaml hinzu.
    • PROJECT_ID: Fügen Sie Ihre Projekt-ID hinzu.
  3. Fügen Sie Ihrem ausnahmefähigen Namespace Labels hinzu, damit der Inhalt des Zulassungs-Webhooks von Policy Controller nicht erzwungen wird:

    kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"
    

    Ersetzen Sie NAMESPACE_NAME durch den Namen des Namespace, den Sie von der Erzwingung ausnehmen möchten.

Von der Erzwingung ausgenommene Namespaces

Dies sind einige Namespaces, die von der Google Kubernetes Engine (GKE) und ähnlichen Produkten erstellt werden können. Sie können sie von der Erzwingung ausnehmen, um unerwünschte Auswirkungen zu vermeiden:

- anthos-creds
- anthos-identity-service
- apigee
- apigee-system
- asm-system
- capi-kubeadm-bootstrap-system
- capi-system
- cert-manager
- cnrm-system
- config-management-monitoring
- config-management-system
- gke-connect
- gke-gmp-system
- gke-managed-cim
- gke-managed-filestorecsi
- gke-managed-metrics-server
- gke-managed-system
- gke-system
- gmp-public
- gmp-system
- hnc-system
- istio-system
- kube-node-lease
- kube-public
- kube-system
- poco-trial
- resource-group-system
- vm-system