Como faço para montar um sistema de arquivos criptografado do Amazon EFS em um pod no Amazon EKS?

4 minuto de leitura
0

Quero montar um sistema de arquivos criptografado do Amazon Elastic File System (Amazon EFS) em um pod no Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrição

Você pode criptografar dados em seu sistema de arquivos do Amazon EFS usando um dos seguintes métodos:

Na seção “Resolução”, selecione um método de criptografia com base nas suas necessidades.

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Resolução

Criptografe dados em trânsito com TLS

1.    Implante o driver Amazon EFS Container Storage Interface (CSI) ao seu cluster do Amazon EKS.

2.    Crie um sistema de arquivos do Amazon EFS sem criptografia para seu cluster.

3.    Clone o repositório do GitHub em seu sistema local:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

4.    Acesse o diretório de exemplo encryption_in_transit:

cd aws-efs-csi-driver/examples/kubernetes/encryption_in_transit/

5.    Recupere a ID do sistema de arquivos do Amazon EFS:

aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text

6.    Acesse o arquivo pv.yaml no diretório /examples/kubernetes/encryption_in_transit/specs/. Em seguida, substitua o valor de VolumeHandle pelo FileSystemId do sistema de arquivos do Amazon EFS que precisa ser montado. Por exemplo:

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"

Observação: a opção de montagem volumeAttributes: encryptInTransit ativa a criptografia em trânsito.

7.    Implante a classe de armazenamento, a declaração de volume persistente, o volume persistente e o pod do diretório /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

8.    Depois que os objetos forem criados, verifique se o pod está em execução:

kubectl get pods

9.    Liste os volumes persistentes no namespace padrão:

kubectl get pv

10.    Descreva o volume persistente:

kubectl describe pv efs-pv

Observação: a ID do sistema de arquivos do Amazon EFS está listada como VolumeHandle.

11.    Verifique se os dados estão gravados no sistema de arquivos do Amazon EFS:

kubectl exec -ti efs-app -- tail -f /data/out.txt

Criptografe dados em repouso

1.    Implante o driver CSI do Amazon EFS para seu cluster do Amazon EKS.

2.    Crie um sistema de arquivos do Amazon EFS ativando a criptografia em repouso para seu cluster do Amazon EKS.

3.    Clone o repositório do GitHub a seguir em seu sistema local:

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

4.    Vá para o diretório de exemplo multiple_pods:

cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/

5.    Recupere a ID do sistema de arquivos do Amazon EFS:

aws efs describe-file-systems

Exemplo de saída:

{
 "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.    Acesse o arquivo pv.yaml no diretório /examples/kubernetes/multiple_pods/specs/. Em seguida, substitua o valor de volumeHandle pelo FileSystemId do sistema de arquivos do Amazon EFS que precisa ser montado. Por exemplo:

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.    Implante a classe de armazenamento, a declaração de volume persistente, o volume persistente e o pod no diretório /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

8.    Depois que os objetos forem criados, verifique se o pod está em execução:

kubectl get pods

9.    Liste os volumes persistentes no namespace padrão:

kubectl get pv

10.    Descreva o volume persistente:

kubectl describe pv efs-pv

11.    Verifique se os dados estão gravados no sistema de arquivos do Amazon EFS:

kubectl exec -ti app1 -- tail /data/out1.txt
kubectl exec -ti app2 -- tail /data/out1.txt

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos