Descripción de Azure Policy para clústeres de Kubernetes (versión preliminar)

Azure Policy extiende Gatekeeper v3, un webhook de controlador de admisión de Open Policy Agent (OPA), a fin de aplicar medidas de seguridad y cumplimiento a escala en los clústeres de una manera centralizada y coherente. Azure Policy permite administrar e informar sobre el estado de cumplimiento de los clústeres de Kubernetes desde un único lugar. El complemento realiza las funciones siguientes:

  • Comprueba con el servicio Azure Policy las asignaciones de directivas al clúster.
  • Implementa definiciones de directiva en el clúster como recursos de plantilla de restricción y restricción.
  • Realiza informes de auditoría y cumplimiento y los devuelve al servicio Azure Policy.

Azure Policy para Kubernetes admite los entornos de clúster siguientes:

Importante

Los complementos para el motor de AKS y los Kubernetes habilitados para Arc están en versión preliminar. Azure Policy para Kubernetes solo admite grupos de nodos de Linux y definiciones de directivas integradas. Las definiciones de directivas integradas se encuentran en la categoría Kubernetes. Las definiciones de directiva de versión preliminar limitadas con efecto EnforceOPAConstraint y EnforceRegoPolicy y la categoría servicio Kubernetes relacionada están en desuso. En su lugar, use los efectos audit y deny con el modo de proveedor de recursos Microsoft.Kubernetes.Data.

Información general

Para habilitar y usar Azure Policy con el clúster de Kubernetes, realice las acciones siguientes:

  1. Configure el clúster de Kubernetes e instale el complemento:

    Nota

    Para resolver problemas de instalación comunes, consulte el tema de solución de problemas del complemento de Azure Policy.

  2. Descripción del lenguaje de Azure Policy para Kubernetes

  3. Asignación de una definición integrada a un clúster de Kubernetes

  4. Espere la validación

Limitaciones

Las siguientes limitaciones generales se aplican al complemento de Azure Policy en los clústeres de Kubernetes:

  • El complemento Azure Policy para Kubernetes es compatible con la versión 1.14 o posterior de Kubernetes.
  • El complemento Azure Policy para Kubernetes solo se puede implementar en grupos de nodos de Linux
  • Solo se admiten las definiciones de directivas integradas
  • Número máximo de registros no compatibles por directiva por clúster: 500
  • Número máximo de registros no compatibles por suscripción: 1 millón
  • No se admiten las instalaciones de Gatekeeper fuera del complemento de Azure Policy. Desinstale los componentes instalados por una instalación anterior de Gatekeeper antes de habilitar el complemento de Azure Policy.
  • Los motivos de la no compatibilidad no están disponibles para el Microsoft.Kubernetes.Data modo de proveedor de recursos. Use Detalles del componente.
  • No se admiten exenciones para los modos de proveedor de recursos.

Las siguientes limitaciones generales solo se aplican al complemento de Azure Policy para AKS:

Recomendaciones

A continuación se muestran recomendaciones generales para usar el complemento de Azure Policy:

  • El complemento de Azure Policy requiere tres componentes de Gatekeeper para ejecutarse: 1 pod de auditoría y 2 réplicas de pods de webhook. Estos componentes consumen más recursos, ya que el recuento de los recursos de Kubernetes y las asignaciones de directivas aumentan en el clúster, lo que requiere operaciones de auditoría y cumplimiento.

    • Para menos de 500 pods en un solo clúster con un máximo de 20 restricciones: 2 vCPU y 350 MB de memoria por componente.
    • Para más de 500 pods en un solo clúster con un máximo de 40 restricciones: 3 vCPU y 600 MB de memoria por componente.
  • Los pods de Windows no admiten contextos de seguridad. Por lo tanto, algunas de las definiciones de Azure Policy, como no permitir privilegios raíz, no se pueden escalar en pods de Windows y solo se aplican a los pods de Linux.

La siguiente recomendación solo se aplica a AKS y al complemento de Azure Policy:

  • Use el grupo de nodos del sistema con el valor taint CriticalAddonsOnly para programar pods de Gatekeeper. Para obtener más información, consulte Uso de pods de nodos del sistema.
  • Proteja el tráfico saliente de sus clústeres de AKS. Para obtener más información, consulte Control del tráfico de salida de los nodos de clúster.
  • Si el clúster tiene aad-pod-identity habilitado, los pods de Identidad administrada del nodo (NMI) modifican las tablas de IP de los nodos para interceptar las llamadas que se realizan en el punto de conexión de Azure Instance Metadata. Esta configuración hace que NMI intercepte toda solicitud realizada al punto de conexión de Metadata, incluso aunque el pod no utilice aad-pod-identity. La CRD de AzurePodIdentityException se puede configurar para informar a aad-pod-identity de que las solicitudes dirigidas al punto de conexión de Metadata que se originen en un pod que coincida con las etiquetas definidas en la CRD deben pasar por el servidor proxy sin que se procesen en NMI. Los pods del sistema con la etiqueta kubernetes.azure.com/managedby: aks del espacio de nombres kube-system deben excluirse en aad-pod-identity configurando la CRD de AzurePodIdentityException. Para obtener más información, consulte este artículo acerca de cómo deshabilitar aad-pod-identity en una aplicación o pod específicos. Para configurar una excepción, instale mic-exception.YAML.

Instalación del complemento de Azure Policy para AKS

Antes de instalar el complemento de Azure Policy o habilitar cualquiera de las características del servicio, la suscripción debe habilitar los proveedores de recursos Microsoft.PolicyInsights.

  1. Es preciso que esté instalada y configurada la versión 2.12.0 de la CLI de Azure, o cualquier otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.

  2. Registre los proveedores de recursos y las características en vista previa.

    • Azure Portal:

      Registre el proveedor de recursos Microsoft.PolicyInsights. Para conocer los pasos, consulte Proveedores de recursos y sus tipos.

    • CLI de Azure:

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace Microsoft.PolicyInsights
      
  3. Si hay definiciones de directiva de versión preliminar limitadas instaladas, quite el complemento con el botón Deshabilitar en el clúster de AKS en la página Directivas.

  4. Se debe usar la versión del clúster de AKS 1.14 o posterior. Use el siguiente script para validar la versión del clúster de AKS:

    # Log in first with az login if you're not using Cloud Shell
    
    # Look for the value in kubernetesVersion
    az aks list
    
  5. Instale la versión 2.12.0 o superior de la CLI de Azure. Para más información, consulte Instalación de la CLI de Azure.

Una vez que se han completado los pasos anteriores de requisitos previos, instale el complemento de Azure Policy en el clúster de AKS que quiera administrar.

  • Azure portal

    1. Inicie el servicio AKS en Azure Portal al seleccionar Todos los servicios; a continuación, busque y seleccione Servicios de Kubernetes.

    2. Seleccione uno de sus clústeres de AKS.

    3. Seleccione Directivas en el lado izquierdo de la página de servicio de Kubernetes.

    4. En la página principal, seleccione el botón Enable add-on (Habilitar complemento).

      Nota

      Si el botón Deshabilitar complemento está habilitado y se muestra un mensaje de advertencia de migración a v2, el complemento v1 está instalado y se debe quitar antes de asignar las definiciones de directiva v2. El complemento en desuso v1 se reemplazará automáticamente por el complemento v2 a partir del 24 de agosto. 2020. A partir de entonces, se deben asignar las nuevas versiones v2 de las definiciones de directiva. Para actualizar ahora, siga estos pasos:

      1. Para validar que el clúster de AKS tiene instalado el complemento v1, visite la página de Directivas en el clúster de AKS, y que tenga el mensaje "The current cluster uses Azure Policy add-on v1…" (El clúster actual utiliza el complemento de Azure Policy v1…).
      2. Quite el complemento.
      3. Seleccione el botón Habilitar complemento para instalar la versión v2 del complemento.
      4. Asignación de versiones V2 de las definiciones de directiva integradas v1
  • Azure CLI

    # Log in first with az login if you're not using Cloud Shell
    
    az aks enable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
    

