Crittografia dei dati in transito - Crittografia dei dati dei file con Amazon Elastic File System

Crittografia dei dati in transito

È possibile montare un file system in modo che tutto il traffico NFS sia crittografato in transito utilizzando Transport Layer Security 1.2 (TLS) con crittografia AES-256 standard del settore. TLS è un insieme di protocolli crittografici standard del settore utilizzati per crittografare le informazioni scambiate sulla rete. AES-256 è un codice di crittografia a 256 bit utilizzato per la trasmissione dei dati in TLS. Consigliamo di impostare la crittografia in transito su ogni client che accede al file system.

È possibile utilizzare le policy IAM per applicare la crittografia in transito per l'accesso dei client NFS ad Amazon EFS. Quando un client si connette a un file system, Amazon EFS valuta la policy IAM basata sulle risorse del file system, chiamata policy del file system, insieme alle eventuali policy IAM basate sull'identità per determinare le autorizzazioni di accesso al file system appropriate da concedere. Nella policy basata sulle risorse del file system è possibile utilizzare la chiave di condizione di aws:SecureTransport per imporre ai client NFS di utilizzare TLS durante la connessione a un file system EFS.

Nota

Per montare i file system Amazon EFS è necessario utilizzare l'assistente per il montaggio di EFS al fine di utilizzare l'autorizzazione IAM per controllare l'accesso da parte dei client NFS. Per maggiori informazioni, consultare Montaggio con autorizzazione IAM nella Guida per l'utente di Amazon EFS.

Il seguente esempio di policy del file system EFS applica la crittografia in transito e presenta le seguenti caratteristiche:

  • Il valore del campo effect è allow.

  • L'entità è impostata su * per tutte le entità IAM.

  • L'operazione è impostata su ClientMount, ClientWrite, ClientRootAccess.

  • La condizione per la concessione delle autorizzazioni è impostata su SecureTransport. L'accesso è consentito solo ai client NFS che utilizzano TLS per connettersi al file system.

    { “Version”: “2012-10-17”, “Id”: “ExamplePolicy01”, “Statement”: [ { “Sid”: “VisualEditior0”, “Effect”: “Allow”, “Principal”: { “AWS”: “*”, }, “Action”: [ “elasticfilesystem:ClientRootAccess”, “elasticfilesystem:ClientMount”, “elasticfilesystem:ClientWrite” ], “Condition”: { “Bool”: { “aws:SecureTransport”: “true” } } } ] }

    È possibile creare una policy del file system utilizzando la console Amazon EFS o l'AWS CLI.

Per creare una policy del file system utilizzando la console EFS:

  1. Aprire la console di Amazon EFS.

  2. Scegliere File system.

  3. Nella pagina File system, scegliere il file system per cui si desidera modificare o creare una policy del file system. Viene visualizzata la pagina dei dettagli del file system.

  4. Scegliere File system policy (Policy del file system), quindi scegliere Edit (Modifica). Viene visualizzata la pagina Policy del file system.

    File system policy interface with policy options and JSON editor for custom configurations.

    Creare policy del file system

  5. Alla voce Policy options (Opzioni della policy), si consiglia di scegliere le seguenti opzioni preconfigurate della policy disponibili:

    • Impedisci l'accesso root per impostazione predefinita

    • Applica l'accesso in sola lettura per impostazione predefinita

    • Applica la crittografia in transito per tutti i client

    Se si sceglie una policy preconfigurata, l'oggetto JSON policy viene visualizzato nel pannello Policy editor (Editor della policy).

  6. Utilizzare Grant additional permissions (Concedi autorizzazioni aggiuntive) per concedere le autorizzazioni sul file system a entità IAM aggiuntive, incluso un altro account AWS. Scegliere Add (Aggiungi), quindi inserire l'ARN principale dell'entità a cui si stanno concedendo le autorizzazioni e poi scegliere le Permissions (Autorizzazioni) da concedere.

  7. Utilizzare il Policy editor (Editor delle policy) per personalizzare una policy preconfigurata o per creare policy personalizzate. Quando si utilizza l'editor, le opzioni delle policy preconfigurate diventano non disponibili. Per annullare le modifiche alle policy, scegliere Clear (Cancella).

    Quando si deseleziona l'editor, le policy preconfigurate diventano nuovamente disponibili.

  8. Dopo aver completato la modifica o la creazione della policy, scegliere Save (Salva).

    Viene visualizzata la pagina dei dettagli del file system, che mostra la policy in File system policy (Policy del file system).

    Inoltre, è possibile creare una policy del file system a livello di codice utilizzando AWS CloudFormation, i SDK di AWS oppure direttamente l'API di Amazon EFS. Per ulteriori informazioni sulla creazione di policy per i file system, consultare Creazioni di policy del file system nella Guida per l'utente di Amazon EFS.

Impostazione della crittografia dei dati in transito

Per impostare la crittografia dei dati in transito, si consiglia di scaricare l'Assistente per il montaggio di EFS su ogni client. L'Assistente per il montaggio è un'utilità open source fornita da AWS per semplificare l'utilizzo di EFS, inclusa l'impostazione della crittografia dei dati in transito. L'Assistente per il montaggio utilizza di default le opzioni di montaggio consigliate da EFS.

L'Assistente per il montaggio di EFS è supportato nelle seguenti distribuzioni Linux:

  • Amazon Linux 2017.09+

  • Amazon Linux 2+

  • Debian 9+

  • Fedora 28+

  • Red Hat Enterprise Linux / CentOS 7+

  • Ubuntu 16.04+

Per configurare la crittografia dei dati in transito:

  1. Installare l'Assistente per il montaggio di EFS:

    • Per Amazon Linux, usare il seguente comando:

      sudo yum install -y amazon-efs-utils
    • Per altre distribuzioni Linux, scaricare da GitHub e installare.

      Il pacchetto amazon-efs-utils installa automaticamente le seguenti dipendenze: client NFS (nfs-utils), Network relay (stunnel), OpenSSL e Python.

  2. Montare il file system:

    sudo mount -t efs -o tls file-system-id efs-mount-point
    • mount -t efs richiama l'Assistente per il montaggio di EFS.

    • Il montaggio utilizzando l'Assistente per il montaggio di EFS non supporta l'utilizzo del nome DNS del file system o dell'indirizzo IP di una destinazione di montaggio, utilizzare invece l'id del file system.

    • L'Assistente per il montaggio di EFS utilizza di default le opzioni di montaggio consigliate da AWS. Non è consigliabile sovrascrivere queste opzioni di montaggio di default, ma viene garantita la flessibilità necessaria per farlo qualora fosse necessario. Consigliamo di testare a fondo le eventuali alternative delle opzioni di montaggio per capire come queste modifiche influiscono sull'accesso e sulle prestazioni del file system.

    • La tabella seguente rappresenta le opzioni di montaggio di default utilizzate dall'Assistente per il montaggio di EFS.

      Opzione Descrizione
      nfsvers=4.1 La versione del protocollo NFS
      rsize=1048576 Il numero massimo di byte di dati che il client NFS è in grado di ricevere per ogni richiesta READ di rete.
      wsize=1048576 Il numero massimo di byte di dati che il client NFS è in grado di inviare per ogni richiesta WRITE di rete.
      hard Il comportamento di ripristino del client NFS dopo il timeout di una richiesta NFS, in modo che la richiesta NFS venga ritentata a tempo indeterminato fino alla risposta del server.
      timeo=600 Il valore di timeout utilizzato dal client NFS in attesa di una risposta prima di ripetere la richiesta NFS in decimi di secondo
      retrans=2 Il numero di volte che il client NFS ritenta una richiesta prima di eseguire un'ulteriore operazione di ripristino.
      noresvport Indica al client NFS di utilizzare una nuova porta sorgente TCP quando viene ristabilita una connessione di rete
    • Aggiungere la seguente riga a /etc/fstab per rimontare automaticamente il file system dopo ogni riavvio del sistema.

      file-system-id efs-mount-point efs _netdev, tls, iam 0 0

Utilizzo della crittografia dei dati in transito

Se la propria organizzazione è soggetta a policy aziendali o normative che richiedono la crittografia dei dati in transito, consigliamo di utilizzare la crittografia dei dati in transito su ogni client che accede al file system. Crittografia e decrittografia sono configurate a livello di connessione e aggiungono un ulteriore livello di sicurezza.

Il montaggio del file system utilizzando l'Assistente per il montaggio di EFS configura e mantiene un tunnel TLS 1.2 tra il client e Amazon EFS e instrada tutto il traffico NFS su questo tunnel crittografato. Il certificato utilizzato per stabilire la connessione TLS crittografata è firmato dalla Amazon Certificate Authority (CA) e considerato affidabile dalla maggior parte delle distribuzioni Linux moderne. L'Assistente per il montaggio di EFS genera anche un processo watchdog per monitorare tutti i tunnel sicuri su ciascun file system e garantisce che siano in esecuzione.

Dopo aver utilizzato l'Assistente per il montaggio di EFS per stabilire connessioni crittografate ad Amazon EFS, non sono richiesti ulteriori input o configurazioni da parte dell'utente. La crittografia è trasparente per le connessioni degli utenti e le applicazioni che accedono al file system.

Dopo aver montato e stabilito una connessione crittografata a un file system EFS utilizzando l'Assistente per il montaggio di EFS, l'output di un comando mount mostra che il file system è montato e che è stato creato un tunnel crittografato utilizzando localhost (127.0.0.1) come relay di rete. Vedere il seguente output di esempio.

127.0.0.1:/ on efs-mount-point type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20059,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)

Per mappare un efs-mount-point su un file system EFS, interrogare il file mount.log in /var/log/amazon/efs e trovare l'ultima operazione di montaggio eseguita correttamente. Questo può essere fatto usando il seguente semplice comando grep.

grep -E "Successfully mounted.*efs-mount-point" /var/log/amazon/efs/mount.log | tail -1

L'output di questo comando grep restituirà il nome DNS del file system EFS montato. Vedere qui di seguito un output di esempio.

2018-03-15 07:03:42,363 - INFO - Successfully mounted file-system-id.efs.region.amazonaws.com at efs-mount-point