New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Come si monta un file system Amazon EFS crittografato su un pod in Amazon EKS?
Desidero montare un file system Amazon Elastic File System (Amazon EFS) crittografato su un pod in Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrizione
È possibile crittografare i dati in transito con TLS o a riposo.
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Soluzione
Crittografia dei dati in transito con TLS
Per crittografare i dati in transito con TLS, completa i seguenti passaggi:
-
Implementa il driver Amazon EFS Container Storage Interface (CSI) per il cluster Amazon EKS.
-
Crea un file system Amazon EFS senza crittografia per il cluster.
Nota: quando crei il file system, crea un target di montaggio per Amazon EFS in tutte le zone di disponibilità in cui sono presenti i tuoi nodi EKS. -
Clona il repository GitHub sul sistema locale:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
Vai alla directory di esempio encryption\ _in\ _transit:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/
-
Recupera l'ID del file system Amazon EFS:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
-
Vai al file pv.yaml nella directory /examples/kubernetes/encryption\ _in\ _transit/specs/. Quindi, sostituisci il valore di VolumeHandle con il FileSystemId del file system Amazon EFS che deve essere montato. Ad esempio:
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: l'opzione di montaggio volumeAttributes: encryptInTransit attiva la crittografia in transito.
-
Implementa la classe di archiviazione, la dichiarazione del volume persistente, il volume persistente e il pod dalla directory /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
-
Verifica che il pod sia in esecuzione:
kubectl get pods
-
Elenca i volumi persistenti nello spazio dei nomi predefinito:
kubectl get pv
-
Descrivi il volume persistente:
kubectl describe pv efs-pv
Nota: l'ID del file system Amazon EFS è indicato come VolumeHandle. Verifica che i dati siano scritti nel file system Amazon EFS:
kubectl exec -ti efs-app -- tail -f /data/out.txt
Crittografia dei dati a riposo
Per crittografare i dati a riposo, completa i seguenti passaggi:
-
Implementa il driver CSI Amazon EFS per il cluster Amazon EKS.
-
Crea un file system Amazon EFS abilitando la crittografia a riposo per il cluster Amazon EKS.
-
Clona il seguente repository GitHub sul sistema locale:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
Vai alla cartella degli esempio multiple_pods:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
-
Recupera l'ID del file system Amazon EFS:
aws efs describe-file-systems
Esempio di output:
{ "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": "" }, ] }
-
Vai al file pv.yaml nella directory /examples/kubernetes/multiple_pods/specs/. Quindi, sostituisci il valore di volumeHandle con il FileSystemId del file system Amazon EFS che deve essere montato. Ad esempio:
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]
-
Implementa la classe di archiviazione, la dichiarazione del volume persistente, il volume persistente e il pod dalla directory /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
-
Verifica che il pod sia in esecuzione:
kubectl get pods
-
Elenca i volumi persistenti nello spazio dei nomi predefinito:
kubectl get pv
-
Descrivi il volume persistente:
kubectl describe pv efs-pv
- Verifica che i dati siano scritti nel file system Amazon EFS:
kubectl exec -ti app1 -- tail /data/out1.txt kubectl exec -ti app2 -- tail /data/out1.txt

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata 3 anni fa
- Come posso montare un file system EFS su un container o un'attività ECS in esecuzione su Amazon EC2?AWS UFFICIALEAggiornata 8 mesi fa