Panoramica sulla gestione degli accessi - 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à.

Panoramica sulla gestione degli accessi

Quando si concedono le autorizzazioni in Amazon S3, è necessario stabilire chi le riceverà e per quali risorse di Amazon S3, nonché le operazioni specifiche da permettere su tali risorse. Le sezioni seguenti forniscono una panoramica delle risorse Amazon S3 e spiegano come determinare il metodo migliore per controllare l'accesso a tali risorse.

Risorse di Amazon S3: bucket e oggetti

In AWS, una risorsa è un'entità con cui puoi lavorare. In Amazon S3, le risorse sono costituite da bucket e oggetti e a entrambi sono associate risorse secondarie.

Le risorse secondarie dei bucket includono:

  • lifecycle – Memorizza le informazioni sulla configurazione del ciclo di vita. Per ulteriori informazioni, consulta Gestione del ciclo di vita dello storage.

  • website – Memorizza le informazioni sulla configurazione dei siti Web, se configuri il bucket per l'hosting di siti Web. Per informazioni, consulta Hosting di un sito Web statico tramite Amazon S3.

  • versioning – Memorizza la configurazione della funzione Controllo delle versioni. Per ulteriori informazioni, consulta l'argomento relativo all'operazione PUT Bucket versioning nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

  • policy e acl (lista di controllo accessi) – Archiviano le informazioni sulle autorizzazioni di accesso per il bucket.

  • cors (cross-origin resource sharing, condivisione delle risorse multiorigine) – Supporta la configurazione del bucket per consentire richieste multiorigine. Per ulteriori informazioni, consulta Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS).

  • object ownership – Permette al proprietario del bucket di assumere la proprietà di nuovi oggetti nel bucket indipendentemente da chi li carica. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

  • logging – Permette di richiedere ad Amazon S3 di salvare i log di accesso al bucket.

Le risorse secondarie degli oggetti includono:

  • acl – Archivia un elenco delle autorizzazioni di accesso per l'oggetto. Per ulteriori informazioni, consulta Panoramica delle liste di controllo accessi (ACL).

  • restore – Supporta il ripristino temporaneo di un oggetto archiviato. Per ulteriori informazioni, consulta l'argomento relativo all'operazione POST Object restore nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

    Un oggetto nella classe di archiviazione S3 Glacier Flexible Retrieval è un oggetto archiviato. Per accedere all'oggetto, è necessario prima avviare una richiesta di ripristino che ripristina una copia dell'oggetto archiviato. Nella richiesta, occorre specificare per quanti giorni la copia ripristinata dovrà essere disponibile. Per ulteriori informazioni sull'archiviazione degli oggetti, consulta Gestione del ciclo di vita dello storage.

Proprietà di bucket e oggetti di Amazon S3

I bucket e gli oggetti sono risorse di Amazon S3. Per impostazione predefinita, solo il proprietario della risorsa è in grado di accedervi. Il proprietario della risorsa si riferisce a Account AWS chi crea la risorsa. Per esempio:

  • La Account AWS persona che usi per creare bucket e caricare oggetti possiede tali risorse.

  • Se carichi un oggetto utilizzando le credenziali dell'utente o del ruolo AWS Identity and Access Management (IAM), l'oggetto è il Account AWS proprietario dell'oggetto a cui appartiene l'utente o il ruolo.

  • Il proprietario di un bucket può concedere autorizzazioni multiaccount a un altro Account AWS (o agli utenti di un altro account) per caricare oggetti. In questo caso, chi carica Account AWS gli oggetti possiede tali oggetti. Il proprietario del bucket non dispone di autorizzazioni sugli oggetti di proprietà di un altro account, ad eccezione dei casi seguenti:

    • È il proprietario del bucket a pagare la fattura. Il proprietario del bucket può rifiutare l'accesso agli oggetti nel bucket o eliminarli, indipendentemente dall'utente a cui appartengono.

    • Il proprietario del bucket può archiviare gli oggetti nel bucket o ripristinarli, indipendentemente dall'utente a cui appartengono. L'archiviazione fa riferimento alla classe di storage utilizzata per archiviare gli oggetti. Per ulteriori informazioni, consulta Gestione del ciclo di vita dello storage.

Proprietà e autenticazione delle richieste

Tutte le richieste a un bucket possono essere autenticate o non autenticate. Le richieste autenticate devono includere un valore di firma che autentichi il mittente della richiesta, mentre non è necessario per le richieste non autenticate. Per ulteriori informazioni sull'autenticazione delle richieste, consulta Esecuzione di richieste.

Un proprietario di bucket può consentire richieste non autenticate. Le richieste PUT Object non autenticate, ad esempio, sono permesse quando un bucket ha una policy del bucket pubblica o quando una lista ACL del bucket concede l'accesso di tipo WRITE o FULL_CONTROL al gruppo All Users o all'utente anonimo in modo specifico. Per ulteriori informazioni sulle policy dei bucket pubbliche e sulle liste di controllo accessi (ACL) pubbliche, consulta Significato di "pubblico".