Para comprobar que la instalación del complemento se ha realizado correctamente y que los pods azure-policy y gatekeeper están en ejecución, ejecute el comando siguiente:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Por último, para comprobar que el complemento más reciente está instalado, ejecute este comando de la CLI de Azure y reemplace <rg> por el nombre del grupo de recursos y <cluster-name> por el nombre del clúster de AKS: az aks show --query addonProfiles.azurepolicy -g <rg> -n <cluster-name>. El resultado debe ser similar al siguiente y config.version debe ser v2:

"addonProfiles": {
    "azurepolicy": {
        "config": {
            "version": "v2"
        },
        "enabled": true,
        "identity": null
    },
}

Instalación del complemento de Azure Policy de Kubernetes habilitado para Azure Arc (versión preliminar)

Antes de instalar el complemento de Azure Policy o habilitar cualquiera de las características del servicio, su suscripción debe tener habilitados el proveedor de recursos Microsoft.PolicyInsights y crear una asignación de roles para la entidad de servicio del clúster.

  1. Es preciso que esté instalada y configurada la versión 2.12.0 de la CLI de Azure, o cualquier otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.

  2. Para habilitar el proveedor de recursos, siga los pasos descritos en Tipos y proveedores de recursos o ejecute el comando de PowerShell o la CLI de Azure:

    • Azure CLI

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace 'Microsoft.PolicyInsights'
      
    • Azure PowerShell

      # Log in first with Connect-AzAccount if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
      
  3. Se debe usar la versión del clúster de Kubernetes 1.14 o posterior.

  4. Instale Helm 3.

  5. El clúster de Kubernetes habilitado para Azure Arc. Para obtener más información, vea Incorporación de un clúster de Kubernetes a Azure Arc.

  6. Tener el identificador de recurso completo de Azure del clúster de Kubernetes habilitado para Azure Arc.

  7. Abra los puertos para el complemento. El complemento de Azure Policy usa estos dominios y puertos para obtener las definiciones de directiva y las asignaciones, y notificar a Azure Policy el cumplimiento del clúster.

    Domain Port
    gov-prod-policy-data.trafficmanager.net 443
    raw.githubusercontent.com 443
    login.windows.net 443
    dc.services.visualstudio.com 443
  8. Asigne la asignación de rol "Escritor de datos de Policy Insights (versión preliminar)" al clúster de Kubernetes habilitado para Azure Arc. Reemplace <subscriptionId> por el identificador de la suscripción, <rg> por el grupo de recursos del clúster de Kubernetes habilitado para Azure Arc y <clusterName> por el nombre del clúster de Kubernetes habilitado para Azure Arc. Realice el seguimiento de los valores devueltos para appId, password y tenant para los pasos de instalación.

    • Azure CLI

      az ad sp create-for-rbac --role "Policy Insights Data Writer (Preview)" --scopes "/subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
      
    • Azure PowerShell

      $sp = New-AzADServicePrincipal -Role "Policy Insights Data Writer (Preview)" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
      
      @{ appId=$sp.ApplicationId;password=[System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sp.Secret));tenant=(Get-AzContext).Tenant.Id } | ConvertTo-Json
      

    Ejemplo de salida de los comandos anteriores:

    {
        "appId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "password": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
        "tenant": "cccccccc-cccc-cccc-cccc-cccccccccccc"
    }
    

