Creazione di una politica di sessione per un bucket Amazon S3 - 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à.

Creazione di una politica di sessione per un bucket Amazon S3

Una policy di sessione è una politica AWS Identity and Access Management (IAM) che limita gli utenti a determinate porzioni di un bucket Amazon S3. valutando l'accesso in tempo reale.

Nota

Le policy di sessione vengono utilizzate solo con Amazon S3. Per AmazonEFS, usi le autorizzazioni relative ai POSIX file per limitare l'accesso.

Puoi utilizzare una policy di sessione quando devi concedere lo stesso accesso a un gruppo di utenti a una parte particolare del tuo bucket Amazon S3. Ad esempio, è possibile che un gruppo di utenti richieda l'accesso solo alla directory home. Quel gruppo di utenti condivide lo stesso IAM ruolo.

Nota

La lunghezza massima di una policy di sessione è di 2048 caratteri. Per maggiori dettagli, consulta il parametro Policy request per l'CreateUserazione nel APIriferimento.

Per creare una policy di sessione, utilizzate le seguenti variabili di policy nella vostra IAM policy:

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

Importante

Non è possibile utilizzare le variabili precedenti in Managed Policies. Né è possibile utilizzarle come variabili politiche in una definizione di IAM ruolo. Queste variabili vengono create in una IAM policy e le fornite direttamente durante la configurazione dell'utente. Inoltre, non è possibile utilizzare la ${aws:Username} variabile in questa politica di sessione. Questa variabile si riferisce a un nome IAM utente e non al nome utente richiesto da AWS Transfer Family.

Il codice seguente mostra un esempio di policy di sessione.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
Nota

L'esempio di policy precedente presuppone che le directory home degli utenti siano impostate in modo da includere una barra finale, a indicare che si tratta di una directory. Se, al contrario, imposti quella di un utente HomeDirectory senza la barra finale, dovresti includerla come parte della tua politica.

Nella policy di esempio precedente, prendete nota dell'uso dei parametri transfer:HomeFoldertransfer:HomeBucket, e transfer:HomeDirectory policy. Questi parametri sono impostati per HomeDirectory i parametri configurati per l'utente, come descritto in HomeDirectoryandImplementazione del metodo API Gateway. Questi parametri hanno le seguenti definizioni:

  • Il transfer:HomeBucket parametro viene sostituito con il primo componente diHomeDirectory.

  • Il transfer:HomeFolder parametro viene sostituito con le parti rimanenti del HomeDirectory parametro.

  • Al transfer:HomeDirectory parametro è stata rimossa la barra principale (/) in modo che possa essere utilizzata come parte di un Amazon Resource Name (ARN) di S3 in un'Resourceistruzione.

Nota

Se utilizzi directory logiche, ovvero quelle dell'utente, LOGICAL questi parametri di homeDirectoryType policy (HomeBucket, HomeDirectory e) non sono supportati. HomeFolder

Ad esempio, supponiamo che il HomeDirectory parametro configurato per l'utente Transfer Family sia/home/bob/amazon/stuff/.

  • transfer:HomeBucketè impostato su/home.

  • transfer:HomeFolderè impostato su/bob/amazon/stuff/.

  • transfer:HomeDirectorydiventahome/bob/amazon/stuff/.

Il primo "Sid" consente all'utente di elencare tutte le directory a partire da/home/bob/amazon/stuff/.

Il secondo "Sid" limita l'getaccesso dell'utente put e quello dello stesso percorso,. /home/bob/amazon/stuff/

Con la politica precedente in vigore, quando un utente effettua il login, può accedere solo agli oggetti nella propria home directory. Al momento della connessione, AWS Transfer Family sostituisce queste variabili con i valori appropriati per l'utente. Questo rende più semplice applicare gli stessi documenti di policy a più utenti. Questo approccio riduce il sovraccarico di gestione dei IAM ruoli e delle policy per la gestione dell'accesso degli utenti al bucket Amazon S3.

Puoi anche utilizzare una policy di sessione per personalizzare l'accesso per ciascuno dei tuoi utenti in base ai tuoi requisiti aziendali. Per ulteriori informazioni, consulta Autorizzazioni per AssumeRole e AssumeRoleWithWebIdentity nella Guida per l'IAMutente. AssumeRoleWith SAML

Nota

AWS Transfer Family memorizza la policyJSON, anziché l'Amazon Resource Name (ARN) della policy. Quindi, quando modifichi la policy nella IAM console, devi tornare alla AWS Transfer Family console e aggiornare gli utenti con i contenuti più recenti della policy. È possibile aggiornare l'utente nella scheda Informazioni sulla politica nella sezione Configurazione utente.

Se si utilizza il AWS CLI, è possibile utilizzare il seguente comando per aggiornare la politica.

aws transfer update-user --server-id server --user-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"