Excluye espacios de nombres de Policy Controller

En esta página, se describe cómo configurar espacios de nombres exentos en Policy Controller.

Los espacios de nombres exentos quitan un espacio de nombres de la aplicación del webhook de admisión con Policy Controller, pero cualquier incumplimiento se informa en la auditoría. Si no configuras ningún espacio de nombres, solo el espacio de nombres gatekeeper-system estará preconfigurado como exento de la aplicación del webhook de admisión de Policy Controller.

Configura espacios de nombres exentos

Configurar un espacio de nombres que se pueda eximir te permite aplicar la etiqueta admission.gatekeeper.sh/ignore para eximirlo de la aplicación del webhook de admisión de Policy Controller. Si luego quitas un espacio de nombres exento, Policy Controller no quitará la etiqueta admission.gatekeeper.sh/ignore del espacio de nombres.

Exime espacios de nombres de la aplicación

Puedes eximir espacios de nombres durante la instalación de Policy Controller o después de ella. En el siguiente proceso, se muestra cómo eximir los espacios de nombres después de la instalación.

Console

  1. En la consola de Google Cloud, ve a la página Política de GKE Enterprise en la sección Administración de postura.

    Ir a Política

  2. En la pestaña Configuración, en la tabla del clúster, selecciona Editar en la columna Editar configuración.
  3. Expande el menú Editar configuración de Policy Controller.
  4. En el campo Eximir espacios de nombres, proporciona una lista de espacios de nombres válidos. Todas las políticas ignoran los objetos de estos espacios de nombres. No es necesario que los espacios de nombres existan.
  5. Selecciona Save changes.

Policy Controller de gcloud

Para agregar espacios de nombres a la lista de espacios de nombres que el webhook de admisión puede eximir de la aplicación, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • MEMBERSHIP_NAME: Es el nombre de membresía del clúster registrado en el que se eximen los espacios de nombres. Puedes especificar varias membresías separadas por comas.
  • NAMESPACE_LIST: Es una lista separada por comas de los espacios de nombres que deseas que Policy Controller exima de la aplicación forzosa.

Este comando exime a los recursos solo del webhook de admisión. Los recursos aún se auditan. En su lugar, para eximir los espacios de nombres de la auditoría, configura la exención a nivel del paquete de políticas:

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

Reemplaza lo siguiente:

  • BUNDLE_NAME por el nombre del paquete de políticas que deseas actualizar con espacios de nombres exentos.
  • MEMBERSHIP_NAME: Es el nombre de membresía del clúster registrado en el que se eximen los espacios de nombres. Puedes especificar varias membresías separadas por comas.
  • NAMESPACE_LIST: Es una lista separada por comas de los espacios de nombres que deseas que Policy Controller exima de la aplicación forzosa.

gcloud ConfigManagement

  1. Para eximir un espacio de nombres de la aplicación, agrega el nombre del espacio de nombres en spec.policyController.exemptableNamespaces:

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

    Reemplaza NAMESPACE_NAME por el nombre del espacio de nombres que deseas exentar de la aplicación forzosa.

    También puedes eximir varios espacios de nombres. Por ejemplo, para eximir los espacios de nombres not-applicable y also-not-applicable, debes aplicar el siguiente manifiesto:

    # 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. Aplica los cambios al archivo apply-spec.yaml:

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

    Reemplaza lo siguiente:

    • MEMBERSHIP_NAME: Agrega el clúster registrado al que deseas aplicar esta configuración. Si registraste el clúster en la consola de Google Cloud, el nombre de la membresía es el mismo que el de tu clúster.
    • CONFIG_YAML: Agrega la ruta de acceso a tu archivo apply-spec.yaml.
    • PROJECT_ID: Agrega el ID del proyecto.
  3. Etiqueta tu espacio de nombres exento para que el webhook de admisión de Policy Controller no aplique su contenido:

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

    Reemplaza NAMESPACE_NAME por el nombre del espacio de nombres que deseas exentar de la aplicación forzosa.

Espacios de nombres que se eximen de la aplicación

Estos son algunos espacios de nombres que podrían crear Google Kubernetes Engine (GKE) y productos relacionados. Te recomendamos que los eximas de la aplicación forzosa para evitar un impacto no deseado:

- 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