Una vez que se han completado los pasos anteriores de requisitos previos, instale el complemento de Azure Policy en el clúster de Kubernetes habilitado para Azure Arc:

  1. Agregue el repositorio del complemento de Azure Policy a Helm:

    helm repo add azure-policy https://raw.githubusercontent.com/Azure/azure-policy/master/extensions/policy-addon-kubernetes/helm-charts
    
  2. Instale el complemento de Azure Policy con el gráfico de Helm:

    # In below command, replace the following values with those gathered above.
    #    <AzureArcClusterResourceId> with your Azure Arc enabled Kubernetes cluster resource Id. For example: /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>
    #    <ServicePrincipalAppId> with app Id of the service principal created during prerequisites.
    #    <ServicePrincipalPassword> with password of the service principal created during prerequisites.
    #    <ServicePrincipalTenantId> with tenant of the service principal created during prerequisites.
    helm install azure-policy-addon azure-policy/azure-policy-addon-arc-clusters \
        --set azurepolicy.env.resourceid=<AzureArcClusterResourceId> \
        --set azurepolicy.env.clientid=<ServicePrincipalAppId> \
        --set azurepolicy.env.clientsecret=<ServicePrincipalPassword> \
        --set azurepolicy.env.tenantid=<ServicePrincipalTenantId>
    

    Para obtener más información sobre lo que instala el gráfico de Helm de complemento, consulte la definición del gráfico de Helm de complemento de Azure Policy en GitHub.

Para comprobar que la instalación del complemento se ha realizado correctamente y que los pods azure-policy y gatekeeper están en ejecución, ejecute el comando siguiente:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Instalación del complemento de Azure Policy para AKS Engine (versión preliminar)

Antes de instalar el complemento de Azure Policy o habilitar cualquiera de las características del servicio, su suscripción debe tener habilitados el proveedor de recursos Microsoft.PolicyInsights y crear una asignación de roles para la entidad de servicio del clúster.

  1. Es preciso que esté instalada y configurada la versión 2.0.62 de la CLI de Azure, o cualquier otra versión posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.

  2. Para habilitar el proveedor de recursos, siga los pasos descritos en Tipos y proveedores de recursos o ejecute el comando de PowerShell o la CLI de Azure:

    • Azure CLI

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace 'Microsoft.PolicyInsights'
      
    • Azure PowerShell

      # Log in first with Connect-AzAccount if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
      
  3. Cree una asignación de roles para la entidad de servicio del clúster.

    • Si no conoce el identificador de la aplicación de la entidad de servicio del clúster, búsquelo con el siguiente comando.

      # Get the kube-apiserver pod name
      kubectl get pods -n kube-system
      
      # Find the aadClientID value
      kubectl exec <kube-apiserver pod name> -n kube-system cat /etc/kubernetes/azure.json
      
    • Consigne la asignación de roles "Policy Insights Data Writer (Preview)" al identificador de la aplicación de la entidad de servicio del clúster (valor aadClientID del paso anterior) con la CLI de Azure. Reemplace <subscriptionId> por el identificador de su suscripción y <aks engine cluster resource group> por el grupo de recursos en el que se encuentra el clúster de Kubernetes autoadministrado de AKS Engine.

      az role assignment create --assignee <cluster service principal app ID> --scope "/subscriptions/<subscriptionId>/resourceGroups/<aks engine cluster resource group>" --role "Policy Insights Data Writer (Preview)"
      

Una vez que se han completado los pasos anteriores de requisitos previos, instale el complemento de Azure Policy. La instalación puede realizarse durante la creación o el ciclo de actualización de una instancia de AKS Engine o como una acción independiente en un clúster existente.

  • Instalación durante la creación o el ciclo de actualización

    Para habilitar el complemento Azure Policy durante la creación de un nuevo clúster autoadministrado o como una actualización de un clúster existente, incluya la definición del clúster de la propiedad addons para AKS Engine.

    "addons": [{
        "name": "azure-policy",
        "enabled": true
    }]
    

    Para obtener más información al respecto, consulte la guía externa de definición del clúster de AKS Engine.

  • Instalación en un clúster existente con gráficos de Helm

    Siga estos pasos para preparar el clúster e instalar el complemento:

    1. Instale Helm 3.

    2. Agregue el repositorio Azure Policy a Helm.

      helm repo add azure-policy https://raw.githubusercontent.com/Azure/azure-policy/master/extensions/policy-addon-kubernetes/helm-charts
      

      Para obtener más información, consulte la guía de inicio rápido del gráfico de Helm.

    3. Instale el complemento con un gráfico de Helm. Reemplace <subscriptionId> por el identificador de su suscripción y <aks engine cluster resource group> por el grupo de recursos en el que se encuentra el clúster de Kubernetes autoadministrado de AKS Engine.

      helm install azure-policy-addon azure-policy/azure-policy-addon-aks-engine --set azurepolicy.env.resourceid="/subscriptions/<subscriptionId>/resourceGroups/<aks engine cluster resource group>"
      

      Para obtener más información sobre lo que instala el gráfico de Helm de complemento, consulte la definición del gráfico de Helm de complemento de Azure Policy en GitHub.

      Nota

      Debido a la relación entre el complemento de Azure Policy y el identificador del grupo de recursos, Azure Policy solo admite un clúster de AKS Engine para cada grupo de recursos.

Para comprobar que la instalación del complemento se ha realizado correctamente y que los pods azure-policy y gatekeeper están en ejecución, ejecute el comando siguiente:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Idioma de directiva

La estructura del lenguaje de Azure Policy para administrar Kubernetes sigue la de las definiciones de directiva existentes. Con un modo de proveedor de recursos de Microsoft.Kubernetes.Data, se usan los efectos audit y deny para administrar los clústeres de Kubernetes. Audit y deny deben proporcionar propiedades details específicas para trabajar con OPA Constraint Framework y Gatekeeper v3.

Como parte de las propiedades details.constraintTemplate y details.constraint de la definición de directiva, Azure Policy pasa los URI de estas CustomResourceDefinitions (CRD) al complemento. Rego es el lenguaje que OPA y el equipo selector admiten para validar una solicitud al clúster de Kubernetes. Al admitir un estándar existente para la administración de Kubernetes, Azure Policy le permite reutilizar las reglas existentes y vincularlas con Azure Policy para obtener una experiencia de informes de cumplimiento unificada en la nube. Para obtener más información, consulte ¿Qué es Rego?

Asignación de una definición de directiva integrada

Para asignar una definición de directiva al clúster de Kubernetes, debe tener asignadas las operaciones de asignación de directivas de control de acceso basado en rol de Azure (RBAC de AZure) adecuadas. Los roles de Azure integrados Colaborador de la directiva de recursos y Propietario tienen estas operaciones. Para obtener más información, vea Permisos de RBAC de Azure en Azure Policy.

Siga estos pasos para buscar las directivas integradas para administrar el clúster mediante Azure Portal:

  1. Inicie el servicio Azure Policy en Azure Portal. Seleccione All services (Todos los servicios) en el panel izquierdo y busque y seleccione la opción Policy (Directiva).

  2. En el panel izquierdo de la página de Azure Policy, seleccione Definitions (Definiciones).

  3. En el cuadro de lista desplegable Categoría, use Seleccionar todo para borrar el filtro y seleccione Kubernetes.

  4. Seleccione la definición de directiva y pulse el botón Assign (Asignar).

  5. Establezca el Ámbito en el grupo de administración, la suscripción o el grupo de recursos del clúster de Kubernetes al que se aplicará la asignación de directiva.

    Nota

    Al asignar Azure Policy para la definición de Kubernetes, el Ámbito debe incluir el recurso de clúster. En el caso de un clúster de AKS Engine, el ámbito debe ser el grupo de recursos del clúster.

  6. Asigne un Nombre y una Descripción a la asignación de directiva que pueda usar para identificarla con facilidad.

  7. Establezca Cumplimiento de directivas en uno de los valores siguientes.

    • Habilitado: aplicar la directiva en el clúster. Se deniegan las solicitudes de admisión de Kubernetes con infracciones.

    • Deshabilitado: no aplicar la directiva en el clúster. No se deniegan las solicitudes de admisión de Kubernetes con infracciones. Los resultados de la evaluación de cumplimiento siguen estando disponibles. Al implementar nuevas definiciones de directiva para ejecutar clústeres, la opción Deshabilitado resulta útil para probar la definición de directiva, ya que las solicitudes de admisión con infracciones no se deniegan.

  8. Seleccione Next (Siguiente).

  9. Establecer Valores de parámetros

    • Para excluir los espacios de nombres de Kubernetes de la evaluación de directivas, especifique la lista de espacios de nombres en el parámetro Exclusiones de los espacios de nombres. Se recomienda excluir: kube-system, gatekeeper-system y azure-arc.
  10. Seleccione Revisar + crear.

