Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo usar medidas de seguridad de implementación para aplicar procedimientos recomendados en un clúster de Azure Kubernetes Service (AKS).
Información general
Nota:
Las medidas de seguridad de implementación están activadas de forma predeterminada en AKS Automatic.
A lo largo del ciclo de vida de desarrollo, es habitual que surjan errores, problemas y otros problemas si la implementación inicial de los recursos de Kubernetes incluye configuraciones incorrectas. Para facilitar la carga del desarrollo de Kubernetes, Azure Kubernetes Service (AKS) ofrece medidas de seguridad de implementación. Las medidas de seguridad de implementación aplican los procedimientos recomendados de Kubernetes en el clúster de AKS mediante controles de Azure Policy.
Las medidas de seguridad de implementación ofrecen dos niveles de configuración:
-
Warn: muestra mensajes de advertencia en el terminal de código para avisarle de las configuraciones de clúster no compatibles, pero aún permite que la solicitud pase. -
Enforce: aplica configuraciones compatibles al denegar y mutar implementaciones si no siguen los procedimientos recomendados.
Después de configurar las salvaguardas de implementación para "Advertir" o "Aplicar", las salvaguardas de implementación evalúan programáticamente los recursos de Kubernetes en el momento de la creación o actualización para el cumplimiento. Las medidas de seguridad de implementación también muestran información de cumplimiento agregada en las cargas de trabajo en cada nivel de recurso a través del panel de cumplimiento de Azure Policy en Azure Portal o en la CLI o terminal. La ejecución de una carga de trabajo no conforme indica que el clúster no sigue los procedimientos recomendados y que las cargas de trabajo del clúster corren el riesgo de experimentar problemas causados por la configuración del clúster.
Requisitos previos
Nota:
Los administradores de clústeres no necesitan permisos de Azure Policy para habilitar o deshabilitar las medidas de seguridad de implementación. Sin embargo, es necesario tener instalado el complemento de Azure Policy.
- Debe habilitar el complemento de Azure Policy para AKS. Para más información, consulte Habilitar Azure Policy en el clúster de AKS. Esto incluye el registro del
Microsoft.PolicyInsightsproveedor de recursos en tu suscripción.
Directivas de medidas de seguridad de implementación
En la tabla siguiente se enumeran las directivas que se activan y los recursos de Kubernetes que tienen como destino al habilitar medidas de seguridad de implementación. Puede ver las medidas de seguridad de implementación disponibles actualmente en Azure Portal como definición de Azure Policy o en definiciones integradas de Azure Policy para Azure Kubernetes Service. La intención de esta colección es crear una lista común y genérica de procedimientos recomendados aplicables a la mayoría de usuarios y casos de uso.
| Directiva de medida de seguridad para implementación | Resultado de la mutación si está disponible |
|---|---|
| No se pueden editar nodos individuales | N/D |
| Las solicitudes de recursos de CPU y memoria para los contenedores del clúster de Kubernetes deben definirse. | Establece las solicitudes predeterminadas de CPU y memoria y aplica los mínimos. Para más información, consulte Mutador de solicitudes de recursos. |
| Debe tener reglas de anti afinidad o topologySpreadConstraintsSet | Agrega reglas de antiafinidad de pod y restricciones de distribución de topología para optimizar la distribución de las cargas de trabajo. Para obtener más información, consulte Mutador de antiafinidad y distribución de topología. |
| Sin etiquetas específicas de AKS | N/D |
| Asegurarse de que solo se admiten las imágenes de contenedor permitidas en el clúster de Kubernetes | N/D |
| Taints del pool de sistema reservado | Elimina la marca CriticalAddonsOnly de un grupo de nodos de usuario si no está establecida. AKS usa la marca CriticalAddonsOnly para mantener los grupos de clientes alejados del grupo del sistema. Esta configuración garantiza una separación clara entre los componentes de AKS y los pods de cliente e impide el desalojo de los pods de cliente que no toleren la marca CriticalAddonsOnly. |
| Asegúrese de que los contenedores de clúster tienen configurados sondeos de comprobación o ejecución | N/D |
| Los clústeres de Kubernetes deben usar el controlador StorageClass de Container Storage Interface (CSI) | N/D |
| Los servicios de clúster de Kubernetes deben usar selectores únicos | N/D |
| Las imágenes de contenedor del clúster de Kubernetes no deben incluir la etiqueta de imagen más reciente | N/D |
Si desea enviar una idea o solicitud de medidas de seguridad de implementación, abra un problema en el repositorio de GitHub de AKS y agregue [Deployment Safeguards request] al principio del título.
Modificador de solicitudes de recursos
Cuando las medidas de seguridad de implementación se establecen en el Enforce nivel , el mutador de solicitudes de recursos establece automáticamente las solicitudes de CPU y memoria y los límites de los contenedores que no los tienen definidos o tienen valores por debajo de los umbrales mínimos.
Valores predeterminados
Cuando no se especifica ningún recurso, el mutador establece los siguientes valores predeterminados:
| Resource | Solicitud | Limit |
|---|---|---|
| Unidad Central de Procesamiento (CPU) | 500 m | 500 m |
| Memoria | 2048Mi (2Gi) | 2048Mi (2Gi) |
Aplicación mínima
Cuando se especifican recursos, pero están por debajo de los umbrales, el mutador aplica los siguientes valores mínimos:
| Resource | Valor mínimo |
|---|---|
| Unidad Central de Procesamiento (CPU) | 100 m |
| Memoria | 100Mi |
Descripción de las unidades de recursos
Unidades de CPU:
-
m= millicores (1m= 1/1,000 de un núcleo de CPU) -
1000m= 1 núcleo de CPU completo -
500m= 0,5 núcleos de CPU (medio núcleo) -
100m= 0,1 núcleos de CPU (10% de un núcleo)
Unidades de memoria:
-
Mi= Mebibytes (binario: 1 Mi = 1024 × 1024 bytes) -
Gi= Gibibytes (binario: 1 Gi = 1,024 Mi) 2048Mi=2Gi-
100Mi≈ 105 MB
Reglas de mutación de CPU
El mutador aplica la siguiente lógica para los recursos de CPU:
| Scenario | Acción |
|---|---|
| Faltan la solicitud de CPU y el límite | Establezca ambos en 500m (valor predeterminado) |
Existe una solicitud de CPU, pero es menor que 100m |
Establecer la solicitud en 100m (mínimo) |
El límite de CPU existe, pero es menor que 100m |
Establecer el límite en 100m (mínimo) |
| Solo existe una solicitud de CPU | Establecer la solicitud igual a límite |
| Solo existe el límite de CPU | Establecer la solicitud igual a límite |
Reglas de mutación de memoria
El mutador aplica la siguiente lógica para los recursos de memoria:
| Scenario | Acción |
|---|---|
| Faltan tanto la solicitud de memoria como el límite | Establezca ambos en 2048Mi (valor predeterminado) |
La solicitud de memoria existe, pero es menor que 100Mi |
Establecer la solicitud en 100Mi (mínimo) |
El límite de memoria existe, pero es menor que 100Mi |
Establecer el límite en 100Mi (mínimo) |
| Solo existe una solicitud de memoria | Déjelo tal cual (sin límite agregado) |
| Solo existe el límite de memoria | Dejar tal cual (sin añadir petición) |
Corrección de la clase de calidad de servicio (QoS) en Kubernetes
Después de aplicar las mutaciones de CPU y memoria, si el valor de la solicitud supera el límite del mismo tipo de recurso, el mutador limita la solicitud para que coincida con el límite. Esta corrección mantiene configuraciones de clase válidas de Calidad de servicio (QoS) de Kubernetes.
Casos que se han mutado
El mutador de solicitudes de recursos aplica cambios en los escenarios siguientes:
-
Recursos vacíos: los contenedores sin solicitudes de CPU o memoria ni límites reciben valores predeterminados (
500mCPU,2048Mimemoria). -
Por debajo de los umbrales mínimos: las solicitudes de CPU o los límites siguientes
100mse incrementan a100m. Las solicitudes de memoria o los límites inferiores100Mise incrementan a100Mi. - Escenarios de QoS no válidos: cuando las solicitudes superan los límites, las solicitudes se reducen para que coincidan con los límites.
- Especificaciones parciales de recursos: los contenedores con solo solicitudes o solo límites (pero no ambos) tienen mínimos impuestos donde se especifique.
- Varios contenedores: todos los contenedores de un pod se procesan y mutan adecuadamente.
- Espacios de nombres habilitados: solo se mutan las cargas de trabajo de los espacios de nombres en los que está habilitada la protección.
Casos que no se han mutado
El mutador de solicitudes de recursos no aplica cambios en los escenarios siguientes:
- Espacios de nombres excluidos: las cargas de trabajo de los espacios de nombres en los que se excluye la protección permanecen sin cambios.
- Recursos ya compatibles: los contenedores que ya tienen solicitudes y límites por encima de los umbrales mínimos permanecen sin cambios.
- Configuraciones válidas de QoS: cuando las solicitudes son menores o iguales que los límites y ambos valores están por encima de los mínimos, no se produce ningún cambio.
Mutador de antiafinidad y distribución de topología
Cuando las medidas de seguridad para implementación se establecen en el nivel Enforce, el mutador de antiafinidad y distribución de topología agrega automáticamente reglas de antiafinidad de pod y restricciones de dispersión de topología para mejorar la distribución de las cargas de trabajo entre los nodos.
Cuando se ejecuta el mutador
El mutador solo se ejecuta cuando se cumplen todas las condiciones siguientes:
- La antiafinidad de pods y las restricciones de distribución de topología aún no existen en la carga de trabajo.
- El espacio de nombres no se excluye de las medidas de seguridad de implementación.
- Las medidas de seguridad de implementación están en
Enforcemodo. - La carga de trabajo no tiene la
kubernetes.azure.com/managedby=aksetiqueta .
Lo que agrega el mutador
Identificación de etiquetas: el mutador identifica los pods utilizando la siguiente prioridad de etiquetas:
-
applabel (primera prioridad) -
app.kubernetes.io/nameetiqueta (segunda prioridad) - Crea una etiqueta
default-antiaffinity-applabel=<workload-name>(alternativa)
Antiafinidad de pods: añade una regla preferida de antiafinidad de pods con un peso de 100, que favorece la programación de pods con etiquetas coincidentes en nodos diferentes. Usa la clave kubernetes.io/hostnamede topología .
Restricciones de propagación de topología: agrega una restricción con la siguiente configuración:
| Configuración | Importancia |
|---|---|
| MaxSkew | 1 (permite una diferencia máxima de 1 pod por nodo) |
| CuandoInsatisfactorio | ScheduleAnyway (el mejor esfuerzo, no bloquea la programación) |
| Clave de topología | kubernetes.io/hostname |
Casos mutados
El mutador de antiafinidad y distribución de topología realiza cambios en los siguientes escenarios:
-
Cargas de trabajo con etiqueta
app: usa el valor de etiquetaapppara los selectores de antiafinidad y distribución de topología. -
Cargas de trabajo con
app.kubernetes.io/nameetiqueta: cuando no existe ningunaappetiqueta, usa esta etiqueta para los selectores. - Cargas de trabajo sin etiquetas de aplicación: crea una etiqueta predeterminada con el nombre de la carga de trabajo y agrega reglas de anti-afinidad y de propagación de topología.
- Limpiar cargas de trabajo: las cargas de trabajo que no tienen ninguna afinidad existente ni restricciones de propagación de topología reciben ambas configuraciones.
- Afinidad parcial: las cargas de trabajo con afinidad de nodo existente (pero sin antiafinidad de pod) reciben reglas de antiafinidad de pod y distribución de topología.
- Espacios de nombres habilitados: las mutaciones solo se producen en espacios de nombres donde está habilitada la protección.
Casos que no se han mutado
El mutador de antiafinidad y distribución de topología no aplica cambios en los siguientes escenarios:
- Restricciones de propagación de topología existentes: las cargas de trabajo que ya tienen restricciones de propagación de topología se omiten por completo.
- Antiafinidad de pod existente: las cargas de trabajo con reglas de antiafinidad de pod necesarias o preferidas existentes se omiten por completo.
- Espacios de nombres excluidos: las cargas de trabajo de los espacios de nombres en los que se excluye la protección permanecen sin cambios.
- Cargas de trabajo sin nombres o etiquetas identificables: los casos perimetrales en los que no se puede determinar ningún nombre de aplicación se omiten correctamente.
Mensajes de error de salvaguardas de implementación
En esta sección se describen los mensajes de error que puede encontrar cuando Las medidas de seguridad de implementación detectan configuraciones no compatibles, junto con correcciones recomendadas.
Mensajes de error de protección general
En la tabla siguiente se enumeran los mensajes de error de las directivas generales de medidas de seguridad de implementación:
| Policy | Mensaje de error | Corrección |
|---|---|---|
| Imponer el uso de sondas | Container <container_name> in your Pod <pod_name> has no livenessProbe. Required probes: readinessProbe, livenessProbe |
Agregue sondeos de ejecución y preparación a cada contenedor. |
| No hay ninguna imagen "más reciente" | Please specify an explicit, versioned image tag such as '1.0' for container %v. Using explicit version tags is a best practice to ensure reproducibility, prevent unintended updates, and facilitate easier debugging and rollbacks. Avoid using the 'latest' tag because it can change over time without notice. |
Use una etiqueta de imagen explícita distinta de latest o en blanco. Por ejemplo, nginx no se permite, pero nginx:v1.0.0 se permite. |
| Aplicación del controlador CSI |
Storage class <class_name> use intree provisioner kubernetes.io/azure-file is not allowed o Storage class <class_name> use intree provisioner kubernetes.io/azure-disk is not allowed |
Use disk.csi.azure.com o file.csi.azure.com en su lugar. Para obtener más información, consulte Controladores CSI en AKS. |
| Solicitudes de recursos | container <container_name> has no resource requests |
Agregue solicitudes de CPU y memoria al contenedor. |
| Reglas de Anti-Afinidad | Deployment with 2 replicas should have either podAntiAffinity or topologySpreadConstraints set to avoid disruptions due to nodes crashing |
Defina podAntiAffinity o topologySpreadConstraints en la carga de trabajo. |
| Etiquetas restringidas | Label kubernetes.azure.com is reserved for AKS use only |
Elimine la etiqueta de su tarea. |
| Ediciones de nodos restringidos | Tainting or labeling individual nodes is not recommended. Please use Azure CLI to taint/label node pools instead |
Usa la CLI de Azure para taintar o etiquetar grupos de nodos en lugar de nodos individuales. |
| Intolerancias restringidas | Taint with key CriticalAddonsOnly is reserved for the system pool only |
No contamines el grupo de nodos de usuario con CriticalAddonsOnly. |
Mensajes de error de los estándares de seguridad para pods
Nota:
Los Estándares de seguridad de pods de línea base ahora están activados de forma predeterminada en AKS Automatic. Los estándares de seguridad de pod predeterminados en AKS Automatic no pueden desactivarse.
Las medidas de seguridad para implementación también admiten la capacidad de activar los estándares de seguridad de pods Básico, Restringido y Con privilegios. Para asegurarse de que las cargas de trabajo se implementan correctamente, asegúrese de que cada manifiesto cumple los requisitos de seguridad de pod Básico o Restringido. De forma predeterminada, Azure Kubernetes Service usa los estándares de seguridad de Pod Privileged.
| Policy | Mensaje de error | Corrección |
|---|---|---|
| AppArmor |
AppArmor annotation values must be undefined/nil, runtime/default, or localhost/* o AppArmor profile type must be one of: undefined/nil, RuntimeDefault, or Localhost |
Quite cualquier especificación de AppArmor. Kubernetes aplica de forma predeterminada la configuración de AppArmor. En los hosts admitidos, el perfil RuntimeDefault AppArmor se aplica de forma predeterminada. |
| Espacios de nombres del host |
Host network namespaces are disallowed: spec.hostNetwork is set to true o Host PID namespaces are disallowed: spec.hostPID is set to true o Host IPC namespaces are disallowed: spec.hostIPC is set to true |
Establezca esos valores en falseo quite la especificación de los campos. |
| Contenedores con privilegios | Privileged [ephemeral\|init\|N/A] containers are disallowed: spec.containers[*].securityContext.privileged is set to true |
Establezca el campo adecuado securityContext.privileged en falseo quite el campo. |
| Capabilities | El mensaje comienza con Disallowed capabilities detected |
Quite la funcionalidad que se muestra del manifiesto del contenedor. |
| Volúmenes de HostPath | HostPath volumes are forbidden under restricted security policy unless containers mounting them are from allowed images |
Quite el volumen de HostPath y el montaje del volumen. |
| Puertos de host | HostPorts are forbidden under baseline security policy |
Quite la especificación del puerto host del contenedor infractor. |
| SELinux | SELinux type must be one of: undefined/empty, container_t, container_init_t, container_kvm_t, or container_engine_t |
Establezca el campo del securityContext.seLinuxOptions.type contenedor en uno de los valores permitidos. |
| Tipo de montaje /proc | ProcMount must be undefined/nil or 'Default' in spec.containers[*].securityContext.procMount |
spec.containers[*].securityContext.procMount Configúrelo en Default o déjelo sin definir. |
| Seccomp | Seccomp profile must not be explicitly set to Unconfined. Allowed values are: undefined/nil, RuntimeDefault, or Localhost |
Establezca securityContext.seccompProfile.type en el pod o en los contenedores en uno de los valores permitidos. |
| Sysctls | Disallowed sysctl detected. Only baseline Kubernetes pod security standard sysctls are permitted |
Elimine los sysctls no permitidos. Para obtener la lista específica, consulte la especificación de estándares de seguridad de pod de Kubernetes. |
| Tipos de volumen (solo para PSS restringido) | Only the following volume types are allowed under restricted policy: configMap, csi, downwardAPI, emptyDir, ephemeral, persistentVolumeClaim, projected, secret |
Quite todos los volúmenes que no sean uno de los tipos permitidos. |
| Elevación de privilegios (solo restringido a PSS) | Privilege escalation must be set to false under restricted policy |
Establezca spec.containers[*].securityContext.allowPrivilegeEscalation en false para cada contenedor, initContainer y ephemeralContainer. |
| Ejecución como usuario no root (Restringido a solo PSS) | Containers must not run as root user in spec.containers[*].securityContext.runAsNonRoot |
Establezca spec.containers[*].securityContext.runAsNonRoot en true para cada contenedor, initContainer y ephemeralContainer. |
| Ejecutar como usuario no raíz (solo PSS restringido) | Containers must not run as root user: spec.securityContext.runAsUser is set to 0 |
Establezca securityContext.runAsUser en un valor distinto de cero o déjelo sin definir para el nivel de pod y cada contenedor, initContainer y ephemeralContainer. |
| Seccomp (solo para PSS restringido) | Seccomp profile must be "RuntimeDefault" or "Localhost" under restricted policy |
Establezca securityContext.seccompProfile.type en el pod o en los contenedores en uno de los valores permitidos. Esto difiere de la línea base porque la directiva restringida no permite un valor indefinido. |
| Capacidades (exclusivamente restringido a PSS) |
All containers must drop ALL capabilities under restricted policy o Only NET_BIND_SERVICE may be added to capabilities under restricted policy |
Todos los contenedores deben quitar ALL funcionalidades y solo pueden agregar NET_BIND_SERVICE. |
Habilitar medidas de seguridad de implementación
Nota:
Al usar el nivel de salvaguardas de implementación Enforce, está optando por que las implementaciones sean bloqueadas y modificadas. Tenga en cuenta cómo estas directivas pueden funcionar con el clúster de AKS antes de habilitar Enforce.
Habilitación de medidas de seguridad de implementación en un clúster existente
Habilite las medidas de seguridad de implementación en un clúster existente que tiene habilitado el complemento de Azure Policy mediante el comando az aks safeguard create con el indicador --level. Si quiere recibir advertencias de incumplimiento, establezca --level en Warn. Si quiere denegar o mutar todas las implementaciones no compatibles, establézcalo en Enforce.
az aks safeguards create --resource-group <resource-group-name> --name <cluster-name> --level Enforce
También puede habilitar medidas de seguridad de implementación mediante la --cluster marca y especificando el identificador de recurso del clúster.
az aks safeguards create --cluster <ID> --level Enforce
Si desea actualizar el nivel de medidas de seguridad de implementación de un clúster existente, ejecute el siguiente comando con el nuevo valor para --level.
az aks safeguards update --resource-group <resource-group-name> --name <cluster-name> --level Warn
Excluir espacios de nombres
También puede excluir determinados espacios de nombres de las medidas de seguridad de implementación. Cuando se excluye un espacio de nombres, la actividad de ese espacio de nombres no se ve afectada por las advertencias o la aplicación de las medidas de seguridad de implementación.
Por ejemplo, para excluir los espacios de nombres ns1 y ns2, use una lista de espacios de nombres separados por espacios con el indicador --excluded-ns, como se muestra en el siguiente ejemplo:
az aks safeguards update --resource-group <resource-group-name> --name <cluster-name> --level Warn --excluded-ns ns1 ns2
Activa los Estándares de Seguridad de Pod
Nota:
Azure Kubernetes Service (AKS) usa Privileged Estándares de Seguridad de Pod de forma predeterminada. Para revertir a la configuración predeterminada, establezca la bandera --pss-level en Privileged.
Para habilitar los estándares de seguridad de pod en Medidas de seguridad para implementación, use la marca --pss-level para seleccionar uno de los siguientes niveles: Baseline, Restricted o Privileged.
az aks safeguards update --resource-group <resource-group-name> --name <cluster-name> --level Warn --pss-level <Baseline|Restricted|Privileged>
Actualización de la versión de Deployment Safeguard
Las medidas de seguridad de implementación se adhieren al esquema de control de versiones del complemento de AKS. Cada nueva versión de Deployment Safeguard se publicará como una nueva versión menor en AKS. Estas actualizaciones se comunicarán a través de las notas de la versión de GitHub de AKS y se reflejarán en la tabla "Directivas de medidas de seguridad de implementación" en nuestra documentación.
Para más información sobre el control de versiones y los complementos de AKS, consulte la siguiente documentación: aks-component-versions y aks-versioning-for-addons.
Comprobación del cumplimiento entre clústeres
Después de implementar el manifiesto de Kubernetes, verá advertencias o un posible mensaje de denegación en la CLI o terminal si el clúster no es compatible con las medidas de seguridad de implementación, como se muestra en los ejemplos siguientes:
WARN
$ kubectl apply -f deployment.yaml
Warning: [azurepolicy-k8sazurev1antiaffinityrules-ceffa082711831ebffd1] Deployment with 2 replicas should have either podAntiAffinity or topologySpreadConstraints set to avoid disruptions due to nodes crashing
deployment.apps/simple-web created
Aplicar
Con las mutaciones de medidas de seguridad para implementación, el nivel Enforce muta sus recursos Kubernetes cuando corresponde. Sin embargo, los recursos de Kubernetes todavía necesitan pasar todas las medidas de seguridad para implementarse correctamente. Si se produce un error en las directivas de medidas de seguridad, se deniega el recurso y no se implementará.
$ kubectl apply -f deployment.yaml
Error from server (Forbidden): error when creating "deployment.yaml": admission webhook "validation.gatekeeper.sh" denied the request: [azurepolicy-k8sazurev1antiaffinityrules-ceffa082711831ebffd1] Deployment with 2 replicas should have either podAntiAffinity or topologySpreadConstraints set to avoid disruptions due to nodes crashing
Si los recursos de Kubernetes cumplen las medidas de seguridad de mutación aplicables y cumplen todos los demás requisitos de protección, se implementarán correctamente, como se muestra en el ejemplo siguiente:
$ kubectl apply -f deployment.yaml
deployment.apps/simple-web created
Comprobar el cumplimiento en los clústeres mediante el panel de Azure Policy
Para comprobar que se han aplicado medidas de seguridad de implementación y comprobar el cumplimiento del clúster, vaya a la página de Azure Portal del clúster y seleccione Directivas y, a continuación, seleccione Ir a Azure Policy.
En la lista de directivas e iniciativas, seleccione la iniciativa asociada a Medidas de seguridad de implementación. Verá un panel que muestra el estado de cumplimiento en el clúster de AKS.
Nota:
Para evaluar correctamente el cumplimiento en el clúster de AKS, la iniciativa de Azure Policy debe tener el ámbito establecido en el grupo de recursos del clúster.
Deshabilitar medidas de seguridad de implementación
Para deshabilitar las medidas de seguridad de implementación en el clúster, use el delete comando .
az aks safeguards delete --resource-group <resource-group-name> --name <cluster-name>
Preguntas más frecuentes
¿Puedo crear mis propias mutaciones?
No. Si tiene una idea para una medida de seguridad, abra una incidencia en el repositorio de GitHub de AKS y agregue [Deployment Safeguards request] al principio del título.
¿Puedo elegir las mutaciones que quiero en Aplicación?
No. Las medidas de seguridad de implementación son todas o nada. Una vez activado Advertir o Aplicar, todas las medidas de seguridad están activas.
¿Por qué se ha admitido mi recurso de implementación aunque no sigue los procedimientos recomendados?
Las medidas de seguridad de implementación aplican los estándares de prácticas recomendadas mediante controles de Azure Policy y tienen políticas que se validan en los recursos de Kubernetes. Para evaluar y aplicar componentes de clúster, Azure Policy amplía Gatekeeper. El cumplimiento de Gatekeeper también funciona actualmente en un modelofail-open. Como no hay ninguna garantía de que Gatekeeper responda a nuestra llamada de red, nos aseguramos de que, en ese caso, se omite la validación para que la denegación no bloquee las implementaciones.
Para obtener más información, consulte la validación de cargas de trabajo en Gatekeeper.
Pasos siguientes
- Obtenga más información sobre los procedimientos recomendados para operar un clúster de AKS.