Configura lo storage da utilizzare con AWS Transfer Family - 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à.

Configura lo storage da utilizzare con AWS Transfer Family

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

Configurazione di 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 di loro un ruolo IAM. Questo ruolo determina il livello di accesso che hanno 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 usare Amazon S3 Object Lock per impedire che gli oggetti vengano sovrascritti per un periodo di tempo fisso o indefinitamente. Funziona allo stesso modo con Transfer Family come con altri servizi. Se un oggetto esiste ed è protetto, non è consentito scriverlo o eliminarlo. Per ulteriori 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 di S3 Access Point ovunque utilizzi un nome di 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 team diversi 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 indicato sopra, puoi creare un punto di accesso S3 che contenga una policy che fornisca un accesso asimmetrico a diversi team. Puoi utilizzare gli access point S3 con il tuo server Transfer Family per ottenere un controllo granulare degli accessi, senza creare una complessa policy sui bucket S3 che copra centinaia di casi d'uso. Per ulteriori informazioni su come utilizzare gli access point S3 con un server Transfer Family, consulta il post di blog Enhance data access control with AWS Transfer Family and Amazon S3.

Nota

AWS Transfer Family attualmente non supporta punti di accesso multiregionali Amazon S3.

Comportamento di Amazon S3 HeadObject

Nota

Quando crei o aggiorni un server Transfer Family, puoi ottimizzare le prestazioni per le tue directory Amazon S3, eliminando 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 in modo diverso rispetto a un file system tipico. 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. Gli oggetti a byte zero vengono creati per rappresentare il percorso di una cartella quando crei una directory vuota utilizzando mkdir o utilizzando la console Amazon S3. La chiave per questi oggetti termina con una barra finale. Questi oggetti a zero byte sono descritti in Organizing objects in the Amazon S3 console using folders nella Amazon S3 User Guide.

Quando esegui un ls comando e alcuni risultati sono oggetti Amazon S3 a zero byte (questi oggetti hanno chiavi che terminano con il carattere barra), Transfer Family invia una HeadObject richiesta per ciascuno di questi oggetti (consulta il riferimento all'API di Amazon HeadObjectSimple Storage Service per i 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 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 mkdir comandi utilizzando ls i client di trasferimento file, devi disporre di Amazon S3 ListObjects e PutObject delle autorizzazioni. Tuttavia, quando Transfer Family deve effettuare una HeadObject chiamata per scrivere o elencare file, la chiamata fallisce con un errore di Accesso negato, poiché questa chiamata richiede l'GetObjectautorizzazione.

Nota

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

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 attraversare le cartelle. La seguente policy di esempio offre solo l'accesso in scrittura ed elenco ai bucket Amazon S3. Per utilizzare questa policy, sostituiscila DOC-EXAMPLE-BUCKET con il nome del tuo bucket.

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

Questa politica non consente agli utenti di aggiungere file. In altre parole, un utente a cui viene assegnata questa politica non può aprire file per aggiungervi contenuto 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 gran numero di oggetti a zero byte che causano problemi di latenza

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

Si supponga, ad esempio, di accedere alla propria home directory e di disporre di 10.000 sottodirectory. In altre parole, il tuo bucket Amazon S3 ha 10.000 cartelle. In questo scenario, se si esegue il comando ls (list), l'operazione list richiede dai sei agli otto minuti. Tuttavia, se si ottimizzano le directory, questa operazione richiede solo pochi secondi. È possibile impostare questa opzione nella schermata Configura 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 che sfugge al controllo dell'utente, quindi è importante abilitare questa impostazione, se possibile.

Se non riuscite o non riuscite a ottimizzare le vostre directory, una soluzione alternativa a questo problema consiste nell'eliminare tutti gli oggetti a zero byte. Tieni presente quanto segue:

  • Le cartelle 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 nuovamente le cose. È possibile mitigare questo problema creando una politica che impedisca la creazione di directory.

  • Alcuni scenari utilizzano questi oggetti da 0 byte. Ad esempio, hai una struttura come /inboxes/customer1000 e la directory della posta in arrivo viene pulita ogni giorno.

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

Configurazione di un file system Amazon EFS

AWS Transfer Family accede ad Amazon Elastic File System (Amazon EFS) per soddisfare le richieste di trasferimento degli utenti. Pertanto, è necessario fornire un file system Amazon EFS come parte della configurazione del server abilitato al protocollo di trasferimento file. Puoi utilizzare un file system esistente o crearne uno nuovo.

Tieni presente quanto segue:

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

  • Non è necessario che il server e il file system appartengano allo stesso account. Se il server e il file system non si trovano nello stesso account, la politica del file system deve fornire un'autorizzazione esplicita al ruolo utente.

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

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

  • Per dettagli sul montaggio di un file system Amazon EFS, consulta Mounting Amazon EFS file system.

Per ulteriori dettagli sulla collaborazione con AWS Transfer Family 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 Amazon EFS

Amazon EFS utilizza il modello di autorizzazione dei file POSIX (Portable Operating System Interface) 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 assegnargli 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 ne è 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 chiamata «Pubblica».

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

Inoltre, sui sistemi in stile Unix, utenti e i gruppi sono mappati a identificatori numerici, che sono impiegati da Amazon EFS 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.

Configurazione degli utenti Amazon EFS per Transfer Family

Prima di configurare gli utenti Amazon EFS, puoi eseguire 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 i permessi POSIX. Queste autorizzazioni sono impostate a livello di utente, per un accesso granulare, in base a UID, GID e GID secondari.

Configurazione degli utenti Transfer Family su Amazon EFS

Transfer Family mappa gli utenti all'UID/GID e alle directory specificate. Se gli UID/GID/directory 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 Amazon EFS in Transfer Family
  1. Mappa l'UID e il GID EFS per il tuo utente in Transfer Family utilizzando i PosixProfilecampi.

  2. Se desideri che l'utente inizi in una cartella specifica al momento dell'accesso, puoi specificare la directory EFS sotto il HomeDirectorycampo.

È 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 application.

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 dell'Utilizzo di directory logiche per semplificare le strutture di directory Transfer Familyargomento.

Crea un utente root Amazon EFS

Se la tua organizzazione ritiene opportuno abilitare l'accesso degli utenti root tramite SFTP/FTPS per la configurazione degli utenti, puoi creare un utente con UID e GID pari a 0 (utente root), quindi utilizzare quell'utente root per creare cartelle e assegnare i proprietari degli ID POSIX agli altri 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 del gruppo, inserisci 0 (zero).

Suggerimento

Non lasciate 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 for AWS Transfer Family.

  • cd

  • ls/dir

  • pwd

  • put

  • get

  • rename

  • chown: Solo i 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ò solo modificare il gruppo di file in uno dei propri gruppi secondari.

  • ln -s/symlink

  • mkdir

  • rm/delete

  • rmdir

  • chmtime