Wie mounte ich ein verschlüsseltes Amazon EFS-Dateisystem auf einen Pod in Amazon EKS?
Ich möchte ein verschlüsseltes Amazon Elastic File System (Amazon EFS)-Dateisystem auf einen Pod in Amazon Elastic Kubernetes Service (Amazon EKS) mounten.
Kurzbeschreibung
Sie können Ihre Daten entweder während der Übertragung mit TLS oder im Ruhezustand verschlüsseln.
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste AWS-CLI-Version verwenden.
Behebung
Verschlüsseln von Daten während der Übertragung mit TLS
Gehen Sie wie folgt vor, um Ihre Daten während der Übertragung mit TLS zu verschlüsseln:
-
Stellen Sie den Amazon EFS Container Storage Interface (CSI)-Treiber für Ihren Amazon EKS-Cluster bereit.
-
Erstellen Sie ein Amazon EFS-Dateisystem ohne Verschlüsselung für Ihren Cluster.
Hinweis: Wenn Sie das Dateisystem erstellen, erstellen Sie ein Mount-Ziel für Amazon EFS in allen Availability Zones, in denen sich Ihre EKS-Knoten befinden. -
Klonen Sie das GitHub-Repository auf Ihr lokales System:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
Gehen Sie zum Beispielverzeichnis encryption_in_transit:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/
-
Rufen Sie Ihre Amazon EFS-Dateisystem-ID ab:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
-
Gehen Sie zur Datei pv.yaml im Verzeichnis /examples/kubernetes/encryption_in_transit/specs/. Ersetzen Sie dann den Wert von VolumeHandle durch die FileSystemId des Amazon EFS-Dateisystems, das Sie mounten. Zum Beispiel:
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"
Hinweis: Die Mount-Option volumeAttributes: encryptInTransit aktiviert die Verschlüsselung während der Übertragung.
-
Stellen Sie die Speicherklasse, den Anspruch auf ein persistentes Volume, das persistente Volume und den Pod aus dem Verzeichnis /examples/kubernetes/encryption_in_transit/specs/ bereit:
kubectl apply -f specs/storageclass.yaml kubectl apply -f specs/pv.yaml kubectl apply -f specs/claim.yaml kubectl apply -f specs/pod.yaml
-
Stellen Sie sicher, dass sich Ihr Pod in einem laufenden Zustand befindet:
kubectl get pods
-
Listen Sie das persistente Volume im Standard-Namespace auf:
kubectl get pv
-
Beschreiben Sie das persistente Volume:
kubectl describe pv efs-pv
Hinweis: Die Amazon EFS-Dateisystem-ID ist als VolumeHandle aufgeführt. Vergewissern Sie sich, dass die Daten in das Amazon EFS-Dateisystem geschrieben wurden:
kubectl exec -ti efs-app -- tail -f /data/out.txt
Verschlüsseln von Daten im Ruhezustand
Gehen Sie wie folgt vor, um Daten im Ruhezustand zu verschlüsseln:
-
Stellen Sie den Amazon EFS CSI-Treiber für Ihren Amazon EKS-Cluster bereit.
-
Erstellen Sie ein Amazon EFS-Dateisystem, indem Sie die Verschlüsselung im Ruhezustand für Ihren Amazon EKS-Cluster aktivieren.
-
Klonen Sie das folgende GitHub-Repository auf Ihr lokales System:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
Gehen Sie zum Beispielverzeichnis multiple_pods:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
-
Rufen Sie Ihre Amazon EFS-Dateisystem-ID ab:
aws efs describe-file-systems
Beispielausgabe:
{ "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": "" }, ] }
-
Gehen Sie zur Datei pv.yaml im Verzeichnis /examples/kubernetes/multiple_pods/specs/. Ersetzen Sie dann den Wert von VolumeHandle durch die FileSystemId des Amazon EFS-Dateisystems, das Sie mounten. Zum Beispiel:
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]
-
Stellen Sie die Speicherklasse, den Anspruch auf ein persistentes Volume, das persistente Volume und den Pod aus dem Verzeichnis /examples/kubernetes/multiple_pods/specs/ bereit:
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
-
Stellen Sie sicher, dass sich Ihr Pod in einem laufenden Zustand befindet:
kubectl get pods
-
Listen Sie das persistente Volume im Standard-Namespace auf:
kubectl get pv
-
Beschreiben Sie das persistente Volume:
kubectl describe pv efs-pv
- Vergewissern Sie sich, dass die Daten in das Amazon EFS-Dateisystem geschrieben wurden:
kubectl exec -ti app1 -- tail /data/out1.txt kubectl exec -ti app2 -- tail /data/out1.txt
- Themen
- Behälter
- Sprache
- Deutsch

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Monaten