View a markdown version of this page

Configurare lo storage da utilizzare con AWS Transfer Family server - AWS Transfer Family

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

Configurare lo storage da utilizzare con AWS Transfer Family server

Questo argomento descrive le opzioni di archiviazione che è possibile utilizzare con AWS Transfer Family. Puoi utilizzare Amazon S3 o Amazon EFS come storage per i tuoi server Transfer Family.

Configura un bucket Amazon S3

AWS Transfer Family accede al tuo bucket Amazon S3 per soddisfare le richieste di trasferimento degli utenti, quindi devi fornire un bucket Amazon S3 come parte della configurazione del server abilitato al protocollo di trasferimento file. Puoi utilizzare un bucket esistente o crearne uno nuovo.

Nota

Non è necessario utilizzare un server e un bucket Amazon S3 che si trovano nella stessa AWS regione, ma consigliamo questa procedura come best practice.

Quando configuri i tuoi utenti, assegni a ciascuno un ruolo IAM. Questo ruolo determina il livello di accesso di cui dispongono al tuo bucket Amazon S3.

Per informazioni sulla creazione di un nuovo bucket, vedi Come si crea un bucket S3? nella Guida per l'utente di Amazon Simple Storage Service.

Nota

Puoi utilizzare Amazon S3 Object Lock per evitare che gli oggetti vengano sovrascritti per un periodo di tempo fisso o indefinitamente. Funziona allo stesso modo con Transfer Family e con altri servizi. Se un oggetto esiste ed è protetto, non è consentito scrivere su quel file o eliminarlo. Per maggiori dettagli su Amazon S3 Object Lock, consulta Using Amazon S3 Object Lock nella Amazon Simple Storage Service User Guide.

Punti di accesso Amazon S3

AWS Transfer Family supporta Amazon S3 Access Points, una funzionalità di Amazon S3 che consente di gestire facilmente l'accesso granulare ai set di dati condivisi. Puoi utilizzare gli alias S3 Access Point ovunque utilizzi il nome di un bucket S3. Puoi creare centinaia di punti di accesso in Amazon S3 per utenti che dispongono di autorizzazioni diverse per accedere ai dati condivisi in un bucket Amazon S3.

Ad esempio, puoi utilizzare i punti di accesso per consentire a tre diversi team di accedere allo stesso set di dati condiviso in cui un team può leggere i dati da S3, un secondo team può scrivere dati su S3 e il terzo team può leggere, scrivere ed eliminare dati da S3. Per implementare un controllo granulare degli accessi come menzionato sopra, puoi creare un punto di accesso S3 che contenga una policy che dia accesso asimmetrico a diversi team. Puoi utilizzare gli access point S3 con il tuo server Transfer Family per ottenere un controllo degli accessi granulare, senza creare una complessa policy S3 bucket che abbracci centinaia di casi d'uso. Per saperne di più su come utilizzare gli access point S3 con un server Transfer Family, consulta il post sul blog Enhance data access control with and Amazon S3. AWS Transfer Family

Nota

AWS Transfer Family attualmente non supporta gli access point Amazon S3 Multi-Region .

Comportamento di Amazon S3 HeadObject

Nota

Quando crei o aggiorni un server Transfer Family, puoi ottimizzare le prestazioni delle tue directory Amazon S3, eliminando così le chiamate. HeadObject

In Amazon S3 bucket e oggetti sono le risorse primarie e gli oggetti sono archiviati nei bucket. Amazon S3 può simulare un file system gerarchico, ma a volte può comportarsi diversamente rispetto a un tipico file system. Ad esempio, le directory non sono un concetto di prima classe in Amazon S3, ma si basano invece su chiavi oggetto. AWS Transfer Family deduce il percorso di una directory dividendo la chiave di un oggetto con il carattere barra (/), trattando l'ultimo elemento come nome del file, quindi raggruppando i nomi di file che hanno lo stesso prefisso nello stesso percorso. Zero-byte gli oggetti vengono creati per rappresentare il percorso di una cartella quando si crea una directory vuota utilizzando mkdir o utilizzando la console Amazon S3. La chiave di questi oggetti termina con una barra finale in avanti. Questi oggetti a zero byte sono descritti in Organizzazione degli oggetti nella console Amazon S3 utilizzando le cartelle nella Amazon S3 User Guide.

Quando esegui un ls comando e alcuni risultati sono oggetti a byte Amazon S3 (questi oggetti hanno chiavi che terminano con una barra in avanti), Transfer Family invia una HeadObject richiesta per ciascuno di questi oggetti (consulta il riferimento alle API di Amazon Simple Storage Service per i HeadObject dettagli). Ciò può causare i seguenti problemi quando si utilizza Amazon S3 come storage con Transfer Family.

Concedi la possibilità di scrivere ed elencare solo i file

In alcuni casi, potresti voler offrire solo l'accesso in scrittura ai tuoi oggetti Amazon S3. Ad esempio, potresti voler fornire l'accesso per scrivere (o caricare) ed elencare oggetti in un bucket, ma non per leggere (scaricare) oggetti. Per eseguire ls mkdir comandi utilizzando client per il trasferimento di file, devi disporre di Amazon S3 ListObjects e PutObject delle autorizzazioni. Tuttavia, quando Transfer Family deve effettuare una HeadObject chiamata per scrivere o elencare i file, la chiamata ha esito negativo e viene visualizzato un errore di accesso negato, poiché questa chiamata richiede l'GetObjectautorizzazione.

Nota

Quando crei o aggiorni un server Transfer Family, puoi ottimizzare le prestazioni delle tue directory Amazon S3, eliminando HeadObject così le chiamate.

In questo caso, puoi concedere l'accesso aggiungendo una condizione di policy AWS Identity and Access Management (IAM) che aggiunge l'GetObjectautorizzazione solo per gli oggetti che terminano con una barra (). / Questa condizione impedisce GetObject le chiamate ai file (in modo che non possano essere letti), ma consente all'utente di elencare e scorrere le cartelle. La seguente policy di esempio offre solo l'accesso in scrittura ed elenco ai tuoi bucket Amazon S3. Per utilizzare questa policy, sostituiscila amzn-s3-demo-bucket con il nome del tuo bucket.

Nota

