Cómo usar Azure Policy para Azure Kubernetes ServiceUnderstand Azure Policy for Azure Kubernetes Service

La integración de Azure Policy con Azure Kubernetes Service (AKS) permite a los usuarios aplicar medidas de protección a escala para clústeres de un modo centralizado y coherente.Azure Policy integrates with the Azure Kubernetes Service (AKS) to apply at-scale enforcements and safeguards on your clusters in a centralized, consistent manner. Al extender el uso de Gatekeeper v2, un webhook de controlador de admisión para Open Policy Agent (OPA), Azure Policy le permite administrar e informar sobre el estado de cumplimiento de sus recursos de Azure y clústeres de AKS desde un solo lugar.By extending use of Gatekeeper v2, an admission controller webhook for Open Policy Agent (OPA), Azure Policy makes it possible to manage and report on the compliance state of your Azure resources and AKS clusters from one place.

Nota

Azure Policy para AKS está en su versión preliminar limitada y solo admite definiciones de directivas integradas.Azure Policy for AKS is in Limited Preview and only supports built-in policy definitions.

Información generalOverview

Para habilitar y usar la Azure Policy para AKS con su clúster de AKS, realice las siguientes acciones:To enable and use Azure Policy for AKS with your AKS cluster, take the following actions:

Participar en la versión preliminarOpt-in for preview

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.ContainerService y el proveedor de recursos Microsoft.PolicyInsights; a continuación, debe ser aprobado para unirse a la versión preliminar.Before installing the Azure Policy Add-on or enabling any of the service features, your subscription must enable the Microsoft.ContainerService resource provider and the Microsoft.PolicyInsights resource provider, then be approved to join the preview. Para unirse a la versión preliminar, siga estos pasos en Azure Portal o con la CLI de Azure:To join the preview, follow these steps in either the Azure portal or with Azure CLI:

  • Azure Portal:Azure portal:

    1. Registre los proveedores de recursos Microsoft.ContainerService y Microsoft.PolicyInsights.Register the Microsoft.ContainerService and Microsoft.PolicyInsights resource providers. Para conocer los pasos, consulte Proveedores de recursos y sus tipos.For steps, see Resource providers and types.

    2. Inicie el servicio Azure Policy en Azure Portal. Para ello, haga clic en Todos los servicios y, a continuación, busque y seleccione Directiva.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

      Búsqueda de la directiva en todos los servicios

    3. Seleccione Join Preview (Unirse a la versión preliminar) en el lado izquierdo de la página Azure Policy.Select Join Preview on the left side of the Azure Policy page.

      Unirse a la directiva de la versión preliminar de AKS

    4. Seleccione la fila de la suscripción que quiera agregar a la versión preliminar.Select the row of the subscription you want added to the preview.

    5. Seleccione el botón Opt-in (Participar) en la parte superior de la lista de suscripciones.Select the Opt-in button at the top of the list of subscriptions.

  • CLI de Azure:Azure CLI:

    # Log in first with az login if you're not using Cloud Shell
    
    # Provider register: Register the Azure Kubernetes Services provider
    az provider register --namespace Microsoft.ContainerService
    
    # Provider register: Register the Azure Policy provider
    az provider register --namespace Microsoft.PolicyInsights
    
    # Feature register: enables installing the add-on
    az feature register --namespace Microsoft.ContainerService --name AKS-AzurePolicyAutoApprove
    
    # Use the following to confirm the feature has registered
    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-AzurePolicyAutoApprove')].{Name:name,State:properties.state}"
    
    # Once the above shows 'Registered' run the following to propagate the update
    az provider register -n Microsoft.ContainerService
    
    # Feature register: enables the add-on to call the Azure Policy resource provider
    az feature register --namespace Microsoft.PolicyInsights --name AKS-DataplaneAutoApprove
    
    # Use the following to confirm the feature has registered
    az feature list -o table --query "[?contains(name, 'Microsoft.PolicyInsights/AKS-DataPlaneAutoApprove')].{Name:name,State:properties.state}"
    
    # Once the above shows 'Registered' run the following to propagate the update
    az provider register -n Microsoft.PolicyInsights
    
    

Complemento de Azure PolicyAzure Policy Add-on

El complemento de Azure Policy para Kubernetes conecta el servicio de Azure Policy al controlador de admisión de Gatekeeper.The Azure Policy Add-on for Kubernetes connects the Azure Policy service to the Gatekeeper admission controller. El complemento, que se instala en el espacio de nombres azure-policy, ejecuta las siguientes funciones:The add-on, which is installed into the azure-policy namespace, enacts the following functions:

  • Comprueba con Azure Policy las asignaciones al clúster de AKS.Checks with Azure Policy for assignments to the AKS cluster
  • Descarga y almacena en la caché los detalles de la directiva, incluyendo la definición de la directiva rego, como configmaps.Downloads and caches policy details, including the rego policy definition, as configmaps
  • Ejecuta una comprobación de cumplimiento de examen completo en el clúster de AKS.Runs a full scan compliance check on the AKS cluster
  • Realiza informes de auditoría y cumplimiento de los detalles de Azure Policy.Reports auditing and compliance details back to Azure Policy

Instalación del complementoInstalling the add-on

Requisitos previosPrerequisites

Antes de instalar el complemento en su clúster de AKS, debe instalar la extensión de la versión preliminar.Before you install the add-on in your AKS cluster, the preview extension must be installed. Este paso se realiza con la CLI de Azure:This step is done with Azure CLI:

  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.You need the Azure CLI version 2.0.62 or later installed and configured. Ejecute az --version para encontrar la versión.Run az --version to find the version. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.If you need to install or upgrade, see Install the Azure CLI.

  2. Se debe usar la versión del clúster de AKS 1.10 o superior.The AKS cluster must be version 1.10 or higher. Use el siguiente script para validar la versión del clúster de AKS:Use the following script to validate your AKS cluster version:

    # Log in first with az login if you're not using Cloud Shell
    
    # Look for the value in kubernetesVersion
    az aks list
    
  3. Instale la versión 0.4.0 de la extensión de la versión preliminar de la CLI de Azure para AKS, aks-preview:Install version 0.4.0 of the Azure CLI preview extension for AKS, aks-preview:

    # Log in first with az login if you're not using Cloud Shell
    
    # Install/update the preview extension
    az extension add --name aks-preview
    
    # Validate the version of the preview extension
    az extension show --name aks-preview --query [version]
    

    Nota

    Si ha instalado anteriormente la extensión aks-preview, instale todas las actualizaciones con el comando az extension update --name aks-preview.If you've previously installed the aks-preview extension, install any updates using the az extension update --name aks-preview command.

Pasos de instalaciónInstallation steps

Una vez completados los requisitos previos, instale el complemento de Azure Policy en el clúster de AKS que quiera administrar.Once the prerequisites are completed, install the Azure Policy Add-on in the AKS cluster you want to manage.

  • Portal de AzureAzure portal

    1. Inicie el servicio AKS en Azure Portal haciendo clic en Todos los servicios; a continuación, busque y seleccione Servicios de Kubernetes.Launch the AKS service in the Azure portal by clicking All services, then searching for and selecting Kubernetes services.

    2. Seleccione uno de sus clústeres de AKS.Select one of your AKS clusters.

    3. Seleccione Policies (preview) (Directivas [versión preliminar]) en el lado izquierdo de la página de servicio de Kubernetes.Select Policies (preview) on the left side of the Kubernetes service page.

      Directivas del clúster de AKS

    4. En la página principal, seleccione el botón Enable add-on (Habilitar complemento).In the main page, select the Enable add-on button.

      Habilitar la directiva de Azure para el complemento de AKS

      Nota

      Si el botón Enable add-on (Habilitar complemento) está en gris, es que la suscripción aún no se ha agregado a la versión preliminar.If the Enable add-on button is grayed out, the subscription has not yet been added to the preview. Consulte Opt-in for preview (Participar en la versión preliminar) para ver los pasos necesarios.See Opt-in for preview for the required steps.

  • CLI de AzureAzure 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
    

Validación y frecuencia de los informesValidation and reporting frequency

El complemento se registra con Azure Policy para detectar cambios en las asignaciones de directivas cada 5 minutos.The add-on checks in with Azure Policy for changes in policy assignments every 5 minutes. Durante este ciclo de actualización, el complemento quita todos los elementos configmaps en el espacio de nombres azure-policy y, a continuación, vuelve a crear el elemento configmaps para uso de Gatekeeper.During this refresh cycle, the add-on removes all configmaps in the azure-policy namespace then recreates the configmaps for Gatekeeper use.

Nota

Si bien un administrador de clúster puede tener permiso para el espacio de nombres azure-policy, no se recomienda realizar cambios en el espacio de nombres, puesto que no se admitirán.While a cluster admin may have permission to the azure-policy namespace, it's not recommended or supported to make changes to the namespace. Cualquier cambio manual realizado se pierde durante el ciclo de actualización.Any manual changes made are lost during the refresh cycle.

Cada 5 minutos, el complemento solicita un examen completo del clúster.Every 5 minutes, the add-on calls for a full scan of the cluster. 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.After gathering details of the full scan and any real-time evaluations by Gatekeeper of attempted changes to the cluster, the add-on reports the results back to Azure Policy for inclusion in compliance details like any Azure Policy assignment. Solo los resultados de las asignaciones de directivas activas se devuelven durante el ciclo de auditoría.Only results for active policy assignments are returned during the audit cycle.

Idioma de directivaPolicy language

La estructura del lenguaje de Azure Policy para administrar AKS sigue el camino de las directivas existentes.The Azure Policy language structure for managing AKS follows that of existing policies. El efecto EnforceRegoPolicy se usa para administrar los clústeres de AKS y recopila propiedades de detalles específicas para trabajar con Gatekeeper v2.The effect EnforceRegoPolicy is used to manage your AKS clusters and takes details properties specific to working with OPA and Gatekeeper v2. Para obtener detalles y ejemplos, consulte el efecto EnforceRegoPolicy.For details and examples, see the EnforceRegoPolicy effect.

Como parte de la propiedad details.policy en la definición de la directiva, Azure Policy pasa el URI de una directiva rego al complemento.As part of the details.policy property in the policy definition, Azure Policy passes the URI of a rego policy to the add-on. Rego es el lenguaje que OPA y Gatekeeper admiten para validar o mutar una solicitud al clúster de Kubernetes.Rego is the language that OPA and Gatekeeper support to validate or mutate a request to the Kubernetes cluster. 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.By supporting an existing standard for Kubernetes management, Azure Policy makes it possible to reuse existing rules and pair them with Azure Policy for a unified cloud compliance reporting experience. Para obtener más información, consulte ¿Qué es Rego?For more information, see What is Rego?.

Directivas integradasBuilt-in policies

Para encontrar las directivas integradas para administrar AKS mediante Azure Portal, siga estos pasos:To find the built-in policies for managing AKS using the Azure portal, follow these steps:

  1. Inicie el servicio Azure Policy en Azure Portal.Start the Azure Policy service in the Azure portal. Seleccione All services (Todos los servicios) en el panel izquierdo y busque y seleccione la opción Policy (Directiva).Select All services in the left pane and then search for and select Policy.

  2. En el panel izquierdo de la página de Azure Policy, seleccione Definitions (Definiciones).In the left pane of the Azure Policy page, select Definitions.

  3. En el cuadro de lista desplegable Category (Categoría), use Select all (Seleccionar todo) para borrar el filtro y seleccione Kubernetes service (Servicio Kubernetes).From the Category drop-down list box, use Select all to clear the filter and then select Kubernetes service.

  4. Seleccione la definición de directiva y pulse el botón Assign (Asignar).Select the policy definition, then select the Assign button.

Nota

Al asignar Azure Policy para la definición de AKS, el Ámbito debe incluir el recurso de clúster de AKS.When assigning the Azure Policy for AKS definition, the Scope must include the AKS cluster resource.

Alternativamente, use la opción de inicio rápido Assign a policy - Portal (Asignar una directiva - Portal) para encontrar y asignar una directiva de AKS.Alternately, use the Assign a policy - Portal quickstart to find and assign an AKS policy. Busque una definición de directiva de Kubernetes en lugar del ejemplo "audit vms".Search for a Kubernetes policy definition instead of the sample 'audit vms'.

Importante

Las directivas integradas en el servicio de Kubernetes de la categoría solo se usan con AKS.Built-in policies in category Kubernetes service are only for use with AKS.

RegistroLogging

Registros del complemento de Azure PolicyAzure Policy Add-on logs

Como controlador o contenedor de Kubernetes, el complemento de Azure Policy mantiene registros en el clúster de AKS.As a Kubernetes controller/container, the Azure Policy Add-on keeps logs in the AKS cluster. Los registros se exponen en la página Insights (Detalles) del clúster AKS.The logs are exposed in the Insights page of the AKS cluster. Para obtener más información, consulte Comprender el rendimiento del clúster de AKS con Azure Monitor para contenedores.For more information, see Understand AKS cluster performance with Azure Monitor for containers.

Registros de GatekeeperGatekeeper logs

Para habilitar los registros de Gatekeeper para nuevas solicitudes de recursos, siga los pasos en Habilitación y revisión de los registros del nodo maestro de Kubernetes en Azure Kubernetes Service (AKS).To enable Gatekeeper logs for new resource requests, follow the steps in Enable and review Kubernetes master node logs in AKS. Esta es una consulta de ejemplo para ver los eventos denegados en nuevas solicitudes de recursos:Here is an example query to view denied events on new resource requests:

| where Category == "kube-audit"
| where log_s contains "admission webhook"
| limit 100

Para ver los registros de los contenedores de Gatekeeper, siga los pasos de Habilitación y revisión de los registros del nodo maestro de Kubernetes en Azure Kubernetes Service (AKS) y active la opción kube-apiserver en el panel Diagnostic settings (Configuración de diagnóstico).To view logs from Gatekeeper containers, follow the steps in Enable and review Kubernetes master node logs in AKS and check the kube-apiserver option in the Diagnostic settings pane.

Eliminar el complementoRemove the add-on

Para eliminar el complemento de Azure Policy del clúster de AKS, use Azure Portal o la CLI de Azure:To remove the Azure Policy Add-on from your AKS cluster, use either the Azure portal or Azure CLI:

  • Portal de AzureAzure portal

    1. Inicie el servicio AKS en Azure Portal haciendo clic en Todos los servicios; a continuación, busque y seleccione Servicios de Kubernetes.Launch the AKS service in the Azure portal by clicking All services, then searching for and selecting Kubernetes services.

    2. Seleccione el clúster de AKS en el que quiera deshabilitar el complemento de Azure Policy.Select your AKS cluster where you want to disable the Azure Policy Add-on.

    3. Seleccione Policies (preview) (Directivas [versión preliminar]) en el lado izquierdo de la página de servicio de Kubernetes.Select Policies (preview) on the left side of the Kubernetes service page.

      Directivas del clúster de AKS

    4. En la página principal, pulse Disable add-on (Deshabilitar complemento).In the main page, select the Disable add-on button.

      Deshabilitar Azure Policy para el complemento de AKS

  • CLI de AzureAzure 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
    

Datos de diagnóstico recopilados por el complemento de Azure PolicyDiagnostic data collected by Azure Policy Add-on

El complemento de Azure Policy para Kubernetes recopila datos de diagnóstico de clúster limitados.The Azure Policy Add-on for Kubernetes collects limited cluster diagnostic data. Estos datos de diagnóstico son datos técnicos esenciales relacionados con el software y el rendimiento.This diagnostic data is vital technical data related to software and performance. Se utiliza para lo siguiente:It's used in the following ways:

  • Mantener actualizado el complemento de Azure PolicyKeep Azure Policy Add-on up to date
  • Mantener la seguridad, la confiabilidad y el rendimiento del complemento de Azure PolicyKeep Azure Policy Add-on secure, reliable, performant
  • Mejorar el complemento de Azure Policy mediante el análisis agregado del uso del complementoImprove Azure Policy Add-on - through the aggregate analysis of the use of the add-on

La información recopilada por el complemento no son datos personales.The information collected by the add-on isn't personal data. Actualmente se recopilan los detalles siguientes:The following details are currently collected:

  • Versión del agente del complemento de Azure PolicyAzure Policy Add-on agent version
  • Tipo de clústerCluster type
  • Región del clústerCluster region
  • Grupo de recursos del clústerCluster resource group
  • Identificador de recurso del clústerCluster resource ID
  • Identificador de suscripción del clústerCluster subscription ID
  • Sistema operativo del clúster (ejemplo: Linux)Cluster OS (Example: Linux)
  • Ciudad del clúster (ejemplo: Seattle)Cluster city (Example: Seattle)
  • Estado o provincia del clúster (ejemplo: Washington)Cluster state or province (Example: Washington)
  • País o región del clúster (ejemplo: Estados Unidos)Cluster country or region (Example: United States)
  • Excepciones o errores encontrados por el complemento de Azure Policy durante la instalación del agente en la evaluación de directivaExceptions/errors encountered by Azure Policy Add-on during agent installation on policy evaluation
  • Número de directivas de Gatekeeper no instaladas por el complemento de Azure PolicyNumber of Gatekeeper policies not installed by Azure Policy Add-on

Pasos siguientesNext steps