Come funziona Amazon S3 con IAM - 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à.

Come funziona Amazon S3 con IAM

Prima di utilizzare IAM per gestire l'accesso ad Amazon S3, scopri quali funzionalità IAM sono disponibili per l'uso con Amazon S3.

Per avere una visione di alto livello di come Amazon S3 e AWS altri servizi funzionano con la maggior parte delle funzionalità IAM, AWS consulta i servizi che funzionano con IAM nella IAM User Guide.

Policy basate sull'identità per Amazon S3

Supporta le policy basate su identità

Le policy basate su identità sono documenti di policy di autorizzazione JSON che è possibile allegare a un'identità (utente, gruppo di utenti o ruolo IAM). Tali policy definiscono le azioni che utenti e ruoli possono eseguire, su quali risorse e in quali condizioni. Per informazioni su come creare una policy basata su identità, consulta Creazione di policy IAM nella Guida per l'utente di IAM.

Con le policy basate su identità di IAM, è possibile specificare quali operazioni e risorse sono consentite o respinte, nonché le condizioni in base alle quali le operazioni sono consentite o respinte. Non è possibile specificare l'entità principale in una policy basata sull'identità perché si applica all'utente o al ruolo a cui è associato. Per informazioni su tutti gli elementi utilizzabili in una policy JSON, consulta Guida di riferimento agli elementi delle policy JSON IAM nella Guida per l'utente di IAM.

Esempi di policy basate sull'identità per Amazon S3

Per visualizzare esempi di policy basate sull'identità di Amazon S3, consulta. Policy basate sull'identità per Amazon S3

Policy basate sulle risorse all'interno di Amazon S3

Supporta le policy basate su risorse

Le policy basate su risorse sono documenti di policy JSON che è possibile collegare a una risorsa. Gli esempi più comuni di policy basate su risorse sono le policy di attendibilità dei ruoli IAM e le policy dei bucket Amazon S3. Nei servizi che supportano policy basate sulle risorse, gli amministratori dei servizi possono utilizzarle per controllare l'accesso a una risorsa specifica. Quando è collegata a una risorsa, una policy definisce le azioni che un principale può eseguire su tale risorsa e a quali condizioni. È necessario specificare un principale in una policy basata sulle risorse. I principali possono includere account, utenti, ruoli, utenti federati o. Servizi AWS

Per consentire l'accesso multi-account, puoi specificare un intero account o entità IAM in un altro account come principale in una policy basata sulle risorse. L'aggiunta di un principale multi-account a una policy basata sulle risorse rappresenta solo una parte della relazione di trust. Quando il principale e la risorsa sono diversi Account AWS, un amministratore IAM dell'account affidabile deve inoltre concedere all'entità principale (utente o ruolo) l'autorizzazione ad accedere alla risorsa. L'autorizzazione viene concessa collegando all'entità una policy basata sull'identità. Tuttavia, se una policy basata su risorse concede l'accesso a un principale nello stesso account, non sono richieste ulteriori policy basate su identità. Per ulteriori informazioni, consulta Differenza tra i ruoli IAM e le policy basate su risorse nella Guida per l'utente di IAM.

Il servizio Amazon S3 supporta policy relative ai bucket, policy relative ai punti di accesso e concessioni di accesso:

  • Le policy bucket sono politiche basate sulle risorse collegate a un bucket Amazon S3. Una policy sui bucket definisce quali principali attori possono eseguire azioni sul bucket.

  • Le policy relative ai punti di accesso sono politiche basate sulle risorse che vengono valutate insieme alla policy bucket sottostante.

  • Le concessioni di accesso sono un modello semplificato per definire le autorizzazioni di accesso ai dati in Amazon S3 per prefisso, bucket o oggetto. Per informazioni su S3 Access Grants, consulta. Gestione dell'accesso con S3 Access Grants

Principi per le policy relative ai bucket

L'Principalelemento specifica l'utente, l'account, il servizio o altra entità a cui è consentito o negato l'accesso a una risorsa. Di seguito vengono illustrati alcuni esempi di specifica del Principal. Per ulteriori informazioni, consulta Principali nella Guida per l'utente di IAM.

Concedi le autorizzazioni a un Account AWS

Per concedere le autorizzazioni a un utente Account AWS, identifica l'account utilizzando il seguente formato.

"AWS":"account-ARN"

