Procedimientos recomendados para administrar la seguridad y las actualizaciones de los clústeres en Azure Kubernetes Service (AKS)
A medida que administra los clústeres en Azure Kubernetes Service (AKS), es clave considerar la seguridad de los datos y de las cargas de trabajo. Cuando ejecuta clústeres multiinquilino con aislamiento lógico, debe proteger especialmente el acceso a los recursos y a las cargas de trabajo. Minimice el riesgo de ataque mediante la aplicación de las actualizaciones de seguridad más recientes de Kubernetes y del sistema operativo del nodo.
En este artículo se indica cómo proteger el clúster de AKS. Aprenderá a:
- Usar Microsoft Entra ID y el control de acceso basado en rol de Kubernetes (RBAC de Kubernetes) para proteger el acceso al servidor de API.
- Proteger el acceso del contenedor a los recursos del nodo.
- Actualizar un clúster de AKS a la última versión de Kubernetes.
- Mantener actualizados los nodos y aplicar automáticamente los parches de seguridad.
También puede leer las prácticas recomendadas para la administración de imágenes de contenedor y para seguridad de pod.
Habilitación de la protección contra amenazas
Guía de procedimientos recomendados
Puede habilitar Defender para contenedores para ayudar a proteger los contenedores. Defender para contenedores puede evaluar las configuraciones de clúster y proporcionar recomendaciones de seguridad, ejecutar exámenes de vulnerabilidades y proporcionar protección y alertas en tiempo real para los nodos y clústeres de Kubernetes.
Proteger el acceso a los nodos del clúster y al servidor de API
Guía de procedimientos recomendados
Una de las formas más importantes de proteger el clúster es proteger el acceso al servidor de API de Kubernetes. Integre el control de acceso basado en rol de Kubernetes con Microsoft Entra ID para controlar el acceso al servidor de API. Con estos controles puede proteger AKS del mismo modo que protege el acceso a las suscripciones a Azure.
El servidor de API de Kubernetes proporciona un punto de conexión único para las solicitudes para realizar acciones dentro de un clúster. Para proteger y auditar el acceso al servidor de API, limite el acceso y proporcione los niveles de permiso más bajos posibles. Aunque este enfoque no es exclusivo de Kubernetes, es especialmente importante cuando ha aislado lógicamente el clúster de AKS para el uso multiinquilino.
Microsoft Entra ID proporciona una solución de administración de identidades para el ámbito empresarial que se puede integrar con los clústeres de AKS. Dado que Kubernetes no proporciona una solución de administración de identidades, es posible que se sienta obligado a restringir de forma individual el acceso al servidor de API. Con los clústeres integrados con Microsoft Entra en AKS, usted utiliza sus cuentas de usuario y de grupo existentes para autenticar a los usuarios en el servidor de API.
Mediante la integración del control de acceso basado en rol de Kubernetes y Microsoft Entra ID, puede proteger el servidor de API y proporcionar los permisos mínimos necesarios para un conjunto de recursos con ámbito como, por ejemplo, un espacio de nombres único. Puede conceder a diferentes usuarios o grupos de Microsoft Entra diferentes roles de Kubernetes. Con permisos específicos puede restringir el acceso al servidor de API y proporcionar una pista de auditoría clara de las acciones realizadas.
El procedimiento recomendado consiste en utilizar grupos para proporcionar acceso a archivos y carpetas en lugar de identidades individuales. Por ejemplo, utilizar una pertenencia a un grupo de Microsoft Entra ID para enlazar usuarios a roles de Kubernetes en lugar de usuarios individuales. A medida que cambie la pertenencia al grupo de un usuario, también lo harán sus permisos de acceso en el clúster de AKS.
Mientras tanto, supongamos que enlaza al usuario individual directamente a un rol y su función de trabajo cambia. Aunque las pertenencias al grupo de Microsoft Entra se actualizarán, sus permisos en el clúster de AKS no lo harán. En este escenario, el usuario al final cuenta con más permisos de los que necesita.
Para más información sobre la integración de Microsoft Entra, RBAC de Kubernetes y Azure RBAC, consulte los procedimientos recomendados para la autenticación y autorización en AKS.
Restricción del acceso a la API de Instance Metadata
Guía de procedimientos recomendados
Agregue una directiva de red en todos los espacios de nombres de usuario para bloquear la salida del pod al punto de conexión de metadatos.
Nota:
Para implementar la directiva de red, incluya el atributo --network-policy azure
al crear el clúster de AKS. Usa el siguiente comando para crear el clúster: az aks create -g myResourceGroup -n myManagedCluster --network-plugin azure --network-policy azure --generate-ssh-keys
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: restrict-instance-metadata
spec:
podSelector:
matchLabels: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 10.10.0.0/0#example
except:
- 169.254.169.254/32
Proteger el acceso del contenedor a los recursos
Guía de procedimientos recomendados
Limite el acceso a las acciones que los contenedores pueden realizar. Proporcione el menor número de permisos y evite el uso del acceso a raíz y la elevación de privilegios.
Por el mismo motivo que debería conceder a los usuarios o a los grupos el menor número de privilegios necesarios, también debería limitar los contenedores a solo las acciones y procesos necesarios. Para minimizar el riesgo de ataques, evite configurar las aplicaciones y los contenedores que requieren elevación de privilegios o acceso a raíz.
Para un control aún más detallado de las acciones de los contenedores, también puede usar las características de seguridad incorporadas de Linux como AppArmor y seccomp. Para más información, consulte Protección del acceso del contenedor a los recursos.
Actualización regular a la versión más reciente de Kubernetes
Guía de procedimientos recomendados
Para mantenerse al día con las nuevas características y correcciones de errores, actualice regularmente la versión de Kubernetes en el clúster de AKS.
Kubernetes presenta nuevas características a un ritmo más rápido que otras plataformas de infraestructura más tradicionales. Las actualizaciones de Kubernetes incluyen:
- Nuevas características
- Correcciones de errores o de seguridad
Las nuevas características normalmente pasan al estado alfa y beta antes de convertirse en estables. Una vez que son estables, están disponibles con carácter general y se recomiendan para su uso en producción. Este nuevo ciclo de versión de actualización de características debería permitirle actualizar Kubernetes sin encontrar normalmente cambios importantes ni tener que ajustar las implementaciones ni las plantillas.
AKS es compatible con tres versiones secundarias de Kubernetes. Cuando se introduce una nueva versión secundaria de revisión, se retiran la versión secundaria y la versión de revisión compatibles más antiguas. Las actualizaciones secundarias de Kubernetes se realizan periódicamente. Para poder disponer de soporte técnico, asegúrese de que tiene un proceso de gobernanza para comprobar si hay actualizaciones necesarias. Para más información, consulte Versiones de Kubernetes compatibles en Azure Kubernetes Service (AKS).
Para comprobar las versiones que están disponibles para el clúster, use el comando az aks get-upgrades tal como se muestra en el ejemplo siguiente:
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster --output table
A continuación, puede actualizar el clúster de AKS con el comando az aks upgrade. De forma segura, el proceso de actualización:
- Acordona y purga un nodo cada vez.
- Programa pods en los nodos restantes.
- Implementa un nuevo nodo que ejecuta las versiones más recientes del sistema operativo y Kubernetes.
Importante
Pruebe las nuevas versiones secundarias en un entorno de desarrollo y pruebas, y compruebe que la carga de trabajo funciona correctamente con la nueva versión de Kubernetes.
Kubernetes puede poner en desuso las API (como en la versión 1.16) en las que se basan las cargas de trabajo. Al incorporar nuevas versiones en producción, considere la posibilidad de usar varios grupos de nodos en versiones independientes y actualizar grupos individuales de uno en uno para implementar progresivamente la actualización en un clúster. Si se ejecutan varios clústeres, actualice un clúster cada vez para supervisar progresivamente el impacto o los cambios.
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version KUBERNETES_VERSION
Para obtener más información sobre las actualizaciones de AKS, consulte Versiones de Kubernetes compatibles en Azure Kubernetes Service (AKS) y Actualización de un clúster de AKS.
Procesamiento de las actualizaciones de los nodos de Linux
Cada noche, los nodos Linux de AKS obtienen las actualizaciones de seguridad a través de su canal de actualización de distribuciones. Este comportamiento se configura automáticamente cuando se implementan los nodos en un clúster de AKS. Para minimizar las interrupciones y el posible impacto sobre las cargas de trabajo en ejecución, los nodos no se reinician automáticamente si lo requiere una revisión de seguridad o una actualización de kernel. Para más información sobre cómo controlar los inicios del nodo, consulte Aplicación de actualizaciones de kernel y de seguridad en los nodos en AKS.
Actualizaciones de imágenes de nodo
Las actualizaciones desatendidas aplican actualizaciones al sistema operativo del nodo de Linux, pero la imagen que se usa para crear los nodos del clúster no se modifica. Si se agrega un nuevo nodo de Linux al clúster, se usa la imagen original para crear el nodo. Este nuevo nodo recibirá todas las actualizaciones de seguridad y del kernel que haya disponibles durante la comprobación automática cada noche, pero no se le aplicarán revisiones hasta que se completen todas las comprobaciones y los reinicios. Puede usar la actualización de la imagen de nodo para buscar y actualizar las imágenes de nodo que usa el clúster. Para más información sobre la actualización de imágenes de nodo, consulte Actualización de la imagen de nodos de Azure Kubernetes Service (AKS).
Procesamiento de las actualizaciones de los nodos de Windows Server
Para los nodos de Windows Server, realice periódicamente una operación de actualización de imágenes de nodo para acordonar y drenar los pods de forma segura, e implemente los nodos actualizados.
Azure Kubernetes Service