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 Daten in Ihrem Amazon EFS-Dateisystem mit einer der folgenden Verfahren verschlüsseln:
Wählen Sie im Abschnitt „Lösung“ ein Verschlüsselungsverfahren aus, das Ihren Anforderungen entspricht.
**Hinweis:**Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, vergewissern Sie sich, dass Sie die neueste AWS CLI-Version verwenden.
Behebung
Verschlüsseln von Daten während der Übertragung mit TLS
1. Stellen Sie den Amazon EFS Container Storage Interface (CSI)-Treiber für Ihren Amazon EKS-Cluster bereit.
2. Erstellen Sie ein Amazon EFS-Dateisystem ohne Verschlüsselung für Ihren Cluster.
3. Klonen Sie das GitHub-Repository auf Ihr lokales System:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
4. Gehen Sie zum Beispielverzeichnis encryption_in_transit:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/
5. Rufen Sie Ihre Amazon EFS-Dateisystem-ID ab:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
6. 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 gemountet werden muss. 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.
7. 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
8. Nachdem die Objekte erstellt wurden, vergewissern Sie sich, dass Ihr Pod läuft:
kubectl get pods
9. Listen Sie das persistente Volume im Standard-Namespace auf:
kubectl get pv
10. Beschreiben Sie das persistente Volume:
kubectl describe pv efs-pv
Hinweis: Die Amazon EFS-Dateisystem-ID ist als VolumeHandle aufgeführt.
11. 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
1. Stellen Sie den Amazon EFS CSI-Treiber für Ihren Amazon EKS-Cluster bereit.
2. Erstellen Sie ein Amazon EFS-Dateisystem, indem Sie die Verschlüsselung im Ruhezustand für Ihren Amazon EKS-Cluster aktivieren.
3. Klonen Sie das folgende GitHub-Repository auf Ihr lokales System:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
4. Gehen Sie zum Beispielverzeichnis multiple_pods:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
5. Rufen Sie Ihre Amazon EFS-Dateisystem-ID ab:
aws efs describe-file-systems
Beispiel für eine Ausgabe:
{ "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. 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 gemountet werden muss. 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]
7. 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
8. Nachdem die Objekte erstellt wurden, vergewissern Sie sich, dass Ihr Pod läuft:
kubectl get pods
9. Listen Sie das persistente Volume im Standard-Namespace auf:
kubectl get pv
10. Beschreiben Sie das persistente Volume:
kubectl describe pv efs-pv
11. 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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr