Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cifrado de datos y gestión de secretos
Cifrado en reposo
Hay tres opciones de AWS-native almacenamiento diferentes que puede usar con Kubernetes: EBS , EFS y FSx for Lustre. Las tres ofrecen cifrado en reposo mediante una clave gestionada por el servicio o una clave maestra de cliente (CMK). En el caso de EBS, puede usar el controlador de almacenamiento integrado en árbol o el controlador CSI de EBS. tls parámetro a mountOptions en su PV, como en este ejemplo:
apiVersion: v1 kind: PersistentVolume metadata: name: efs-pv spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: efs-sc mountOptions: - tls csi: driver: efs.csi.aws.com volumeHandle: <file_system_id>
El controlador FSx CSI
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: fsx-sc provisioner: fsx.csi.aws.com parameters: subnetId: subnet-056da83524edbe641 securityGroupIds: sg-086f61ea73388fb6b deploymentType: PERSISTENT_1 kmsKeyId: <kms_arn>
importante
A partir del 28 de mayo de 2020, todos los datos escritos en el volumen efímero de los módulos EKS Fargate se cifran de forma predeterminada mediante un algoritmo criptográfico estándar del sector. AES-256 No es necesario modificar la aplicación, ya que el servicio gestiona perfectamente el cifrado y el descifrado.
Cifrado de datos en reposo
Cifrar los datos en reposo se considera una práctica recomendada. Si no estás seguro de si el cifrado es necesario, cifra tus datos.
Rota tus CMK periódicamente
Configure KMS para que rote automáticamente sus CMK. De este modo, las claves se rotarán una vez al año y se guardarán las antiguas de forma indefinida para que los datos puedan seguir descifrándose. Para obtener más información, consulta Cómo rotar las claves maestras de los clientes
Utilice los puntos de acceso EFS para simplificar el acceso a los conjuntos de datos compartidos
Si tiene conjuntos de datos compartidos con diferentes permisos de archivo POSIX o desea restringir el acceso a una parte del sistema de archivos compartido mediante la creación de diferentes puntos de montaje, considere la posibilidad de utilizar puntos de acceso EFS. Para obtener más información sobre cómo trabajar con puntos de acceso, consulte https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html. Hoy. Si desea utilizar un punto de acceso (AP), tendrá que hacer referencia al AP en el parámetro del volumeHandle PV.
importante
A partir del 23 de marzo de 2021, el controlador CSI EFS admite el aprovisionamiento dinámico de los puntos de acceso EFS. Los puntos de acceso son puntos de entrada específicos de la aplicación a un sistema de archivos EFS que facilitan el intercambio de un sistema de archivos entre varios pods. Cada sistema de archivos EFS puede tener hasta 120 PVs. Consulte Introducción al aprovisionamiento dinámico CSI de Amazon EFS
Administración de secretos
Los secretos de Kubernetes se utilizan para almacenar información confidencial, como certificados de usuario, contraseñas o claves de API. Se conservan en etcd como cadenas codificadas en base64. En EKS, los volúmenes de EBS de los nodos etcd se cifran con el cifrado EBS. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Un pod puede recuperar los objetos secretos de Kubernetes haciendo referencia al secreto en. podSpec Estos secretos pueden asignarse a una variable de entorno o montarse como volumen. Para obtener información adicional sobre la creación de secretos, consulte https://kubernetes.io/docs/concepts/configuration/secret/.
aviso
Todos los pods del espacio de nombres del secreto pueden hacer referencia a los secretos de un espacio de nombres determinado.
aviso
El autorizador de nodos permite al Kubelet leer todos los secretos guardados en el nodo.
Utilice AWS KMS para cifrar los secretos de Kubernetes en sobres
Esto le permite cifrar sus secretos con una clave de cifrado de datos (DEK) única. A continuación, la DEK se cifra con una clave de cifrado de claves (KEK) de AWS KMS que se puede rotar automáticamente de forma periódica. Con el complemento KMS para Kubernetes, todos los secretos de Kubernetes se almacenan en etcd en texto cifrado, en lugar de en texto plano, y solo el servidor de API de Kubernetes puede descifrarlos. Para obtener más información, consulta el artículo Cómo utilizar el soporte del proveedor de cifrado EKS para una defensa en profundidad https://aws.amazon.com/blogs/containers/using-eks-encryption-provider-support-for-defense-in-depth/
Audite el uso de Kubernetes Secrets
En EKS, activa el registro de auditoría y crea un filtro de CloudWatch métricas y una alarma para avisarte cuando se utilice un secreto (opcional). A continuación, se muestra un ejemplo de un filtro de métricas para el registro de auditoría de Kubernetes. {($.verb="get") && ($.objectRef.resource="secret")} También puedes usar las siguientes consultas con CloudWatch Log Insights:
fields @timestamp, @message | sort @timestamp desc | limit 100 | stats count(*) by objectRef.name as secret | filter verb="get" and objectRef.resource="secrets"
La consulta anterior mostrará el número de veces que se ha accedido a un secreto en un período de tiempo específico.
fields @timestamp, @message | sort @timestamp desc | limit 100 | filter verb="get" and objectRef.resource="secrets" | display objectRef.namespace, objectRef.name, user.username, responseStatus.code
Esta consulta mostrará el secreto, junto con el espacio de nombres y el nombre de usuario del usuario que intentó acceder al secreto y el código de respuesta.
Cambia tus secretos periódicamente
Kubernetes no rota automáticamente los secretos. Si tiene que rotar los secretos, considere la posibilidad de utilizar un almacén de secretos externo, por ejemplo, Vault o AWS Secrets Manager.
Utilice espacios de nombres independientes para aislar los secretos de diferentes aplicaciones
Si tiene secretos que no se pueden compartir entre aplicaciones de un espacio de nombres, cree un espacio de nombres independiente para esas aplicaciones.
Utilice montajes de volumen en lugar de variables de entorno
Los valores de las variables de entorno pueden aparecer involuntariamente en los registros. Los datos secretos montados como volúmenes se instancian como volúmenes tmpfs (un sistema de archivos con respaldo de RAM) que se eliminan automáticamente del nodo cuando se elimina el pod.
Utilice un proveedor de secretos externo
Existen varias alternativas viables al uso de los secretos de Kubernetes, como AWS Secrets Manager
A medida que ha crecido el uso de almacenes de secretos externos, también lo ha hecho la necesidad de integrarlos con Kubernetes. El controlador CSI de Secret Store
nota
Cuando el controlador CSI del almacén secreto tiene que buscar un secreto, asume la función IRSA asignada al pod que hace referencia a ese secreto. El código de esta operación se puede encontrar aquí. https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/credential_provider/
Para obtener información adicional sobre el proveedor de secretos y configuración de AWS (ASCP), consulte los siguientes recursos:
external-secrets