Di seguito vengono mostrati gli esempi.

"Principal":{"AWS":"arn:aws:iam::AccountIDWithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountID1WithoutHyphens:root","arn:aws:iam::AccountID2WithoutHyphens:root"]}

Concessione delle autorizzazioni a un utente IAM

Per concedere l'autorizzazione a un utente IAM nel tuo account, devi fornire una coppia nome-valore "AWS":"user-ARN".

"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}

Per esempi dettagliati che forniscono step-by-step istruzioni, vedere Esempio 1: il proprietario del bucket concede agli utenti le autorizzazioni per il bucket eEsempio 3: il proprietario del bucket concede autorizzazioni per gli oggetti che non sono di sua proprietà.

Nota

Se un'identità IAM viene eliminata dopo aver aggiornato la policy del bucket, la policy del bucket mostrerà un identificatore univoco nell'elemento principale anziché un ARN. Questi ID univoci non vengono mai riutilizzati, quindi puoi rimuovere in sicurezza i principali con identificatori univoci da tutte le dichiarazioni di policy. Per ulteriori informazioni sugli identificatori unici, consulta Identificatori IAM nella Guida per l'utente di IAM.

Concessione di autorizzazioni anonime

avvertimento

Si deve prestare attenzione a concedere l'accesso anonimo al proprio bucket Amazon S3. Quando si concede l'accesso anonimo, si consente a qualsiasi persona al mondo di accedere al bucket. È consigliabile non concedere mai alcun tipo di accesso anonimo in scrittura al bucket S3.

Per assegnare l'autorizzazione a tutti, vale a dire l'accesso anonimo, è necessario impostare i caratteri jolly ("*") come valore Principal. Ad esempio, se si configura un bucket come un sito Web, si vuole che tutti gli oggetti presenti nel bucket siano pubblicamente accessibili.

"Principal":"*"
"Principal":{"AWS":"*"}

L'utilizzo "Principal": "*" con Allow effetto in una politica basata sulle risorse consente a chiunque, anche se non ha effettuato l'accesso AWS, di accedere alla risorsa.

L'utilizzo di "Principal" : { "AWS" : "*" } con un effetto Allow in una policy basata sulle risorse consente a qualsiasi utente root, utente IAM, sessione del ruolo assunto o utente federato in qualsiasi account nella stessa partizione di accedere alla tua risorsa.

Per gli utenti anonimi, questi due metodi sono equivalenti. Per ulteriori informazioni, consulta Tutti i principali nella Guida per l'utente di IAM.

Non è possibile utilizzare un carattere jolly per associare parte di un nome di un principale o di un ARN.

Importante

Poiché chiunque può crearne una Account AWS, il livello di sicurezza di questi due metodi è equivalente, anche se funzionano in modo diverso.

Limitazione delle autorizzazioni per le risorse

Puoi anche utilizzare la policy delle risorse per limitare l'accesso a risorse che altrimenti sarebbero disponibili per i principali IAM. Usa un'istruzione Deny per impedire l'accesso.

L'esempio seguente blocca l'accesso se non viene utilizzato un protocollo di trasporto sicuro:

{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }

Utilizzare il "Principal": "*" in modo che questa restrizione si applichi a tutti è una best practice, anziché tentare di negare l'accesso solo a account o principali specifici utilizzando questo metodo.

Richiedi l'accesso tramite CloudFront URL

Puoi richiedere che i tuoi utenti accedano ai tuoi contenuti Amazon S3 solo utilizzando gli CloudFront URL anziché gli URL di Amazon S3. A tale scopo, crea un CloudFront Origin Access Control (OAC). Quindi, modifica le autorizzazioni sui tuoi dati S3. Nella tua policy sui bucket, puoi impostarla come Principal CloudFront come segue:

"Principal":{"Service":"cloudfront.amazonaws.com"}

Utilizza un Condition elemento della policy per consentire l'accesso CloudFront al bucket solo quando la richiesta è per conto della CloudFront distribuzione che contiene l'origine S3.

"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID" } }

Per ulteriori informazioni su come richiedere l'accesso a S3 tramite CloudFront URL, consulta Limitazione dell'accesso a un'origine Amazon Simple Storage Service nella Amazon CloudFront Developer Guide. Per ulteriori informazioni sui vantaggi in termini di sicurezza e privacy derivanti dall'utilizzo di Amazon CloudFront, consulta Configurazione dell'accesso sicuro e limitazione dell'accesso ai contenuti.

Esempi di policy basate sulle risorse per Amazon S3

Azioni politiche per Amazon S3

Supporta le operazioni di policy

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire azioni su quali risorse, e in quali condizioni.

L'elemento Action di una policy JSON descrive le operazioni che è possibile utilizzare per consentire o negare l'accesso a un criterio. Le azioni politiche in genere hanno lo stesso nome dell'operazione AWS API associata. Ci sono alcune eccezioni, ad esempio le azioni di sola autorizzazione che non hanno un'operazione API corrispondente. Esistono anche alcune operazioni che richiedono più operazioni in una policy. Queste operazioni aggiuntive sono denominate operazioni dipendenti.

Includi le operazioni in una policy per concedere le autorizzazioni a eseguire l'operazione associata.

Di seguito vengono illustrati i diversi tipi di relazione di mappatura tra le operazioni dell'API S3 e le azioni politiche richieste.

  • O ne-to-one mappatura con lo stesso nome. Ad esempio, per utilizzare l'operazione PutBucketPolicy API, è necessaria l'azione s3:PutBucketPolicy politica.

  • O ne-to-one mappatura con nomi diversi. Ad esempio, per utilizzare l'operazione ListObjectsV2 API, è necessaria l'azione s3:ListBucket politica.

  • ne-to-many Mappatura O. Ad esempio, per utilizzare l'operazione HeadObject API, s3:GetObject è necessario. Inoltre, quando utilizzi S3 Object Lock e desideri ottenere lo stato Legal Hold o le impostazioni di conservazione di un oggetto, sono necessarie anche le azioni corrispondenti s3:GetObjectLegalHold o s3:GetObjectRetention politiche prima di poter utilizzare l'operazione HeadObject API.

  • any-to-one Mappatura M. Ad esempio, per utilizzare le operazioni ListObjectsV2 o HeadBucket API, è richiesta l'azione s3:ListBucket politica.

Per visualizzare un elenco delle azioni di Amazon S3 da utilizzare nelle politiche, consulta Azioni definite da Amazon S3 nel Service Authorization Reference. Per un elenco completo delle operazioni API di Amazon S3, consulta Amazon S3 API Actions nel riferimento alle API di Amazon Simple Storage Service.

Le azioni politiche in Amazon S3 utilizzano il seguente prefisso prima dell'azione:

s3

Per specificare più operazioni in una sola istruzione, occorre separarle con la virgola.

"Action": [ "s3:action1", "s3:action2" ]

Le operazioni bucket sono operazioni API S3 che operano sul tipo di risorsa bucket. For example: CreateBucket, ListObjectsV2 e PutBucketPolicy. Le azioni delle policy di S3 per le operazioni con i bucket richiedono che l'Resourceelemento nelle bucket policy o nelle policy basate sull'identità IAM sia l'identificatore Amazon Resource Name (ARN) del tipo di bucket S3 nel seguente formato di esempio.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"

La seguente policy sui bucket concede all'utente Akua con account 12345678901 l'autorizzazione a eseguire l'operazione API V2 e ad elencare gli oggetti in un bucket S3. s3:ListBucket ListObjects

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" } ] }
Operazioni bucket nelle politiche dei punti di accesso

Le autorizzazioni concesse in una policy sui punti di accesso sono efficaci solo se il bucket sottostante consente le stesse autorizzazioni. Quando utilizzi S3 Access Points, devi delegare il controllo degli accessi dal bucket al punto di accesso o aggiungere le stesse autorizzazioni nelle policy dei punti di accesso alla policy del bucket sottostante. Per ulteriori informazioni, consulta Configurazione delle policy IAM per l'utilizzo degli access point. Nelle policy dei punti di accesso, le azioni delle policy di S3 per le operazioni con i bucket richiedono l'utilizzo dell'accesspointARN per l'Resourceelemento nel seguente formato.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La seguente politica del punto di accesso concede all'utente Akua con account 12345678901 l's3:ListBucketautorizzazione a eseguire l'operazione API ListObjectsV2 tramite il punto di accesso S3 DOC-EXAMPLE-ACCESS-POINT per elencare gli oggetti nel bucket associato al punto di accesso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT" } ] }
Nota

Non tutte le operazioni relative ai bucket sono supportate da S3 Access Point. Per ulteriori informazioni, consulta Compatibilità dei punti di accesso con le operazioni S3.

Le operazioni sugli oggetti sono operazioni dell'API S3 che agiscono sul tipo di risorsa dell'oggetto. For example: GetObject, PutObject e DeleteObject. Le azioni delle policy di S3 per le operazioni sugli oggetti richiedono che l'Resourceelemento nelle policy sia l'ARN dell'oggetto S3 nei seguenti formati di esempio.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/*"
Nota

L'ARN dell'oggetto deve contenere una barra dopo il nome del bucket, come illustrato negli esempi precedenti.

La seguente policy sui bucket concede all'utente Akua con account 12345678901 l's3:PutObjectautorizzazione a eseguire l'operazione API per caricare oggetti in un bucket S3. PutObject

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Operazioni sugli oggetti nelle politiche dei punti di accesso

Quando utilizzi i punti di accesso S3 per controllare l'accesso alle operazioni sugli oggetti, puoi utilizzare le policy dei punti di accesso. Quando si utilizzano le policy dei punti di accesso, le azioni delle policy di S3 per le operazioni sugli oggetti richiedono l'utilizzo dell'accesspointARN per Resource l'elemento nel seguente formato:. arn:aws:s3:region:account-id:accesspoint/access-point-name/object/resource Per le operazioni sugli oggetti che utilizzano il punto di accesso, è necessario includere il /object/ valore dopo l'intero ARN del punto di accesso nell'Resourceelemento. Ecco alcuni esempi.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*"
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/prefix/*"

La seguente politica del punto di accesso concede all'utente Akua con account 12345678901 l's3:GetObjectautorizzazione a eseguire l'operazione GetObjectAPI tramite il punto di accesso DOC-EXAMPLE-ACCESS-POINT su tutti gli oggetti nel bucket associato al punto di accesso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*" } ] }
Nota

Non tutte le operazioni sugli oggetti sono supportate da S3 Access Point. Per ulteriori informazioni, consulta Compatibilità dei punti di accesso con le operazioni S3.

Le operazioni sui punti di accesso sono operazioni dell'API S3 che operano sul tipo di accesspoint risorsa. For example: CreateAccessPoint, DeleteAccessPoint e GetAccessPointPolicy. Le azioni policy di S3 per le operazioni sui punti di accesso possono essere utilizzate solo nelle policy basate sull'identità IAM, non nelle policy bucket o nelle policy dei punti di accesso. Le operazioni relative ai punti di accesso richiedono che l'Resourceelemento sia l'accesspointARN nel formato di esempio seguente.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La seguente policy basata sull'identità IAM concede l's3:GetAccessPointPolicyautorizzazione a eseguire l'operazione GetAccessPointPolicyAPI sul punto di accesso S3 DOC-EXAMPLE-ACCESS-POINT.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point DOC-EXAMPLE-ACCESS-POINT", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012:access point/DOC-EXAMPLE-ACCESS-POINT" } ] }

Quando utilizzi gli Access Point, per controllare l'accesso alle operazioni del bucket, vedi; per controllare l'accesso alle operazioni sugli oggetti, vedi. Operazioni bucket nelle politiche dei punti di accesso Operazioni sugli oggetti nelle politiche dei punti di accesso Per ulteriori informazioni su come configurare le politiche dei punti di accesso, vedereConfigurazione delle policy IAM per l'utilizzo degli access point.

Con Amazon S3 Object Lambda puoi aggiungere codice personalizzato alle richieste GET, LIST e HEAD di Amazon S3 per modificare ed elaborare i dati restituiti a un'applicazione. È possibile effettuare richieste tramite un punto di accesso Object Lambda, che funziona allo stesso modo delle richieste tramite altri punti di accesso. Per ulteriori informazioni, consulta Trasformazione di oggetti con S3 Object Lambda.

Per ulteriori informazioni su come configurare le politiche per le operazioni degli access point Object Lambda, vedere. Configurazione delle policy IAM per i punti di accesso Lambda per oggetti

Un punto di accesso multiregionale fornisce un endpoint globale che le applicazioni possono utilizzare per soddisfare le richieste provenienti da bucket S3 che si trovano in più bucket. Regione AWSÈ possibile utilizzare un punto di accesso multiregionale per creare applicazioni multiregionali con la stessa architettura utilizzata in una singola regione e quindi eseguire tali applicazioni in qualsiasi parte del mondo. Per ulteriori informazioni, consulta Punti di accesso multi-regione in Amazon S3.

Per ulteriori informazioni su come configurare le politiche per le operazioni dei punti di accesso multiregionali, vedere. Esempi di policy dei punti di accesso multi-regione

Le operazioni di lavoro (Batch Operations) sono operazioni API S3 che operano sul tipo di risorsa lavoro. Ad esempio DescribeJob e CreateJob. Le azioni policy di S3 per le job operations possono essere utilizzate solo nelle policy basate sull'identità IAM, non nelle policy bucket. Inoltre, le operazioni di lavoro richiedono che l'Resourceelemento nelle politiche basate sull'identità IAM sia l'jobARN nel seguente formato di esempio.

"Resource": "arn:aws:s3:*:123456789012:job/*"

La seguente policy basata sull'identità IAM concede l's3:DescribeJobautorizzazione a eseguire l'operazione DescribeJobAPI su S3 Batch Operations Job DOC-EXAMPLE-JOB.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job DOC-EXAMPLE-JOB", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012:job/DOC-EXAMPLE-JOB" } ] }

Per ulteriori informazioni su come configurare le operazioni di configurazione di S3 Storage Lens, consulta. Autorizzazioni Amazon S3 Storage Lens

Le operazioni dell'account sono operazioni API S3 che operano a livello di account. Ad esempio, GetPublicAccessBlock (per account). L'account non è un tipo di risorsa definito da Amazon S3. Le azioni delle policy di S3 per le operazioni degli account possono essere utilizzate solo nelle politiche basate sull'identità IAM, non nelle policy bucket. Inoltre, le operazioni relative agli account richiedono che l'Resourceelemento delle policy IAM basate sull'identità sia. "*"

La seguente policy basata sull'identità IAM concede l's3:GetAccountPublicAccessBlockautorizzazione a eseguire l'operazione GetPublicAccessBlockAPI a livello di account e recuperare le impostazioni del Public Access Block a livello di account.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }

Esempi di policy per Amazon S3

Risorse relative alle policy per Amazon S3

Supporta le risorse di policy

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire operazioni su quali risorse, e in quali condizioni.

L'elemento JSON Resource della policy specifica l'oggetto o gli oggetti ai quali si applica l'azione. Le istruzioni devono includere un elemento Resource o un elemento NotResource. Come best practice, specifica una risorsa utilizzando il suo nome della risorsa Amazon (ARN). Puoi eseguire questa operazione per azioni che supportano un tipo di risorsa specifico, note come autorizzazioni a livello di risorsa.

Per le azioni che non supportano le autorizzazioni a livello di risorsa, ad esempio le operazioni di elenco, utilizza un carattere jolly (*) per indicare che l'istruzione si applica a tutte le risorse.

"Resource": "*"

Alcune azioni dell'API Amazon S3 supportano più risorse. Ad esempio, s3:GetObject accede a EXAMPLE-RESOURCE-1 e EXAMPLE-RESOURCE-2, quindi un principale deve disporre delle autorizzazioni per accedere a entrambe le risorse. Per specificare più risorse in una singola istruzione, separa gli ARN con le virgole.

"Resource": [ "EXAMPLE-RESOURCE-1", "EXAMPLE-RESOURCE-2"

Le risorse in Amazon S3 sono bucket, oggetti, punti di accesso o job. In una policy, utilizza l'Amazon Resource Name (ARN) del bucket, dell'oggetto, del punto di accesso o del job per identificare la risorsa.

Per visualizzare un elenco completo dei tipi di risorse Amazon S3 e dei relativi ARN, consulta Resources defined by Amazon S3 nel Service Authorization Reference. Per sapere con quali azioni è possibile specificare l'ARN di ogni risorsa, consulta Azioni definite da Amazon S3.

Wildcard per gli ARN delle risorse

È possibile utilizzare caratteri jolly come parte dell'ARN della risorsa. È possibile utilizzare caratteri jolly (* e ?) all'interno di un segmento ARN (le parti separate da due punti). Un asterisco (*) rappresenta qualsiasi combinazione di zero o più caratteri, mentre un punto interrogativo (?) rappresenta qualsiasi singolo carattere. È possibile utilizzare * o ? multipli in ogni segmento, ma un carattere jolly non può separare i segmenti.

  • Il seguente ARN utilizza il carattere jolly * nella parte relativa all'ID dell'ARN per identificare tutti gli oggetti nel bucket examplebucket.

    arn:aws:s3:::examplebucket/*
  • Il seguente ARN utilizza * per indicare tutti i bucket e gli oggetti S3.

    arn:aws:s3:::*
  • Il seguente ARN utilizza entrambi i caratteri jolly * e ?, nella parte relative-ID. Identifica tutti gli oggetti nei bucket quali example1bucket, example2bucket, example3bucket e così via.

    arn:aws:s3:::example?bucket/*

Variabili politiche per gli ARN di risorse

È possibile utilizzare le variabili delle policy negli ARN di Amazon S3. Al momento di valutare la policy, queste variabili predefinite vengono sostituite dai valori corrispondenti. Si supponga di organizzare il bucket come raccolta di cartelle, una cartella per ogni utente. Il nome della cartella corrisponde al nome utente. Per assegnare agli utenti le autorizzazioni per le rispettive cartelle, è possibile specificare la variabile di policy nell'ARN della risorsa:

arn:aws:s3:::bucket_name/developers/${aws:username}/

In fase di esecuzione, quando la policy viene valutata, la variabile ${aws:username} nella risorsa ARN viene sostituita dal nome utente della persona che effettua la richiesta.

Esempi di policy per Amazon S3

Chiavi relative alle condizioni delle politiche per Amazon S3

Supporta le chiavi di condizione delle policy specifiche del servizio

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire azioni su quali risorse, e in quali condizioni.

L'elemento Condition (o blocco Condition) consente di specificare le condizioni in cui un'istruzione è in vigore. L'elemento Condition è facoltativo. Puoi compilare espressioni condizionali che utilizzano operatori di condizione, ad esempio uguale a o minore di, per soddisfare la condizione nella policy con i valori nella richiesta.

Se specifichi più elementi Condition in un'istruzione o più chiavi in un singolo elemento Condition, questi vengono valutati da AWS utilizzando un'operazione AND logica. Se si specificano più valori per una singola chiave di condizione, AWS valuta la condizione utilizzando un'operazione logica. OR Tutte le condizioni devono essere soddisfatte prima che le autorizzazioni dell'istruzione vengano concesse.

Puoi anche utilizzare variabili segnaposto quando specifichi le condizioni. Ad esempio, puoi autorizzare un utente IAM ad accedere a una risorsa solo se è stata taggata con il relativo nome utente IAM. Per ulteriori informazioni, consulta Elementi delle policy IAM: variabili e tag nella Guida per l'utente di IAM.

AWS supporta chiavi di condizione globali e chiavi di condizione specifiche del servizio. Per visualizzare tutte le chiavi di condizione AWS globali, consulta le chiavi di contesto delle condizioni AWS globali nella Guida per l'utente IAM.

Ogni chiave di condizione di Amazon S3 è mappata all'intestazione di richiesta con lo stesso nome consentita dall'API su cui è possibile impostare la condizione. Le chiavi di condizione specifiche di Amazon S3 determinano il comportamento delle intestazioni di richiesta con lo stesso nome. Ad esempio, la chiave di condizione s3:VersionId utilizzata per concedere l'autorizzazione condizionale definisce il s3:GetObjectVersion comportamento del parametro di versionId query impostato in una richiesta GET Object.

Per visualizzare un elenco di chiavi di condizione di Amazon S3, consulta Chiavi di condizione per Amazon S3 nel Service Authorization Reference. Per sapere con quali azioni e risorse puoi utilizzare una chiave di condizione, consulta Azioni definite da Amazon S3.

Esempio: limitazione dei caricamenti di oggetti a oggetti con una classe di archiviazione specifica

Supponiamo che l'account A, rappresentato dall'ID account 123456789012, sia proprietario di un bucket. L'amministratore dell'Account A desidera limitare Dave, un utente dell'Account A, in modo che Dave possa caricare oggetti solo nel bucket archiviato con la classe di archiviazione. STANDARD_IA Per limitare il caricamento di oggetti con una classe di storage specifica, l'amministratore dell'Account A può utilizzare la chiave di condizione s3:x-amz-storage-class, come illustrato nella policy di bucket di esempio seguente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }

Nell'esempio, il blocco Condition specifica la condizione StringEquals che viene applicata alla coppia chiave-valore "s3:x-amz-acl":["public-read"]. Esiste un insieme predefinito di chiavi che possono essere utilizzate nell'espressione di una condizione. L'esempio utilizza la chiave di condizione s3:x-amz-acl. Questa condizione prevede che l'utente includa l'intestazione x-amz-acl con il valore public-read in ogni richiesta PUT object.

Esempi di policy per Amazon S3

ACL in Amazon S3

Supporta le ACL

In Amazon S3, le liste di controllo degli accessi (ACL) controllano quali Account AWS sono le autorizzazioni per accedere a una risorsa. Le ACL sono simili alle policy basate su risorse, sebbene non utilizzino il formato del documento di policy JSON.

Importante

La maggior parte degli attuali casi d'uso in Amazon S3 non richiede più l'uso delle ACL.

Per informazioni sull'utilizzo degli ACL per controllare l'accesso in Amazon S3, consulta. Gestione degli accessi con le ACL

ABAC con Amazon S3

Supporta ABAC (tag nelle policy)

Parziale

Il controllo dell'accesso basato su attributi (ABAC) è una strategia di autorizzazione che definisce le autorizzazioni in base agli attributi. In AWS, questi attributi sono chiamati tag. Puoi allegare tag a entità IAM (utenti o ruoli) e a molte AWS risorse. L'assegnazione di tag alle entità e alle risorse è il primo passaggio di ABAC. In seguito, vengono progettate policy ABAC per consentire operazioni quando il tag dell'entità principale corrisponde al tag sulla risorsa a cui si sta provando ad accedere.

La strategia ABAC è utile in ambienti soggetti a una rapida crescita e aiuta in situazioni in cui la gestione delle policy diventa impegnativa.

Per controllare l'accesso basato su tag, fornisci informazioni sui tag nell'elemento condizione di una policy utilizzando le chiavi di condizione aws:ResourceTag/key-name, aws:RequestTag/key-nameo aws:TagKeys.

Se un servizio supporta tutte e tre le chiavi di condizione per ogni tipo di risorsa, il valore per il servizio è Yes (Sì). Se un servizio supporta tutte e tre le chiavi di condizione solo per alcuni tipi di risorsa, allora il valore sarà Parziale.

Per ulteriori informazioni su ABAC, consulta Che cos'è ABAC? nella Guida per l'utente di IAM. Per visualizzare un tutorial con i passaggi per l'impostazione di ABAC, consulta Utilizzo del controllo degli accessi basato su attributi (ABAC) nella Guida per l'utente di IAM.

Per visualizzare esempi di policy basate sull'identità per limitare l'accesso ai job di S3 Batch Operations basati sui tag, consulta. Controllo delle autorizzazioni per S3 Batch Operations utilizzando i tag di processo

ABAC e tag di oggetti

Nelle politiche ABAC, gli oggetti utilizzano s3: tag anziché aws: tag. Per controllare l'accesso agli oggetti in base ai tag degli oggetti, si forniscono informazioni sui tag nell'elemento condition di una politica utilizzando i seguenti tag:

  • s3:ExistingObjectTag/tag-key

  • s3:s3:RequestObjectTagKeys

  • s3:RequestObjectTag/tag-key

Per informazioni sull'utilizzo dei tag degli oggetti per controllare l'accesso, inclusi esempi di politiche di autorizzazione, vedereTagging e policy di controllo degli accessi.

Utilizzo di credenziali temporanee con Amazon S3

Supporta le credenziali temporanee

Alcune Servizi AWS non funzionano quando accedi utilizzando credenziali temporanee. Per ulteriori informazioni, incluse quelle che Servizi AWS funzionano con credenziali temporanee, consulta la sezione relativa alla Servizi AWS compatibilità con IAM nella IAM User Guide.

Stai utilizzando credenziali temporanee se accedi AWS Management Console utilizzando qualsiasi metodo tranne nome utente e password. Ad esempio, quando accedi AWS utilizzando il link Single Sign-On (SSO) della tua azienda, tale processo crea automaticamente credenziali temporanee. Le credenziali temporanee vengono create in automatico anche quando accedi alla console come utente e poi cambi ruolo. Per ulteriori informazioni sullo scambio dei ruoli, consulta Cambio di un ruolo (console) nella Guida per l'utente di IAM.

È possibile creare manualmente credenziali temporanee utilizzando l'API or. AWS CLI AWS È quindi possibile utilizzare tali credenziali temporanee per accedere. AWS AWS consiglia di generare dinamicamente credenziali temporanee anziché utilizzare chiavi di accesso a lungo termine. Per ulteriori informazioni, consulta Credenziali di sicurezza provvisorie in IAM.

Sessioni di accesso diretto per Amazon S3

Supporta l'inoltro delle sessioni di accesso (FAS)

Quando utilizzi un utente o un ruolo IAM per eseguire azioni AWS, sei considerato un principale. Quando si utilizzano alcuni servizi, è possibile eseguire un'operazione che attiva un'altra operazione in un servizio diverso. FAS utilizza le autorizzazioni del principale che chiama an Servizio AWS, in combinazione con la richiesta Servizio AWS per effettuare richieste ai servizi downstream. Le richieste FAS vengono effettuate solo quando un servizio riceve una richiesta che richiede interazioni con altri Servizi AWS o risorse per essere completata. In questo caso è necessario disporre delle autorizzazioni per eseguire entrambe le azioni. Per i dettagli delle policy relative alle richieste FAS, consulta la pagina Forward access sessions.

  • FAS viene utilizzato da Amazon S3 per effettuare chiamate AWS KMS per decrittografare un oggetto quando SSE-KMS è stato utilizzato per crittografarlo. Per ulteriori informazioni, consulta Utilizzo della crittografia lato server con chiavi (SSE-KMS) AWS KMS.

  • S3 Access Grants utilizza anche FAS. Dopo aver creato una concessione di accesso ai dati S3 per una particolare identità, l'assegnatario richiede una credenziale temporanea a S3 Access Grants. S3 Access Grants ottiene una credenziale temporanea per il richiedente e la fornisce al richiedente. AWS STS Per ulteriori informazioni, consulta Richiedi l'accesso ai dati di Amazon S3 tramite S3 Access Grants.

Ruoli di servizio per Amazon S3

Supporta i ruoli di servizio

Un ruolo di servizio è un ruolo IAM che un servizio assume per eseguire operazioni per tuo conto. Un amministratore IAM può creare, modificare ed eliminare un ruolo di servizio dall'interno di IAM. Per ulteriori informazioni, consulta la sezione Creazione di un ruolo per delegare le autorizzazioni a un Servizio AWS nella Guida per l'utente di IAM.

avvertimento

La modifica delle autorizzazioni per un ruolo di servizio potrebbe compromettere la funzionalità di Amazon S3. Modifica i ruoli di servizio solo quando Amazon S3 fornisce indicazioni in tal senso.

Ruoli collegati ai servizi per Amazon S3

Supporta i ruoli collegati ai servizi

Parziale

Un ruolo collegato al servizio è un tipo di ruolo di servizio collegato a un. Servizio AWS Il servizio può assumere il ruolo per eseguire un'operazione per tuo conto. I ruoli collegati al servizio vengono visualizzati in Account AWS e sono di proprietà del servizio. Un amministratore IAM può visualizzare le autorizzazioni per i ruoli collegati ai servizi, ma non modificarle.

Amazon S3 supporta i ruoli collegati ai servizi per Amazon S3 Storage Lens. Per dettagli sulla creazione o la gestione di ruoli collegati ai servizi Amazon S3, consulta. Utilizzo dei ruoli collegati ai servizi per Amazon S3 Storage Lens

Servizio Amazon S3 come principale

Nome del servizio nella politica Funzionalità S3 Ulteriori informazioni

s3.amazonaws.com

Replica di Amazon S3

Impostazione della replica

s3.amazonaws.com

Notifiche di eventi S3

Notifiche di eventi Amazon S3

s3.amazonaws.com

Inventario S3

Amazon S3 Inventory

access-grants.s3.amazonaws.com

S3 Access Grants

Registrazione di una posizione

batchoperations.s3.amazonaws.com

Operazioni in batch S3

Concessione delle autorizzazioni per le operazioni in batch Amazon S3

logging.s3.amazonaws.com

Registrazione degli accessi al server S3

Abilitazione della registrazione degli accessi al server Amazon S3

storage-lens.s3.amazonaws.com

S3 Storage Lens

Visualizzazione dei parametri di Amazon S3 Storage Lens utilizzando una esportazione di dati