Como alternativa, use el inicio rápido Asignación de una directiva: Portal para buscar y asignar una directiva de Kubernetes. Busque una definición de directiva de Kubernetes en lugar del ejemplo "audit vms".

Importante

Las definiciones de directiva integradas están disponibles para los clústeres de Kubernetes en la categoría Kubernetes. Para obtener una lista de las definiciones de directiva integradas, vea Ejemplos de Kubernetes.

Evaluación de directiva

El complemento se registra con el servicio Azure Policy para detectar cambios en las asignaciones de directivas cada 15 minutos. Durante este ciclo de actualización, el complemento comprueba si hay cambios. Estos cambios desencadenan la creación, actualización o eliminación de restricciones y plantillas de restricciones.

En un clúster de Kubernetes, si un espacio de nombres tiene alguna de las etiquetas siguientes, no se deniegan las solicitudes de admisión con infracciones. Los resultados de la evaluación de cumplimiento siguen estando disponibles.

  • control-plane
  • admission.policy.azure.com/ignore

Nota

Aunque es posible que un administrador de clústeres tenga permiso para crear y actualizar los recursos de plantillas y restricciones instalados por el complemento Azure Policy, estos no son escenarios admitidos, ya que las actualizaciones manuales se sobrescriben. Gatekeeper sigue evaluando las directivas que existían antes de instalar el complemento y de asignar las definiciones de directiva de Azure Policy.

Cada 15 minutos, el complemento solicita un examen completo del clúster. Después de recopilar los detalles del examen completo y las evaluaciones en tiempo real que realiza Gatekeeper sobre los intentos de cambios en el clúster, el complemento proporciona los resultados a Azure Policy para los agregue en los detalles de cumplimiento como cualquier otra asignación de Azure Policy. Solo los resultados de las asignaciones de directivas activas se devuelven durante el ciclo de auditoría. Los resultados de la auditoría también pueden verse como infracciones enumeradas en el campo de estado de la restricción errónea. Para obtener más información sobre recursos no compatibles, consulte Detalles de los componentes de los modos de proveedor de recursos.

Nota

En cada informe de cumplimiento de Azure Policy para los clústeres de Kubernetes se incluyen todas las infracciones de los últimos 45 minutos. La marca de tiempo indica cuándo se ha producido una infracción.

Otras consideraciones:

  • Si la suscripción del clúster se registra con Azure Security Center, las directivas de Kubernetes de Azure Security Center se aplicarán automáticamente en el clúster.

  • Cuando se aplica una directiva de denegación en un clúster que ya tiene recursos de Kubernetes, aunque estos recursos no sean compatibles con la nueva directiva, seguirán ejecutándose. Cuando un recurso que no es compatible vuelve a programarse en un nodo diferente, Gatekeeper bloquea la creación de recursos.

  • Si un clúster tiene una directiva de denegación que valida los recursos, no se mostrará ningún mensaje de rechazo al usuario cuando cree una implementación. Por ejemplo, imagine que tiene una implementación de Kubernetes con pods y conjuntos de réplicas. Cuando un usuario ejecute kubectl describe deployment $MY_DEPLOYMENT, no se devolverá un mensaje de rechazo durante los eventos. Sin embargo, kubectl describe replicasets.apps $MY_DEPLOYMENT sí devolverá los eventos relacionados con el rechazo.

Registro

