Come si monta un file system Amazon EFS crittografato su un pod in Amazon EKS?

4 minuti di lettura
0

Desidero montare un file system Amazon Elastic File System (Amazon EFS) crittografato su un pod in Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrizione

Puoi crittografare i dati nel tuo file system Amazon EFS utilizzando uno dei seguenti metodi:

Nella sezione «Risoluzione», scegli un metodo di crittografia in base alle tue esigenze.

Nota: Se ricevi errori durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Risoluzione

Crittografa i dati in transito con TLS

  1. Implementa il driver Amazon EFS Container Storage Interface (CSI) per il tuo cluster Amazon EKS.

  2. Crea un file system Amazon EFS senza crittografia per il tuo cluster.

  3. Clona il repository GitHub sul tuo sistema locale:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
  1. Vai alla directory di esempio di encryption\ _in\ _transit:
cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/
  1. Recupera l'ID del file system Amazon EFS:
aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
  1. 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.

  1. Distribuisci 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
  1. Dopo aver creato gli oggetti, verifica che il pod sia in esecuzione:
kubectl get pods
  1. Elenca i volumi persistenti nello spazio dei nomi predefinito:
kubectl get pv
  1. Descrivi il volume persistente:
kubectl describe pv efs-pv

Nota: L'ID del file system Amazon EFS è indicato come VolumeHandle.

  1. Verifica che i dati siano scritti nel file system Amazon EFS:
kubectl exec -ti efs-app -- tail -f /data/out.txt

Crittografa i dati inattivi

  1. Implementa il driver CSI Amazon EFS per il tuo cluster Amazon EKS.

  2. Crea un file system Amazon EFS abilitando la crittografia a riposo per il tuo cluster Amazon EKS.

  3. Clona il seguente repository GitHub sul tuo sistema locale:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
  1. Vai alla cartella degli esempi multipli di_pods:
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
  1. 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": ""
 },
 ]
}
  1. 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]
  1. Distribuisci 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
  1. Dopo aver creato gli oggetti, verifica che il pod sia in esecuzione:
kubectl get pods
  1. Elenca i volumi persistenti nello spazio dei nomi predefinito:
kubectl get pv
  1. Descrivi il volume persistente:
kubectl describe pv efs-pv
  1. 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

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa