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 policy 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 Amazon EFS, utilizzi le autorizzazioni dei file POSIX 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 ruolo IAM.

Nota

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

Per creare una policy di sessione, utilizza le seguenti variabili di policy nella tua policy IAM:

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

Importante

Non puoi utilizzare le variabili precedenti in Managed Policies. Né puoi usarle come variabili di policy in una definizione di ruolo IAM. Crei queste variabili in una policy IAM e le fornisci 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 utente IAM 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 anteriore (/) iniziale in modo che possa essere utilizzata come parte di un Amazon Resource Name (ARN) di S3 in un'istruzione. Resource

Nota

Se utilizzi directory logiche, ovvero quelle dell'utente, LOGICAL questi parametri di policy (HomeBucket, e) homeDirectoryType non sono supportati. HomeDirectory 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 della gestione dei ruoli e delle policy di IAM 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 Permissions for AssumeRole, AssumeRoleWith SAML e AssumeRoleWithWebIdentity nella IAM User Guide.

Nota

AWS Transfer Family memorizza il codice JSON della policy, anziché l'Amazon Resource Name (ARN) della policy. Pertanto, quando modifichi la policy nella console IAM, devi tornare alla AWS Transfer Family console e aggiornare gli utenti con i contenuti più recenti della policy. Puoi 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)"