Per risolvere il comportamento di caricamento di WinSCP, assicurati di aggiungere la "arn:aws:s3:::amzn-s3-demo-bucket/*.filepart" riga elencata nella seguente politica di esempio. Questa riga garantisce la corretta gestione degli oggetti .filepart per prevenire errori.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListing", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Sid": "AllowReadWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "DenyIfNotFolder", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "NotResource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*/", "arn:aws:s3:::amzn-s3-demo-bucket/*.filepart" ] } ] }
Nota

Questa politica non consente agli utenti di aggiungere file. In altre parole, un utente a cui viene assegnato questo criterio non può aprire i file per aggiungervi contenuti o modificarli. Inoltre, se il tuo caso d'uso richiede una HeadObject chiamata prima di caricare un file, questa politica non funzionerà per te.

Un numero elevato di oggetti a zero byte che causano problemi di latenza

Se i tuoi bucket Amazon S3 contengono un numero elevato di questi oggetti a zero byte, Transfer Family emette molte chiamate, il che può causare ritardi nell'HeadObjectelaborazione. La soluzione consigliata per questo problema è abilitare Optimized Directories per ridurre la latenza.

Ad esempio, supponiamo di accedere alla cartella home e di avere 10.000 sottodirectory. In altre parole, il tuo bucket Amazon S3 contiene 10.000 cartelle. In questo scenario, se si esegue il comando ls (list), l'operazione di elenco richiede dai sei agli otto minuti. Tuttavia, se ottimizzate le directory, questa operazione richiede solo pochi secondi. Questa opzione viene impostata nella schermata di configurazione dei dettagli aggiuntivi durante la procedura di creazione o aggiornamento del server. Queste procedure sono descritte in dettaglio nell'Configurazione di un endpoint server SFTP, FTPS o FTPargomento.

Nota

I client GUI possono emettere un ls comando al di fuori del controllo dell'utente, quindi è importante abilitare questa impostazione se possibile.

Se non ottimizzate o non potete ottimizzare le vostre directory, una soluzione alternativa a questo problema è eliminare tutti gli oggetti a zero byte. Tenere presente quanto segue:

  • Le directory vuote non esisteranno più. Le directory esistono solo perché i loro nomi sono nella chiave di un oggetto.

  • Non impedisce a qualcuno di chiamare mkdir e rompere di nuovo le cose. È possibile mitigare questo problema creando una politica che impedisca la creazione di directory.

  • Alcuni scenari utilizzano questi oggetti a 0 byte. Ad esempio, hai una struttura come/inboxes/customer1000e la cartella della posta in arrivo viene pulita ogni giorno.

Infine, un'altra soluzione possibile è limitare il numero di oggetti visibili tramite una condizione politica per ridurre il numero di HeadObject chiamate. Affinché questa sia una soluzione praticabile, devi accettare che potresti essere in grado di visualizzare solo un set limitato di tutte le tue sottodirectory.

Configura un file system Amazon EFS

AWS Transfer Family accede ad Amazon Elastic File System (Amazon EFS) per soddisfare le richieste di trasferimento dei tuoi utenti. Quindi devi fornire un file system Amazon EFS come parte della configurazione del tuo server abilitato al protocollo di trasferimento file. Puoi utilizzare un file system esistente oppure crearne uno nuovo.

Tenere presente quanto segue:

  • Quando utilizzi un server Transfer Family e un file system Amazon EFS, il server e il file system devono essere nello stesso file Regione AWS.

  • Il server e il file system non devono necessariamente trovarsi nello stesso account. Se il server e il file system non si trovano nello stesso account, la politica del file system deve concedere l'autorizzazione esplicita al ruolo utente.

    Per informazioni su come configurare più account, vedere Gestione degli AWS account nell'organizzazione nella Guida per l'AWS Organizations utente.

  • Quando configuri i tuoi utenti, assegni a ciascuno un ruolo IAM. Questo ruolo determina il livello di accesso di cui dispongono al tuo file system Amazon EFS.

  • Per informazioni dettagliate sul montaggio di un file system Amazon EFS, consulta Montaggio dei file system Amazon EFS.

Per maggiori dettagli su come AWS Transfer Family funzionano insieme Amazon EFS, consulta Using AWS Transfer Family to access files in your Amazon EFS file system nella Amazon Elastic File System User Guide.

Proprietà dei file di Amazon EFS

Amazon EFS utilizza il modello di autorizzazione dei file Portable Operating System Interface (POSIX) per rappresentare la proprietà dei file.

In POSIX, gli utenti del sistema sono classificati in tre classi di autorizzazione distinte: quando consenti a un utente di accedere ai file archiviati in un file system Amazon EFS utilizzando AWS Transfer Family, devi assegnare loro un «profilo POSIX». Questo profilo viene utilizzato per determinare il loro accesso a file e directory nel file system Amazon EFS.

  • Utente (u): proprietario del file o della directory. Di solito, il creatore di un file o di una directory è anche il proprietario.

  • Gruppo (g): insieme di utenti che necessitano di un accesso identico ai file e alle directory che condividono.

  • Altri (o): tutti gli altri utenti che hanno accesso al sistema ad eccezione del proprietario e dei membri del gruppo. Questa classe di autorizzazione viene anche definita «Pubblica».

Nel modello di autorizzazione POSIX, ogni oggetto del file system (file, directory, collegamenti simbolici, named pipe e socket) è associato ai tre set di autorizzazioni menzionati in precedenza. Agli oggetti Amazon EFS è associata una modalità Unix-style . Questo valore di modalità definisce le autorizzazioni per l'esecuzione di azioni su quell'oggetto.

Inoltre, sui Unix-style sistemi, utenti e gruppi sono mappati su identificatori numerici, che Amazon EFS utilizza per rappresentare la proprietà dei file. Per Amazon EFS, gli oggetti sono di proprietà di un singolo proprietario e di un singolo gruppo. Amazon EFS utilizza questi ID numerici per controllare le autorizzazioni quando un utente cerca di accedere a un oggetto del file system.

Configura gli utenti di Amazon EFS per Transfer Family

Prima di configurare gli utenti di Amazon EFS, puoi effettuare una delle seguenti operazioni:

Nota

I server Transfer Family non supportano i punti di accesso Amazon EFS per impostare le autorizzazioni POSIX. I profili POSIX degli utenti di Transfer Family (descritti nella sezione precedente) offrono la possibilità di impostare le autorizzazioni POSIX. Queste autorizzazioni sono impostate a livello utente, per un accesso granulare, in base a UID, GID e GID secondari.

Configura gli utenti di Transfer Family su Amazon EFS

Transfer Family mappa gli utenti nelle directory UID/GID e nelle directory specificate. Se UID/GID/directories non esistono già in EFS, è necessario crearli prima di assegnarli in Transfer a un utente. I dettagli per la creazione di utenti Amazon EFS sono descritti in Lavorare con utenti, gruppi e autorizzazioni a livello di Network File System (NFS) nella Amazon Elastic File System User Guide.

Passaggi per configurare gli utenti di Amazon EFS in Transfer Family
  1. Mappa l'UID e il GID EFS per il tuo utente in Transfer Family utilizzando i PosixProfile campi.

  2. Se si desidera che l'utente inizi in una cartella specifica al momento dell'accesso, è possibile specificare la directory EFS nel HomeDirectory campo.

È possibile automatizzare il processo utilizzando una CloudWatch regola e una funzione Lambda. Per un esempio di funzione Lambda che interagisce con EFS, consulta Using Amazon EFS for AWS Lambda in your serverless applications.

Inoltre, puoi configurare le directory logiche per gli utenti di Transfer Family. Per i dettagli, consulta la Configurazione di directory logiche per Amazon EFS sezione nell'Utilizzo di directory logiche per semplificare le strutture di directory Transfer Familyargomento.

Crea un utente root di Amazon EFS

Se la tua organizzazione è a tuo agio nell'abilitare l'accesso come utente root tramite SFTP/FTPS la configurazione dei tuoi utenti, puoi creare un utente con UID e GID pari a 0 (utente root), quindi utilizzare quell'utente root per creare cartelle e assegnare proprietari di ID POSIX al resto degli utenti. Il vantaggio di questa opzione è che non è necessario montare il file system Amazon EFS.

Esegui i passaggi descritti in eAggiungere utenti gestiti dal servizio Amazon EFS, sia per l'ID utente che per l'ID di gruppo, inserisci 0 (zero).

Suggerimento

Non lasciare che questo account superutente esista più a lungo del necessario. Oppure, se mantieni l'account utente root, assicurati di mantenerlo ben protetto.

Comandi Amazon EFS supportati

I seguenti comandi sono supportati per Amazon EFS per AWS Transfer Family.

  • cd

  • ls/dir

  • pwd

  • put

  • get

  • rename

  • chown: solo root (ovvero gli utenti con uid=0) possono modificare la proprietà e le autorizzazioni di file e directory.

  • chmod: solo root può modificare la proprietà e le autorizzazioni di file e directory.

  • chgrp: supportato sia per root che per il proprietario del file che può modificare solo il gruppo di un file in modo che diventi uno dei suoi gruppi secondari.

  • ln -s/symlink

  • mkdir

  • rm/delete

  • rmdir

  • chmtime