

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Trasferimenti sicuri di file utilizzando Transfer Family, Amazon Cognito e GuardDuty
<a name="secure-file-transfers"></a>

*Manoj Kumar, Amazon Web Services*

## Riepilogo
<a name="secure-file-transfers-summary"></a>

Questa soluzione consente di trasferire file in modo sicuro tramite un server SFTP utilizzando. AWS Transfer Family Include funzionalità di scansione antimalware automatizzata tramite [Malware Protection for S3](https://docs.aws.amazon.com/guardduty/latest/ug/gdu-malware-protection-s3.html), una funzionalità di Amazon GuardDuty. È progettato per le organizzazioni che devono scambiare file in modo sicuro con parti esterne e verificare che tutti i file in arrivo vengano scansionati alla ricerca di malware prima di essere elaborati.

I modelli Infrastructure as Code (IaC) forniti con questo modello consentono di implementare quanto segue:
+ Un server SFTP sicuro con autenticazione Amazon Cognito tramite AWS Lambda
+ Bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) per i caricamenti e i file in entrata sottoposti a scansione alla ricerca di malware
+ Un'architettura basata su cloud privato virtuale (VPC) con sottoreti pubbliche e private su più zone di disponibilità
+ Controllo degli accessi basato su IP per il traffico in ingresso e in uscita, con elenchi di autorizzazioni e negazioni configurabili
+ Scansione antimalware automatizzata tramite GuardDuty
+ Routing intelligente dei file basato sui risultati della scansione tramite Amazon EventBridge e Lambda
+ Notifiche in tempo reale per incidenti di sicurezza tramite Amazon Simple Notification Service (Amazon SNS)
+ Crittografia per bucket Amazon S3 e variabili di ambiente Lambda tramite () AWS Key Management Service AWS KMS
+ Endpoint Amazon Virtual Private Cloud (Amazon VPC) per l'accesso senza esposizione a Internet
+ Registrazione completa tramite l'integrazione con Amazon CloudWatch 

## Prerequisiti e limitazioni
<a name="secure-file-transfers-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Autorizzazioni in AWS Identity and Access Management (IAM) per eseguire le azioni descritte in questo modello, inclusa la distribuzione di AWS CloudFormation modelli che forniscono ruoli IAM
+ GuardDuty, [abilitato](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_settingup.html) nell'account di destinazione
+ Protezione da malware per S3, [abilitata](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-get-started-independent.html) nell'account di destinazione
+ Le quote di servizio consentono di creare quanto segue nell'account di destinazione:
  + Un VPC
  + Una sottorete privata
  + Una sottorete pubblica
  + Tre indirizzi IP elastici
  + Limiti di concorrenza Lambda sufficienti