Tutte le richieste non autenticate sono fatte dall'utente anonimo. Questo utente viene rappresentato dall'ID utente canonico specifico 65a011a29cdf8ec533ec3d1ccaae921c nelle ACL. Se un oggetto viene caricato in un bucket tramite una richiesta non autenticata, la proprietà dell'oggetto è dell'utente anonimo. L'ACL predefinita dell'oggetto garantisce FULL_CONTROL all'utente anonimo in quanto proprietario dell'oggetto. Perciò, Amazon S3 consente alle richieste non autenticate di recuperare l'oggetto o di modificarne l'ACL.

Per impedire all'utente anonimo di modificare oggetti, raccomandiamo di non implementare policy di bucket che consentono scritture pubbliche anonime sul bucket e di non utilizzare delle ACL che concedono all'utente anonimo accesso di scrittura al bucket. Puoi applicare questo comportamento consigliato utilizzando il blocco dell'accesso pubblico di Amazon S3.

Per ulteriori informazioni sul blocco dell'accesso pubblico, consulta Blocco dell'accesso pubblico allo storage Amazon S3. Per ulteriori informazioni sulle ACL, consulta Panoramica delle liste di controllo accessi (ACL).

Importante

Ti consigliamo di non utilizzare le credenziali dell'utente Account AWS root per effettuare richieste autenticate. Crea invece un ruolo IAM, concedendo a esso l'accesso completo. Gli utenti con questo ruolo vengono definiti utenti amministratori. È possibile utilizzare le credenziali assegnate al ruolo di amministratore, anziché le credenziali dell'utente Account AWS root, per interagire AWS ed eseguire attività, come creare un bucket, creare utenti e concedere autorizzazioni. Per ulteriori informazioni, consultare la sezione relativa alle credenziali dell'utente root Account AWS e credenziali utente IAM nella Riferimenti generali di AWS e Best practice per la sicurezza in IAM nella Guida per l'utente di IAM.

Operazioni sulle risorse

Amazon S3 fornisce un set di operazioni da utilizzare con le relative risorse. Per un elenco delle operazioni disponibili, consulta Azioni definite da Amazon S3 nel Service Authorization Reference.

Gestione dell'accesso alle risorse

La gestione dell'accesso si riferisce alla concessione ad altri (Account AWS e agli utenti) del permesso di eseguire le operazioni sulle risorse mediante la stesura di una politica di accesso. Ad esempio, puoi concedere l'PUT Objectautorizzazione a un utente in Account AWS modo che l'utente possa caricare oggetti nel tuo bucket. Oltre a concedere le autorizzazioni a singoli utenti e account, puoi concedere le autorizzazioni a tutti (noto anche come accesso anonimo) o a tutti gli utenti autenticati (utenti con credenziali). AWS Ad esempio, se si configura un bucket come un sito Web, è possibile rendere tutti gli oggetti pubblicamente accessibili concedendo l'autorizzazione GET Object a qualsiasi utente.

Opzioni delle policy di accesso

La policy di accesso descrive chi può accedere e a quali risorse. È possibile associare una policy di accesso a una risorsa (bucket e oggetto) oppure a un utente. Di conseguenza, è possibile categorizzare le policy di accesso di Amazon S3 disponibili come indicato di seguito:

  • Policy basate su risorse – Le policy dei bucket e le liste di controllo accessi (ACL) sono basate sulle risorse perché vengono collegate alle risorse di Amazon S3.

    
							Diagramma che illustra le Account AWS risorse, incluso un bucket S3 con ACL e policy del bucket e oggetti S3 con ACL degli oggetti.
    • ACL – A ogni bucket e oggetto è associata una ACL. Un'ACL è un elenco delle assegnazioni che identificano l'assegnatario e l'autorizzazione concessa. Le ACL vengono utilizzate per concedere autorizzazioni base di lettura/scrittura ad altri Account AWS. Le liste ACL utilizzano uno schema XML specifico di Amazon S3.

      Di seguito è riportato un esempio di ACL del bucket. L'autorizzazione nell'ACL indica un proprietario del bucket con autorizzazione al controllo completo.

      <?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>owner-display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User"> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>

      ACL del bucket e dell'oggetto utilizzano lo stesso schema XML.

    • Policy del bucket: per il tuo bucket, puoi aggiungere una policy del bucket per concedere ad altri utenti Account AWS o a utenti IAM le autorizzazioni per il bucket e gli oggetti in esso contenuti. Le autorizzazioni relative a un oggetto si applicano solo agli oggetti creati dal proprietario del bucket. Le policy di bucket fungono da supporto alle policy di accesso basate su ACL e in molti casi le sostituiscono.

      Di seguito è riportato un esempio di policy di bucket. La policy di bucket e la policy utente si esprimono con un file JSON. La policy concede autorizzazioni di lettura anonima su tutti gli oggetti di un bucket. La policy di bucket dispone di una dichiarazione che consente l'operazione s3:GetObject (autorizzazione di lettura) sugli oggetti di un bucket nominato examplebucket.  Specificando il principal con un carattere jolly (*), la policy concede l'accesso anonimo e deve essere usata con cautela. La policy del bucket seguente, ad esempio, rende gli oggetti accessibili pubblicamente.

      { "Version":"2012-10-17", "Statement": [ { "Sid":"GrantAnonymousReadPermissions", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::awsexamplebucket1/*"] } ] }
  • Policy utente – È possibile utilizzare IAM per gestire l'accesso alle risorse di Amazon S3. Puoi creare utenti, gruppi e ruoli IAM nel tuo account e allegare loro policy di accesso per garantire loro l'accesso alle AWS risorse, incluso Amazon S3.

    
							Diagramma che illustra l' Account AWS amministratore e gli altri utenti con le politiche utente allegate.

    Per ulteriori informazioni su IAM, consulta AWS Identity and Access Management (IAM).

    Di seguito è illustrato un esempio di policy utente. Non è possibile concedere autorizzazioni anonime in una policy utente IAM in quanto la policy è collegata all'utente. La policy di esempio permette all'utente associato collegato di eseguire sei diverse operazioni di Amazon S3 su un bucket e sugli oggetti in esso contenuti. La policy può essere collegata a un utente, gruppo o ruolo IAM specifico.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AssignUserActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*", "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "ExampleStatement2", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }

Quando Amazon S3 riceve una richiesta, deve valutare tutte le policy di accesso per determinare se autorizzarla o rifiutarla. Per ulteriori informazioni su come Amazon S3 valuta le policy, consulta In che modo Amazon S3 autorizza una richiesta.

IAM Access Analyzer per S3

Nella console di Amazon S3, è possibile utilizzare IAM Access Analyzer per S3 per esaminare tutti i bucket che dispongono di liste di controllo degli accessi (ACL) del bucket, policy del bucket o policy del punto di accesso che concedono l'accesso pubblico o condiviso. IAM Access Analyzer for S3 ti avvisa della presenza di bucket configurati per consentire l'accesso a chiunque su Internet o altro Account AWS, anche all'esterno dell'organizzazione. Account AWS Per ogni bucket pubblico o condiviso, vengono visualizzati risultati che riportano l'origine e il livello di accesso pubblico o condiviso.

In IAM Access Analyzer per S3, è possibile bloccare tutti gli accessi pubblici a un bucket con un solo clic. Ti consigliamo di bloccare tutti gli accessi ai bucket, a meno che non sia necessario l'accesso pubblico per supportare un caso d'uso specifico. Prima di bloccare tutti gli accessi pubblici, assicurati che le applicazioni continuino a funzionare correttamente senza accesso pubblico. Per ulteriori informazioni, consulta Blocco dell'accesso pubblico allo storage Amazon S3.

Inoltre, puoi eseguire il drill-down nelle impostazioni relative alle autorizzazioni a livello di bucket per configurare i livelli di accesso granulari. Per casi d'uso specifici e verificati che richiedono l'accesso pubblico o condiviso, puoi confermare e registrare l'intenzione del bucket di rimanere pubblico o condiviso archiviando i risultati per il bucket. Puoi consultare e modificare le configurazioni relative al bucket in qualsiasi momento. Inoltre, puoi scaricare i risultati come report CSV per scopi di audit.

IAM Access Analyzer per S3 è disponibile senza costi aggiuntivi nella console di Amazon S3. IAM Access Analyzer per S3 è basato su AWS Identity and Access Management (IAM) IAM Access Analyzer. Per utilizzare IAM Access Analyzer for S3 sulla console Amazon S3, devi visitare la console IAM e creare un analizzatore a livello di account in IAM Access Analyzer per regione.

Per ulteriori informazioni su IAM Access Analyzer per S3, consultare Revisione dell'accesso al bucket tramite IAM Access Analyzer per S3.

Quale metodo di controllo degli accessi utilizzare?

In merito alle opzioni disponibili per scrivere una policy di accesso, sorgono le seguenti domande:

  • Quando utilizzare un determinato metodo di controllo degli accessi? Ad esempio, per concedere autorizzazioni per il bucket, è consigliabile utilizzare una policy di bucket o un'ACL del bucket?

    Quando si è proprietari di un bucket e degli oggetti nel bucket, È meglio utilizzare una policy di accesso basata su risorse o una policy basata sull'identità di IAM?

    Se si utilizza una policy di accesso basata su risorse, è consigliabile usare una policy di bucket o un'ACL dell'oggetto per gestire le autorizzazioni dell'oggetto?

  • Quando si è proprietari di un bucket ma non degli oggetti in esso contenuti, in che modo vengono gestite le autorizzazioni di accesso per gli oggetti di proprietà di terzi?

  • Se si concede l'accesso utilizzando una combinazione delle opzioni delle policy di accesso, in che modo Amazon S3 determina se un utente dispone dell'autorizzazione per eseguire un'operazione richiesta?

Nelle sezioni seguenti sono disponibili informazioni sulle diverse alternative di controllo degli accessi, su come Amazon S3 valuta i meccanismi di controllo degli accessi e su quando utilizzare i diversi metodi di controllo degli accessi. Forniscono inoltre procedure guidate di esempio.