

# Crittografia dei dati in transito
<a name="encryption-of-data-in-transit"></a>

 È 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](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-helper.html#mounting-IAM-option) 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](https://console.aws.amazon.com/efs).

1. Scegliere **File system**.

1. 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.

1. Scegliere **File system policy (Policy del file system)**, quindi scegliere **Edit (Modifica)**. Viene visualizzata la pagina Policy del file system.  
![](http://docs.aws.amazon.com/it_it/whitepapers/latest/efs-encrypted-file-systems/images/image8.jpeg)

   *Creare policy del file system *

1. 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)**.

1. 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.

1. 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.

1. 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](https://docs.aws.amazon.com/efs/latest/ug/create-file-system-policy.html) nella *Guida per l'utente di Amazon EFS*.

## Impostazione della crittografia dei dati in transito
<a name="setting-up-encryption-of-data-in-transit"></a>

 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.

1.  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.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/whitepapers/latest/efs-encrypted-file-systems/encryption-of-data-in-transit.html)
   +  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
<a name="using-encryption-of-data-in-transit"></a>

 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}}
```