¿Cómo puedo montar un sistema de archivos cifrado de Amazon EFS en un pod de Amazon EKS?

4 minutos de lectura
0

Quiero montar un sistema de archivos cifrado de Amazon Elastic File System (Amazon EFS) en un pod de Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descripción

Puede cifrar los datos de su sistema de archivos Amazon EFS mediante uno de los siguientes métodos:

En la sección «Resolución», elija un método de cifrado según sus necesidades.

Nota: Si recibe errores al ejecutar comandos de la AWS Command Line Interface (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Resolución

Cifre los datos en tránsito con TLS

1.Implemente el controlador de interfaz de almacenamiento en contenedores (CSI) de Amazon EFS para su clúster de Amazon EKS.

2.Cree un sistema de archivos Amazon EFS sin cifrado para su clúster.

3.Clone el repositorio de GitHub en su sistema local:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

4.Vaya al directorio de ejemplo: encryption_in_transit.

cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/

5.Recupere el ID del sistema de archivos de Amazon EFS:

aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text

6.Vaya al archivo pv.yaml en el directorio /examples/kubernetes/encryption_in_transit/specs/. A continuación, sustituya el valor de VolumeHandle por el FileSystemId del sistema de archivos Amazon EFS que debe montarse. Por ejemplo:

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: La opción de montaje volumeAttributes: encryptInTransit activa el cifrado en tránsito.

7.Implemente 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

8.Una vez creados los objetos, compruebe que el pod se esté ejecutando:

kubectl get pods

9.Enumere los volúmenes persistentes en el espacio de nombres predeterminado:

kubectl get pv

10.Describa el volumen persistente:

kubectl describe pv efs-pv

Nota: El ID del sistema de archivos de Amazon EFS aparece como VolumeHandle.

11.Compruebe que los datos estén escritos en el sistema de archivos Amazon EFS:

kubectl exec -ti efs-app -- tail -f /data/out.txt

Cifrar datos en reposo

1.Implemente el controlador CSI de Amazon EFS para su clúster de Amazon EKS.

2.Cree un sistema de archivos de Amazon EFS habilitando el cifrado en reposo para su clúster de Amazon EKS.

3.Clone el siguiente repositorio de GitHub en su sistema local:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

4.Vaya al directorio de ejemplos de múltiple_pods:

cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/

5.Recupere el ID del sistema de archivos de Amazon EFS:

aws efs describe-file-systems

Ejemplo de salida:

{
 "FileSystems": [
 {
 "SizeInBytes": {
 "Timestamp": ,
 "Value":
 },
 "ThroughputMode": "",
 "CreationToken": “”,
 "Encrypted": true,
 "CreationTime": ,
 "PerformanceMode": "",
 "FileSystemId": "[FileSystemId]",
 "NumberOfMountTargets": ,
 "LifeCycleState": "available",
 "KmsKeyId": "arn:aws:kms:ap-southeast-1:<account_id>:key/854df848-fdd1-46e3-ab97-b4875c4190e6",
 "OwnerId": ""
 },
 ]
}

6.Vaya al archivo pv.yaml en el directorio: /examples/kubernetes/multiple_pods/specs/. A continuación, sustituya el valor de volumeHandle por el FileSystemId del sistema de archivos Amazon EFS que debe montarse. Por ejemplo:

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: [FileSystemId]

7.Implemente 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

8.Una vez creados los objetos, compruebe que el pod se esté ejecutando:

kubectl get pods

9.Enumere los volúmenes persistentes en el espacio de nombres predeterminado:

kubectl get pv

10.Describa el volumen persistente:

kubectl describe pv efs-pv

11.Compruebe que los datos estén escritos en el sistema de archivos Amazon EFS:

kubectl exec -ti app1 -- tail /data/out1.txt
kubectl exec -ti app2 -- tail /data/out1.txt

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años