+ Un indirizzo e-mail valido per le notifiche relative alla sicurezza
+ (Facoltativo) Un elenco di indirizzi IP o intervalli CIDR che desideri consentire o negare
+ [(Facoltativo) AWS Command Line Interface (AWS CLI), [installato e configurato](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Limitazioni**
+ La protezione da malware per S3 è soggetta a quote, come la dimensione massima dei file. Per ulteriori informazioni, consulta [Quotas in Malware Protection for S3](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-quotas-guardduty.html) e [Supportabilità delle funzionalità di Amazon S3](https://docs.aws.amazon.com/guardduty/latest/ug/supported-s3-features-malware-protection-s3.html) nella documentazione. GuardDuty 
+ Questa soluzione utilizza solo l'autenticazione con nome utente e password di Amazon Cognito. I metodi di autenticazione basati su certificati o altri metodi di autenticazione non sono supportati in questo modello. Per impostazione predefinita, questa soluzione non configura l'autenticazione a più fattori (MFA).
+ La soluzione implementa il controllo degli accessi basato su IP solo tramite gruppi di sicurezza.

## Architecture
<a name="secure-file-transfers-architecture"></a>

Il seguente diagramma di architettura mostra le risorse distribuite secondo questo schema. Questa soluzione utilizza Amazon Cognito per l'autenticazione e l'autorizzazione degli utenti. Per il caricamento dei file viene utilizzato un server AWS Transfer Family SFTP. I file vengono archiviati in bucket Amazon S3 e Amazon GuardDuty esegue la scansione dei file alla ricerca di malware. Amazon SNS invia una notifica e-mail se viene rilevato un malware.

![Utilizzo GuardDuty di Cognito per trasferire in modo sicuro i file nei bucket Amazon S3.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/39d98ebe-2844-4ccd-a497-9b796b7da5e8/images/05567010-e189-40e7-acab-74e77c4f8525.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente si connette all'endpoint del server SFTP in. AWS Transfer Family Questo avvia il processo di autenticazione con il pool di utenti di Amazon Cognito.

1. Una funzione Lambda avvia il processo di autenticazione e autorizzazione e convalida le credenziali dell'utente con Amazon Cognito.

1. La funzione Lambda restituisce il `UploadBucket` bucket Amazon S3 come directory home. L'utente assume il ruolo IAM per il server Transfer Family e la funzione Lambda notifica all'utente che è stato autenticato correttamente.

1. L'utente carica un file sul server SFTP Transfer Family. Il file viene archiviato nel `UploadBucket` bucket Amazon S3.

1. GuardDuty esegue la scansione del file alla ricerca di malware. I potenziali risultati della scansione sono`NO_THREATS_FOUND`,`THREATS_FOUND`, `UNSUPPORTED``ACCESS_DENIED`, e`FAILED`. Per risultati di esempio, consulta il [risultato della scansione degli oggetti S3](https://docs.aws.amazon.com/guardduty/latest/ug/monitor-with-eventbridge-s3-malware-protection.html#s3-object-scan-status-malware-protection-s3-ev) nella GuardDuty documentazione.

1. Una EventBridge regola rileva l'evento del risultato della scansione.

1. EventBridge avvia la funzione Lambda per il routing dei file.

1. La funzione Lambda elabora l'evento e filtra i file in base ai risultati della scansione come segue:
   + I file con un risultato di `NO_THREATS_FOUND` scansione vengono inviati al bucket `CleanBucket` Amazon S3.
   + I file con un risultato di `THREATS_FOUND` scansione vengono inviati al bucket `MalwareBucket` Amazon S3.
   + I file con un risultato di `UNSUPPORTED` scansione vengono inviati al bucket `ErrorBucket` Amazon S3.
   + I file con un risultato di `ACCESS_DENIED` scansione vengono inviati al bucket `ErrorBucket` Amazon S3.
   + I file con un risultato di `FAILED` scansione vengono inviati al bucket `ErrorBucket` Amazon S3.

   Tutti i file sono crittografati con un. AWS KMS key

1. Se un file è stato inviato al bucket `MalwareBucket` Amazon S3, la funzione Lambda avvia un argomento Amazon SNS. L'argomento Amazon SNS invia una notifica e-mail a un indirizzo e-mail che configuri.

## Tools (Strumenti)
<a name="secure-file-transfers-tools"></a>

**Servizi AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, AWS Lambda funzioni, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altro modo. Account AWS
+ [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) è un servizio di monitoraggio continuo della sicurezza che analizza ed elabora i log per identificare attività impreviste e potenzialmente non autorizzate nel tuo ambiente. AWS 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)ti aiuta a trasferire file da e verso i servizi di AWS storage tramite i protocolli SFTP, FTPS o FTP.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.

**Repository di codice**

Il codice di questo pattern è disponibile nel repository GitHub [AWS Transfer Family and GuardDuty Malware Scanning Solution](https://github.com/aws-samples/sample-secure-transfer-family-code).

## Best practice
<a name="secure-file-transfers-best-practices"></a>

Il CloudFormation modello fornito è progettato per incorporare molte AWS best practice, come le autorizzazioni con privilegi minimi per i ruoli e le policy IAM, la crittografia a riposo e in transito e la rotazione automatica delle chiavi. Per gli ambienti di produzione, valuta la possibilità di implementare i seguenti consigli aggiuntivi:
+ Abilita l'[autenticazione a più fattori per gli utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html) di Amazon Cognito
+ Implementa [AWS Shield](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html)la protezione da denial of service (S) DDo distribuita
+ Configurazione [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)per il monitoraggio continuo della conformità
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)Implementa per una registrazione completa delle API
+ Configura [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) per il rilevamento delle minacce oltre alla scansione dei malware
+ Implementa [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub-v2.html)per la gestione centralizzata della sicurezza
+ Utilizzalo [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)per la gestione delle credenziali
+ Implementa il monitoraggio del traffico di rete con [Traffic Mirroring](https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-traffic-mirroring.html)
+ Configura [Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html) per il rilevamento e la protezione dei dati sensibili in Amazon S3
+ Implementa valutazioni di sicurezza e test di penetrazione regolari
+ Stabilisci un piano formale di risposta agli incidenti
+ Implementa l'applicazione di patch automatizzate per tutti i componenti
+ Conduci corsi di formazione periodici sulla sicurezza per gli amministratori
+ Configurazione [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)per la gestione della sicurezza su più account

## Epiche
<a name="secure-file-transfers-epics"></a>

### Implementa le risorse
<a name="deploy-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clonare il repository. | Immettete il seguente comando per clonare l'AWS Transfer Family archivio della [soluzione di scansione GuardDuty antimalware](https://github.com/aws-samples/sample-secure-transfer-family-code) sulla workstation locale:<pre>git clone https://github.com/aws-samples/sample-secure-transfer-family-code.git</pre> | Sviluppatore di app, ingegnere DevOps  | 
| Crea lo CloudFormation stack. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Amministratore del cloud, ingegnere DevOps  | 

### Configura le risorse
<a name="configure-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Attiva la protezione da malware. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Amministratore cloud, amministratore AWS | 
| Aggiungi utenti al pool di utenti. | Aggiungi uno o più utenti al pool di utenti di Amazon Cognito. Per istruzioni, consulta [Gestire gli utenti nel tuo pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-users.html) nella documentazione di Amazon Cognito. | Amministratore cloud, amministratore AWS | 

### Prova il server SFTP
<a name="test-the-sftp-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Connect all'endpoint del server SFTP. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Sviluppatore di app, amministratore cloud, architetto cloud, DevOps ingegnere | 

## risoluzione dei problemi
<a name="secure-file-transfers-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| L'autenticazione dell'utente non riesce | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Per un elenco di AWS CLI comandi che possono aiutarti a eseguire queste procedure di risoluzione dei problemi, vedi *Comandi utili per la risoluzione dei problemi* nella sezione [Informazioni aggiuntive](#secure-file-transfers-additional). | 
| L'autenticazione SFTP non riesce | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Per un elenco di AWS CLI comandi che possono aiutarti a eseguire questi passaggi di risoluzione dei problemi, consulta *Comandi utili per la risoluzione dei problemi* nella sezione [Informazioni aggiuntive](#secure-file-transfers-additional). | 
| Accesso al caricamento dei file negato | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Per un elenco di AWS CLI comandi che possono aiutarti a eseguire questi passaggi di risoluzione dei problemi, consulta *Comandi utili per la risoluzione dei problemi* nella sezione [Informazioni aggiuntive](#secure-file-transfers-additional). | 
| Nessuna scansione antimalware | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Per un elenco di AWS CLI comandi che possono aiutarti a eseguire questi passaggi di risoluzione dei problemi, consulta *Comandi utili per la risoluzione dei problemi* nella sezione [Informazioni aggiuntive](#secure-file-transfers-additional). | 
| Errori della funzione Lambda | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Per un elenco di AWS CLI comandi che possono aiutarti a eseguire queste procedure di risoluzione dei problemi, vedi *Comandi utili per la risoluzione dei problemi* nella sezione [Informazioni aggiuntive](#secure-file-transfers-additional). | 

## Risorse correlate
<a name="secure-file-transfers-resources"></a>
+ [App web Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/web-app.html) (documentazione Transfer Family)

## Informazioni aggiuntive
<a name="secure-file-transfers-additional"></a>

**Comandi utili per la risoluzione dei problemi**

Controlla lo stato di uno CloudFormation stack:

```
aws cloudformation describe-stacks \
  --stack-name <STACK_NAME>
```

Elenca tutti gli utenti in un pool di utenti Amazon Cognito:

```
aws cognito-idp list-users \
  --user-pool-id <USER_POOL_ID>
```

Visualizza i log per le funzioni Lambda:

```
aws logs describe-log-groups \
  --log-group-name-prefix /aws/lambda/
```

Controlla lo stato di: GuardDuty

```
aws guardduty list-detectors
```

Controlla le regole del gruppo di sicurezza:

```
aws ec2 describe-security-groups \
  --group-ids <SECURITY_GROUP_ID> \
  --output table
```

Controlla lo stato del AWS Transfer Family server:

```
aws transfer describe-server \
  --server-id <SERVER_ID>
```

Elenca tutti i file in un bucket Amazon S3:

```
aws s3 ls s3://<BUCKET_NAME>/ \
  --recursive
```

Controlla lo stato di una EventBridge regola:

```
aws events describe-rule \
  --name <RULE_NAME>
```