Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo montar un sistema de archivos cifrado de Amazon EFS en un pod de Amazon EKS?
Quiero montar un sistema de archivos cifrado de Amazon Elastic File System (Amazon EFS) en un pod de Amazon Elastic Kubernetes Service (Amazon EKS).
Resolución
Puedes cifrar los datos de tu sistema de archivos de Amazon EFS mientras estén en estado de datos en tránsito y datos en reposo. Los datos en tránsito están configurados de forma predeterminada.
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Cifrado de datos en tránsito con TLS
Para cifrar los datos en tránsito con TLS, sigue estos pasos:
-
Implementa el controlador de interfaz de almacenamiento en contenedores (CSI) de Amazon EFS para tu clúster de Amazon EKS.
-
Crea un sistema de archivos de Amazon EFS.
Nota: Al crear el sistema de archivos, crea un destino de montaje para Amazon EFS en todas las zonas de disponibilidad en las que se encuentran los nodos de EKS. -
Clona el repositorio de GitHub en tu sistema local.
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git -
Ve al directorio de ejemplo: encryption_in_transit:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/ -
Para recuperar el ID del sistema de archivos de Amazon EFS, ejecuta el siguiente comando describe-file-systems:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text -
Abre al archivo pv.yaml en el directorio /examples/kubernetes/encryption_in_transit/specs/. A continuación, sustituye el valor de VolumeHandle por el FileSystemId del sistema de archivos de Amazon EFS que debe montarse.
El archivo pv.yaml debe tener un aspecto similar al siguiente:apiVersion: v1 kind: PersistentVolume metadata: name: efs-pv spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: efs-sc csi: driver: efs.csi.aws.com volumeHandle: FileSystemId volumeAttributes: encryptInTransit: "true"Nota: Sustituye FileSystemId por el ID del sistema de archivos de Amazon EFS. La opción de montaje volumeAttributes: encryptInTransit activa el cifrado en tránsito.
-
Despliega la clase de almacenamiento, la reclamación de volumen persistente, el volumen persistente y el pod desde el directorio: /examples/kubernetes/encryption_in_transit/specs/:
kubectl apply -f specs/storageclass.yaml kubectl apply -f specs/pv.yaml kubectl apply -f specs/claim.yaml kubectl apply -f specs/pod.yaml -
Para comprobar que el pod está en ejecución, ejecuta el siguiente comando:
kubectl get pods -
Para enumerar los volúmenes persistentes en el espacio de nombres predeterminado, ejecuta el siguiente comando:
kubectl get pv -
Para describir el volumen persistente, ejecuta el siguiente comando:
kubectl describe pv efs-pv
Nota: El ID del sistema de archivos de Amazon EFS aparece como VolumeHandle. Para comprobar que los datos están escritos en el sistema de archivos de Amazon EFS, ejecuta el siguiente comando:
kubectl exec -ti efs-app -- tail -f /data/out.txt
Cómo cifrar datos en reposo
Nota: Después de crear un sistema de archivos EFS, no puedes cambiar su configuración de cifrado. Esto significa que no puedes modificar un sistema de archivos no cifrado para cifrarlo.
Para cifrar los datos en reposo, sigue estos pasos:
-
Despliega el controlador CSI de Amazon EFS para tu clúster de Amazon EKS.
-
Crea un sistema de archivos de Amazon EFS con el cifrado en reposo activo.
Nota: La consola de administración de AWS activa automáticamente el cifrado en reposo con una clave de AWS Key Management Service (AWS KMS) administrada por AWS. La CLI de AWS y el SDK requieren que actives el cifrado de forma explícita. -
Clona el siguiente repositorio de GitHub en tu sistema local:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git -
Ve al directorio de ejemplo multiple_pods:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/ -
Para recuperar el ID del sistema de archivos de Amazon EFS, ejecuta el siguiente comando:
aws efs describe-file-systemsResultado de ejemplo:
{ "FileSystems": [ { "SizeInBytes": { "Timestamp": **timestamp**, "Value": **value** }, "ThroughputMode": "**throughput-mode**", "CreationToken": "**creation-token**", "Encrypted": true, "CreationTime": **creation-time**, "PerformanceMode": "**performance-mode**", "FileSystemId": "**file-system-id**", "NumberOfMountTargets": **number**, "LifeCycleState": "available", "KmsKeyId": "arn:aws:kms:ap-southeast-1:**account-id**:key/**key-id**", "OwnerId": "**owner-id**" } ] } -
Abre al archivo pv.yaml en el directorio: /examples/kubernetes/multiple_pods/specs/. A continuación, sustituye el valor de volumeHandle por el FileSystemId del sistema de archivos Amazon EFS que debe montarse.
El archivo pv.yaml debe tener un aspecto similar al siguiente:apiVersion: v1 kind: PersistentVolume metadata: name: efs-pv spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: efs-sc csi: driver: efs.csi.aws.com volumeHandle: FileSystemIdNota: Sustituye FileSystemId por el ID del sistema de archivos de Amazon EFS.
-
Despliega la clase de almacenamiento, la reclamación de volumen persistente, el volumen persistente y el pod desde el directorio /examples/kubernetes/multiple_pods/specs/:
kubectl apply -f specs/storageclass.yaml kubectl apply -f specs/pv.yaml kubectl apply -f specs/claim.yaml kubectl apply -f specs/pod1.yaml kubectl apply -f specs/pod2.yaml -
Para comprobar que el pod está en ejecución, ejecuta el siguiente comando:
kubectl get pods -
Para enumerar los volúmenes persistentes en el espacio de nombres predeterminado, ejecuta el siguiente comando:
kubectl get pv -
Para describir el volumen persistente, ejecuta el siguiente comando:
kubectl describe pv efs-pv
- Para comprobar que los datos están escritos en el sistema de archivos de Amazon EFS, ejecuta los siguientes comandos:
kubectl exec -ti app1 -- tail /data/out1.txt kubectl exec -ti app2 -- tail /data/out1.txt
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español

Contenido relevante
- preguntada hace 5 meses
- preguntada hace 6 meses
- preguntada hace 9 meses
- preguntada hace un año