Linee guida per le policy di accesso - Amazon Simple Storage Service

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

Linee guida per le policy di accesso

Amazon S3 supporta le policy basate su risorse e le policy utente per gestire l'accesso alle risorse Amazon S3. Per ulteriori informazioni, consulta Gestione dell'accesso alle risorse. Nelle policy basate su risorse sono comprese le policy di bucket nonché le liste di controllo accessi (ACL) del bucket e dell'oggetto. In questa sezione vengono descritti alcuni scenari specifici per l'utilizzo di policy di accesso basate su risorse al fine di gestire l'accesso alle risorse di Amazon S3.

Quando utilizzare una policy d'accesso basata su liste di controllo accessi (ACL) (per bucket e oggetti)

I bucket e gli oggetti dispongono di ACL associate che è possibile utilizzare per concedere autorizzazioni.

S3 Proprietà dell'oggetto è un'impostazione a livello di bucket Amazon S3 che è possibile utilizzare per controllare la proprietà degli oggetti caricati nel bucket e per disabilitare o abilitare le liste di controllo degli accessi (ACL). Per impostazione predefinita, Proprietà dell'oggetto è impostata su Proprietario del bucket applicato e tutte le liste di controllo degli accessi (ACL) sono disabilitate. Quando le ACL sono disabilitate, il proprietario del bucket dispone di tutti gli oggetti nel bucket e gestisce l'accesso ad essi in maniera esclusiva utilizzando policy di gestione dell'accesso.

La maggior parte degli attuali casi d'uso in Amazon S3 non richiede più l'uso delle ACL. È consigliabile mantenere le ACL disabilitate, tranne nelle circostanze in cui è necessario controllare individualmente l'accesso per ciascun oggetto. Con le ACL disabilitate, puoi utilizzare le policy per controllare l'accesso a tutti gli oggetti nel bucket, a prescindere da chi ha caricato gli oggetti nel bucket. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Importante

Se il bucket utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto S3, è necessario utilizzare le policy per concedere l'accesso al bucket e agli oggetti in esso contenuti. Con l'impostazione Proprietario del bucket applicato abilitata, le richieste per impostare liste di controllo degli accessi (ACL) e aggiornare le ACL non vanno a buon fine e restituiscono il codice di errore AccessControlListNotSupported. Le richieste di lettura delle ACL sono ancora supportate.

Quando utilizzare un'ACL a livello di oggetto

Di seguito sono riportati gli scenari di utilizzo delle ACL per gestire le autorizzazioni dell'oggetto.

Gli oggetti non appartengono al proprietario del bucket

Un'ACL di oggetto è l'unico modo per gestire l'accesso agli oggetti che non appartengono al proprietario del bucket. E il proprietario del bucket può Account AWS concedere un'altra autorizzazione per caricare oggetti. Account AWS che però non appartengono al proprietario del bucket. Chi ha creato Account AWS l'oggetto deve concedere le autorizzazioni utilizzando gli ACL degli oggetti.

Nota

Il proprietario di un bucket non può concedere autorizzazioni per gli oggetti che non sono di sua proprietà. Ad esempio, una policy di bucket che assegna autorizzazioni a livello di oggetto si applica solo agli oggetti appartenenti al proprietario del bucket. Tuttavia, il proprietario del bucket, che paga la fattura, può scrivere una policy di bucket per rifiutare l'accesso agli oggetti nel bucket, indipendentemente dall'utente a cui appartengono. Il proprietario del bucket può anche eliminare gli oggetti nel bucket.

È necessario gestire le autorizzazioni a livello di oggetto

Si supponga che le autorizzazioni varino in base all'oggetto e che sia necessario gestire le autorizzazioni a livello di oggetto. Puoi scrivere una singola istruzione della policy per concedere a un Account AWS l'autorizzazione di lettura su milioni di oggetti con un prefisso di nome di chiave specifico. Ad esempio, è possibile assegnare l'autorizzazione di lettura agli oggetti che hanno logs come prefisso del nome della chiave. Tuttavia, se le autorizzazioni di accesso variano in base all'oggetto, potrebbe non essere pratico assegnarle a singoli oggetti tramite policy di bucket. Inoltre, le dimensioni delle policy del bucket sono limitate a 20 KB.

In questo caso, utilizzare un'ACL di oggetto può rivelarsi una buona alternativa. È tuttavia necessario ricordare che anche le ACL di oggetto sono limitate a massimo 100 assegnazioni. Per ulteriori informazioni, consulta Panoramica delle liste di controllo accessi (ACL).

Le ACL di oggetto controllano le autorizzazioni solo a livello di oggetto

Per l'intero bucket è presente una singola policy di bucket, ma le ACL degli oggetti sono specificate per oggetto.

E Account AWS chi possiede un bucket può concedere un'altra Account AWS autorizzazione per gestire una politica di accesso. Fare ciò consentirà a tale account di modificare ogni elemento della policy. Per gestire meglio le autorizzazioni, si può scegliere di non attribuire un'autorizzazione così ampia, ma concedere all'altro account solo le autorizzazioni per operazioni di READ-ACP e WRITE-ACP su un sottoinsieme di oggetti. In questo modo, l'account può gestire le autorizzazioni solo su oggetti specifici aggiornando le singole ACL dell'oggetto.

Se si desidera utilizzare le ACL per gestire le autorizzazioni a livello di oggetto e si desidera anche possedere nuovi oggetti scritti nel bucket, è possibile applicare l'impostazione del proprietario del bucket preferito per Object Ownership. Un bucket con l'impostazione del proprietario del bucket preferito continua ad accettare e rispettare le ACL di bucket e oggetti. Con questa impostazione, nuovi oggetti scritti con l'ACL predefinita bucket-owner-full-control sarà automaticamente di proprietà del proprietario del bucket anziché dell'object writer. Tutti gli altri comportamenti ACL rimangono in vigore. Per richiedere a tutte le operazioni PUT di Amazon S3 di includere l'ACL predefinita bucket-owner-full-control, puoi aggiungere una policy del bucket che consenta solo il caricamento di oggetti utilizzando questo ACL.

Alternative all'uso di ACL

Oltre a un'ACL a livello di oggetto, il proprietario dell'oggetto ha diverse opzioni per gestirne le autorizzazioni:

  • Se il Account AWS proprietario dell'oggetto possiede anche il bucket, può scrivere una policy del bucket per gestire i permessi dell'oggetto.

  • Se Account AWS il proprietario dell'oggetto desidera concedere l'autorizzazione a un utente del proprio account, può utilizzare una politica utente.

  • Se, in qualità di proprietario del bucket, si desidera possedere automaticamente e avere il pieno controllo su ogni oggetto nel bucket, è possibile eseguire l'impostazione proprietario del bucket applicato per Object Ownership per disabilitare le ACL. Di conseguenza, il controllo degli accessi per i dati è basato su policy. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Quando utilizzare un'ACL a livello di bucket

L'unico caso d'uso consigliato per gli ACL dei bucket è quello di concedere autorizzazioni ad alcuni, come Servizi AWS l'account Amazon. CloudFront awslogsdelivery Quando crei o aggiorni una distribuzione e abiliti la CloudFront registrazione, CloudFront aggiorna l'ACL del bucket per concedere all'awslogsdeliveryaccount le FULL_CONTROL autorizzazioni per scrivere i log nel bucket. Per ulteriori informazioni, consulta la sezione Autorizzazioni necessarie per configurare la registrazione standard e accedere ai file di registro nella Amazon CloudFront Developer Guide. Se il bucket che memorizza i log utilizza l'impostazione imposta dal proprietario del bucket per S3 Object Ownership per disabilitare gli ACL, non può scrivere log nel bucket. CloudFront Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Quando utilizzare una policy di bucket

Se un proprietario Account AWS di un bucket desidera concedere l'autorizzazione agli utenti del proprio account, può utilizzare una policy del bucket o una politica utente. Negli scenari seguenti, è necessario utilizzare una policy di bucket.

Vuoi gestire le autorizzazioni multiaccount per tutte le autorizzazioni Amazon S3

È possibile utilizzare ACL per concedere autorizzazioni multiaccount ad altri account. Tuttavia, le ACL supportano solo un set finito di autorizzazioni e non includono tutte le autorizzazioni di Amazon S3. Per ulteriori informazioni, consulta Quali autorizzazioni è possibile concedere? Ad esempio, non è possibile concedere autorizzazioni per le risorse secondarie del bucket. Per ulteriori informazioni, consulta Identity and Access Management in Amazon S3.

Sia le policy di bucket sia quelle utente supportano la concessione dell'autorizzazione per tutte le operazioni di Amazon S3. Per ulteriori informazioni, consulta Azioni politiche di Amazon S3. Tuttavia, le policy utente servono a gestire le autorizzazioni per gli utenti dell'account. Per assegnare autorizzazioni multiaccount ad altri Account AWS o a utenti in un altro account, è necessario utilizzare una policy di bucket.

Quando utilizzare una policy utente

In linea generale, per gestire le autorizzazioni è possibile utilizzare una policy utente o una policy di bucket. È possibile scegliere di gestire le autorizzazioni creando utenti e gestendo le autorizzazioni singolarmente collegando le policy agli utenti (o a gruppi di utenti). In alternativa, è possibile che le policy basate sulle risorse, ad esempio una policy di bucket, funzionino meglio per lo scenario.

Con AWS Identity and Access Management (IAM) puoi creare più utenti all'interno del tuo account Account AWS e gestirne le autorizzazioni tramite policy utente. Un utente IAM deve disporre delle autorizzazioni dell'account principale a cui appartiene e del proprietario della Account AWS risorsa a cui l'utente desidera accedere. Tali autorizzazioni possono essere assegnare nel modo seguente:

  • Autorizzazione dall'account padre: l'account padre può concedere le autorizzazioni all'utente collegando una policy utente.

  • Autorizzazione dal proprietario della risorsa: il proprietario della risorsa può concedere l'autorizzazione all'utente IAM (tramite una policy del bucket) o all'account padre (tramite una policy del bucket, una lista ACL del bucket o una lista ACL dell'oggetto).

È come quando un bambino vuole prendere il gioco di qualcun altro. Per poterlo fare, il bambino deve ricevere il permesso sia dal genitore sia dal proprietario del gioco.

Per ulteriori informazioni, consulta Policy di bucket e policy utente.

Delega delle autorizzazioni

Se un utente Account AWS possiede una risorsa, può concedere tali autorizzazioni a un'altra persona. Account AWS Tale account a sua volta può delegare le autorizzazioni, o una parte di esse, agli utenti al suo interno. Questa operazione si definisce delega delle autorizzazioni. Tuttavia, un account che riceve le autorizzazioni da un altro account non può delegarle a un terzo Account AWS.

È consigliabile prima di tutto esaminare tutti gli argomenti introduttivi che spiegano come gestire l'accesso alle risorse di Amazon S3 e le linee guida correlate. Per ulteriori informazioni, consulta Identity and Access Management in Amazon S3. Per ulteriori informazioni sulle opzioni specifiche per le policy d'accesso, consulta gli argomenti indicati di seguito.