Como controlador o contenedor de Kubernetes, los pods azure-policy y gatekeeper mantienen registros en el clúster de Kubernetes. Los registros se pueden exponer en la página Insights (Detalles) del clúster de Kubernetes. Para obtener más información, vea Supervisión del rendimiento del clúster de Kubernetes con Azure Monitor para contenedores.

Para ver los registros del complemento, use kubectl:

# Get the azure-policy pod name installed in kube-system namespace
kubectl logs <azure-policy pod name> -n kube-system

# Get the gatekeeper pod name installed in gatekeeper-system namespace
kubectl logs <gatekeeper pod name> -n gatekeeper-system

Para obtener más información, vea Depuración de Gatekeeper en la documentación de Gatekeeper.

Solución de problemas del complemento

Para más información acerca de cómo solucionar los problemas del complemento de Kubernetes, consulte la sección Kubernetes en el artículo de solución de problemas de Azure Policy.

Eliminar el complemento

Eliminación del complemento de AKS

Para eliminar el complemento de Azure Policy del clúster de AKS, use Azure Portal o la CLI de Azure:

  • Azure portal

    1. Inicie el servicio AKS en Azure Portal al seleccionar Todos los servicios; a continuación, busque y seleccione Servicios de Kubernetes.

    2. Seleccione el clúster de AKS en el que quiera deshabilitar el complemento de Azure Policy.

    3. Seleccione Directivas en el lado izquierdo de la página de servicio de Kubernetes.

    4. En la página principal, pulse Disable add-on (Deshabilitar complemento).

  • Azure CLI

    # Log in first with az login if you're not using Cloud Shell
    
    az aks disable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
    

Eliminación del complemento desde Kubernetes habilitado para Azure Arc

Para quitar el complemento de Azure Policy y Gatekeeper desde el clúster de Kubernetes habilitado para Azure Arc, ejecute el siguiente comando de Helm:

helm uninstall azure-policy-addon

Eliminación del complemento desde AKS Engine

Para quitar el complemento de Azure Policy y Gatekeeper del clúster de AKS Engine, use el método en línea con la manera en que se ha instalado el complemento:

  • Si se ha instalado definiendo la propiedad addons en la definición del clúster para AKS Engine:

    Vuelva a implementar la definición del clúster en AKS Engine después de cambiar la propiedad addons de azure-policy a false:

    "addons": [{
        "name": "azure-policy",
        "enabled": false
    }]
    

    Para obtener más información, vea AKS Engine: deshabilitación del complemento de Azure Policy.

  • Si se ha instalado con gráficos de Helm, ejecute el siguiente comando de Helm:

    helm uninstall azure-policy-addon
    

Datos de diagnóstico recopilados por el complemento de Azure Policy

El complemento de Azure Policy para Kubernetes recopila datos de diagnóstico de clúster limitados. Estos datos de diagnóstico son datos técnicos esenciales relacionados con el software y el rendimiento. Se utiliza para lo siguiente:

  • Mantener actualizado el complemento de Azure Policy
  • Mantener la seguridad, la confiabilidad y el rendimiento del complemento de Azure Policy
  • Mejorar el complemento de Azure Policy mediante el análisis agregado del uso del complemento

La información recopilada por el complemento no son datos personales. Actualmente se recopilan los detalles siguientes:

  • Versión del agente del complemento de Azure Policy
  • Tipo de clúster
  • Región del clúster
  • Grupo de recursos del clúster
  • Identificador de recurso del clúster
  • Identificador de suscripción del clúster
  • Sistema operativo del clúster (ejemplo: Linux)
  • Ciudad del clúster (ejemplo: Seattle)
  • Estado o provincia del clúster (ejemplo: Washington)
  • País o región del clúster (ejemplo: Estados Unidos)
  • Excepciones o errores encontrados por el complemento de Azure Policy durante la instalación del agente en la evaluación de directiva
  • Número de definiciones de directiva de Gatekeeper no instaladas por el complemento de Azure Policy

Pasos siguientes