Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
如何將加密的 Amazon EFS 檔案系統掛載到 Amazon EKS 中的 Pod?
我想要將加密的 Amazon Elastic File System (Amazon EFS) 檔案系統掛載到 Amazon Elastic Kubernetes Service (Amazon EKS) 中的 Pod。
簡短說明
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
解決方法
使用 TLS 加密傳輸中的資料
若要使用 TLS 加密傳輸中的資料,請完成下列步驟:
-
為您的 Amazon EKS 叢集部署 Amazon EFS Container Storage Interface (CSI) 驅動程式。
-
為您的叢集建立未加密的 Amazon EFS 檔案系統。
**注意:**建立檔案系統時,請為您的 EKS 節點所在的所有可用區域中的 Amazon EFS,建立掛載目標。 -
將 GitHub 儲存庫複製到本機系統:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
前往 encryption_in_transit 範例目錄:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/
-
擷取您的 Amazon EFS 檔案系統 ID:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
-
前往 /examples/kubernetes/encryption_in_transit/specs/ 目錄中的 pv.yaml 檔案。然後,使用掛載的 Amazon EFS 檔案系統的 FileSystemId 取代 VolumeHandle 的值。例如:
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"
**注意:**volumeAttributes: encryptInTransit 掛載選項會啟用傳輸中的加密。
-
從 /examples/kubernetes/encryption_in_transit/specs/ 目錄部署儲存體類別、持久性磁碟區宣告、持久性磁碟區和 Pod:
kubectl apply -f specs/storageclass.yaml kubectl apply -f specs/pv.yaml kubectl apply -f specs/claim.yaml kubectl apply -f specs/pod.yaml
-
確認您的 Pod 是否處於執行狀態:
kubectl get pods
-
列出預設命名空間中的持久性磁碟區:
kubectl get pv
-
描述持續性磁碟區:
kubectl describe pv efs-pv
注意: Amazon EFS 檔案系統 ID 會作為 VolumeHandle 列出。 驗證資料是否已寫入 Amazon EFS 檔案系統:
kubectl exec -ti efs-app -- tail -f /data/out.txt
加密靜態資料
若要加密靜態資料,請完成下列步驟:
-
為您的 Amazon EKS 叢集部署 Amazon EFS CSI 驅動程式。
-
為您的 Amazon EKS 叢集開啟靜態加密,以建立 Amazon EFS 檔案系統。
-
將下列 GitHub 儲存庫複製到本機系統:
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
-
前往 multiple_pods 範例目錄:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
-
擷取您的 Amazon EFS 檔案系統 ID:
aws efs describe-file-systems
範例輸出:
{ "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": "" }, ] }
-
前往 /examples/kubernetes/multiple_pods/specs/ 目錄中的 pv.yaml 檔案。然後,使用掛載的 Amazon EFS 檔案系統的 FileSystemId 取代 volumeHandle 的值。例如:
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]
-
從 /examples/kubernetes/multiple_pods/specs/ 目錄部署儲存體類別、持久性磁碟區宣告、持久性磁碟區和 Pod:
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
-
確認您的 Pod 是否處於執行狀態:
kubectl get pods
-
列出預設命名空間中的持久性磁碟區:
kubectl get pv
-
描述持續性磁碟區:
kubectl describe pv efs-pv
- 驗證資料是否已寫入 Amazon EFS 檔案系統:
kubectl exec -ti app1 -- tail /data/out1.txt kubectl exec -ti app2 -- tail /data/out1.txt

相關內容
- 已提問 2 年前lg...
- 已提問 9 個月前lg...
- 已提問 6 個月前lg...