Come funziona Amazon S3 con IAM
Prima di utilizzare IAM per gestire l'accesso ad Amazon S3, è necessario conoscere le funzioni IAM disponibili per l'utilizzo di Amazon S3.
Funzione IAM | Supporto Amazon S3 |
---|---|
Sì |
|
Sì |
|
Sì |
|
Sì |
|
Sì |
|
Sì |
|
Parziale |
|
Sì |
|
Sì |
|
Sì |
|
Parziale |
Per avere una visione di alto livello di come Amazon S3 e altri servizi di AWS funzionano con la maggior parte delle funzioni IAM, consulta Servizi che funzionano con AWS IAM nella Guida all'utente IAM.
Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.
Policy basate sull'identità per Amazon S3
Supporta le policy basate su identità: sì
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). Queste policy controllano le azioni che gli utenti e i ruoli possono eseguire, su quali risorse e in quali condizioni. Per informazioni su come creare una policy basata su identità, consulta Definizione di autorizzazioni personalizzate IAM con policy gestite dal cliente nella Guida per l'utente IAM.
Con le policy IAM basate sull'identità, è possibile specificare le azioni e le risorse consentite o negate, nonché le condizioni in cui le azioni sono consentite o negate. Non è possibile specificare l'entità principale in una policy basata sull'identità perché si applica all'utente o al ruolo a cui è associato. Per conoscere tutti gli elementi che è possibile utilizzare in un criterio JSON, consulta il Riferimento agli elementi del criterio IAM JSON nella Guida all'utente 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 in Amazon S3
Supporta le policy basate sulle risorse: sì
Le policy basate su risorse sono documenti di policy JSON che è possibile collegare a una risorsa. Esempi di policy basate sulle 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 utilizzarli 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 l'entità principale e la risorsa si trovano in diversi Account AWS, un amministratore IAM nell'account attendibile deve concedere all'entità principale (utente o ruolo) anche l'autorizzazione per accedere alla risorsa. L'autorizzazione viene concessa collegando all'entità una policy basata sull'identità. Tuttavia, se un criterio basato sulle risorse concede l'accesso a un responsabile dello stesso account, non è necessario un ulteriore criterio basato sull'identità. Per ulteriori informazioni, consulta Accesso alle risorse dell'account incrociato in IAM nella Guida all'utente IAM.
Il servizio Amazon S3 supporta le policy di bucket, le policy di punto di accesso e le concessioni di accesso:
-
Le policy di bucket sono policy basate sulle risorse e collegate a un bucket Amazon S3. Una policy di bucket definisce quali sono i principali che possono eseguire azioni sul bucket.
-
Le policy dei punti di accesso sono policy basate sulle risorse che vengono valutate insieme alla policy di bucket sottostante.
-
I permessi 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 degli accessi con S3 Access Grants.
Principali per le policy dei bucket
L'elemento Principal
specifica l'utente, l'account, il servizio o un'altra entità a cui è consentito o negato l'accesso a una risorsa. Di seguito sono riportati alcuni esempi di specifica di Principal
. Per ulteriori informazioni, consulta Principali nella Guida per l'utente di IAM.
Concessione di autorizzazioni a un Account AWS
Per concedere le autorizzazioni a un Account AWS, identifica tale account utilizzando il formato riportato di seguito.
"AWS":"
account-ARN
"
Di seguito sono riportati alcuni esempi.
"Principal":{"AWS":"arn:aws:iam::
AccountIDWithoutHyphens
:root"}
"Principal":{"AWS":["arn:aws:iam::
AccountID1WithoutHyphens
:root","arn:aws:iam::AccountID2WithoutHyphens
:root"]}
Concessione di autorizzazioni a un utente IAM
Per concedere un'autorizzazione a un utente IAM all'interno del proprio account, è necessario fornire una coppia nome-valore "AWS":"
.user-ARN
"
"Principal":{"AWS":"arn:aws:iam::
account-number-without-hyphens
:user/username
"}
Per esempi dettagliati che forniscono istruzioni passo-passo, consulta Esempio 1: Proprietario del bucket che concede ai suoi utenti le autorizzazioni per il bucket e Esempio 3: Proprietario di un bucket che concede autorizzazioni a oggetti di cui non è proprietario.
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 permessi anonimi
avvertimento
Fai attenzione quando concedi l'accesso anonimo al tuo bucket Amazon S3. Quando si concede l'accesso anonimo, chiunque nel mondo può accedere al proprio bucket. Si consiglia vivamente di non concedere mai alcun tipo di accesso anonimo in scrittura al proprio bucket S3.
Per concedere il permesso a tutti, detto anche accesso anonimo, si imposta il carattere jolly ("*"
) come valore Principal
. Ad esempio, se si configura il bucket come un sito Web, si desidera che tutti gli oggetti del bucket siano accessibili pubblicamente.
"Principal":"*"
"Principal":{"AWS":"*"}
L'uso di "Principal": "*"
con un effetto Allow
in un criterio basato sulle risorse consente a chiunque, anche se non ha effettuato l'accesso a AWS, di accedere alla risorsa.
L'uso di "Principal" : { "AWS" : "*" }
con un effetto Allow
in un criterio basato sulle risorse consente a qualsiasi utente root, utente IAM, sessione con ruolo presunto o utente federato in qualsiasi account della stessa partizione di accedere alla risorsa.
Per gli utenti anonimi, questi due metodi sono equivalenti. Per ulteriori informazioni, consulta Tutti i responsabili nella Guida all'utente IAM.
Non è possibile utilizzare un carattere jolly per abbinare una parte di un nome principale o di un ARN.
Importante
Poiché chiunque può creare Account AWS, il livello di sicurezza di questi due metodi è equivalente, anche se il loro funzionamento è diverso.
Limitazione delle autorizzazioni delle 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"} } }
Utilizza 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.
Richiesta dell'accesso tramite URL CloudFront
È possibile richiedere che gli utenti accedano ai contenuti di Amazon S3 solo utilizzando gli URL di CloudFront anziché quelli di Amazon S3. A tal fine, creare un controllo di accesso all'origine (OAC) di CloudFront. Quindi, modifica le autorizzazioni sui dati S3. Nelle policy di bucket, è possibile impostare CloudFront come principale come segue:
"Principal":{"Service":"cloudfront.amazonaws.com"}
Utilizza un elemento Condition
nella policy per consentire a CloudFront di accedere al bucket solo quando la richiesta è a nome della distribuzione CloudFront 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 attraverso gli URL di CloudFront, consulta Limitazione dell'accesso a un'origine Amazon Simple Storage Service nella Guida per gli sviluppatori di Amazon CloudFront. Per ulteriori informazioni sui vantaggi di Amazon CloudFront in termini di sicurezza e privacy, consulta la sezione Configurazione dell'accesso sicuro e limitazione dell'accesso ai contenuti.
Esempi di policy basate sulle risorse per Amazon S3
Per visualizzare esempi di policy per i bucket Amazon S3, consulta Policy dei bucket per Amazon S3.
Per visualizzare esempi di policy per i punti di accesso, consulta Configurazione dei criteri IAM per l'utilizzo degli access point.
Azioni di policy per Amazon S3
Supporta le operazioni di policy: si
Gli amministratori possono utilizzare le policy JSON AWS per specificare gli accessi ai diversi elementi. In altre parole, quale principale può eseguire azioni su quali risorse e in quali condizioni.
L'elemento Action
di una policy JSON descrive le azioni che è possibile utilizzare per consentire o negare l'accesso a un criterio. Le azioni di policy hanno spesso lo stesso nome dell'operazione API AWS. Ci sono alcune eccezioni, come le azioni di sola autorizzazione che non hanno un'operazione API corrispondente. Esistono anche alcune operazioni che richiedono più operazioni in una policy. Queste azioni aggiuntive sono chiamate azioni dipendenti.
Includi le azioni in un criterio per concedere le autorizzazioni a eseguire l'operazione associata.
Di seguito sono illustrati diversi tipi di relazione di mappatura tra le operazioni API S3 e le azioni di policy richieste.
Mappatura uno-a-uno con lo stesso nome. Ad esempio, per utilizzare l'operazione API
PutBucketPolicy
, è necessaria l'azione di policys3:PutBucketPolicy
.Mappatura uno-a-uno con nomi diversi. Ad esempio, per utilizzare l'operazione API
ListObjectsV2
, è necessaria l'azione di policys3:ListBucket
.Mappatura uno-a-molti. Ad esempio, per utilizzare l'operazione API
HeadObject
, è necessaria l'operaziones3:GetObject
. Inoltre, quando si utilizza S3 Object Lock e si desidera ottenere lo stato di conservazione legale di un oggetto o le impostazioni di conservazione, prima di poter utilizzare l'operazione APIHeadObject
sono necessarie anche le azioni di policys3:GetObjectLegalHold
os3:GetObjectRetention
corrispondenti.Mappatura molti-a-uno. Ad esempio, per utilizzare le operazioni API
ListObjectsV2
oHeadBucket
, è necessaria l'azione di policys3:ListBucket
.
Per visualizzare un elenco di azioni Amazon S3 da utilizzare nelle policy, consulta Azioni definite da Amazon S3 in Riferimento alle autorizzazioni di servizio. Per un elenco completo delle operazioni API di Amazon S3, consulta Azioni API di Amazon S3 in Riferimento API di Amazon Simple Storage Service.
Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.
Le azioni di policy in Amazon S3 utilizzano il seguente prefisso prima dell'azione:
s3
Per specificare più azioni in una singola istruzione, separarle con delle virgole.
"Action": [ "s3:
action1
", "s3:action2
" ]
Operazioni sui bucket
Le operazioni sui bucket sono operazioni API S3 che operano sul tipo di risorsa bucket. Ad esempio, CreateBucket
, ListObjectsV2
e PutBucketPolicy
. Le azioni di policy S3 per le operazioni sui bucket richiedono che l'elemento Resource
nelle policy sui bucket o nelle policy basate sull'identità IAM sia l'identificatore nome della risorsa Amazon (ARN) del tipo di bucket S3 nel seguente formato di esempio.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
"
La seguente policy di bucket concede all'utente
con l'account Akua
l'autorizzazione 12345678901
s3:ListBucket
per eseguire l'operazione ListObjectsV2 e di elencare gli oggetti in un bucket S3.
{ "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:::amzn-s3-demo-bucket
" } ] }
Operazioni di bucket nelle policy dei punti di accesso
Le autorizzazioni concesse in una policy del punto di accesso sono efficaci solo se il bucket sottostante consente le stesse autorizzazioni. Quando si utilizzano i punti di accesso S3, è necessario delegare il controllo dell'accesso dal bucket al punto di accesso o aggiungere le stesse autorizzazioni nelle policy dei punti di accesso alle policy del bucket sottostante. Per ulteriori informazioni, consulta Configurazione dei criteri IAM per l'utilizzo degli access point. Nelle policy dei punti di accesso, le azioni delle policy S3 per le operazioni sui bucket richiedono l'utilizzo dell'ARN del punto di accesso per l'elemento Resource
nel seguente formato.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La seguente policy del punto di accesso concede all'utente
con l'account Akua
il permesso 12345678901
s3:ListBucket
di eseguire l'operazione API ListObjectsV2 attraverso il punto di accesso S3 denominato
. Questo permesso consente a example-access-point
di elencare gli oggetti nel bucket associato a Akua
. example-access-point
{ "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/example-access-point
" } ] }
Nota
Non tutte le operazioni di bucket sono supportate dal punto di accesso S3. Per ulteriori informazioni, consulta Compatibilità dell'access point con le operazioni S3.
Operazioni con gli oggetti
Le operazioni sugli oggetti sono operazioni API S3 che agiscono sul tipo di risorsa oggetto. Ad esempio, GetObject
, PutObject
e DeleteObject
. Le azioni delle policy S3 per le operazioni sugli oggetti richiedono che l'elemento Resource
nelle policy sia l'ARN dell'oggetto S3 nei seguenti formati di esempio.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*"
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/prefix
/*"
Nota
L'ARN dell'oggetto deve contenere una barra in avanti dopo il nome del bucket, come visto negli esempi precedenti.
La seguente policy del bucket concede all'utente
con l'account Akua
l'autorizzazione 12345678901
s3:PutObject
. Questa autorizzazione consente a
di utilizzare l'operazione PutObject per caricare oggetti nel bucket S3 denominato Akua
.amzn-s3-demo-bucket
{ "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:::amzn-s3-demo-bucket
/*" } ] }
Operazioni sugli oggetti nelle policy dei punti di accesso
Quando si utilizzano i punti di accesso S3 per controllare l'accesso alle operazioni sugli oggetti, è possibile utilizzare le policy dei punti di accesso. Quando si utilizzano le policy dei punti di accesso, le azioni delle policy S3 per le operazioni sugli oggetti richiedono l'utilizzo dell'ARN del punto di accesso per l'elemento Resource
nel seguente formato: arn:aws:s3:
. Per le operazioni sugli oggetti che utilizzano punti di accesso, è necessario includere il valore region
:account-id
:accesspoint/access-point-name
/object/resource
/object/
dopo l'intero ARN del punto di accesso nell'elemento Resource
. Ecco alcuni esempi.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/*"
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/prefix
/*"
La seguente policy del punto di accesso concede all'utente
con l'account Akua
l'autorizzazione 12345678901
s3:GetObject
. Questa autorizzazione consente a
di eseguire l'operazione GetObject attraverso il punto di accesso denominato Akua
su tutti gli oggetti del bucket associato al punto di accesso. example-access-point
{ "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/example-access-point
/object/*" } ] }
Nota
Non tutte le operazioni sugli oggetti sono supportate dai punti di accesso. Per ulteriori informazioni, consulta Compatibilità dell'access point con le operazioni S3.
Operazioni sui punti di accesso
Le operazioni sui punti di accesso sono operazioni API S3 che operano sul tipo di risorsa accesspoint
. Ad esempio, CreateAccessPoint
, DeleteAccessPoint
e GetAccessPointPolicy
. Le azioni delle policy S3 per le operazioni sui punti di accesso possono essere utilizzate solo nelle policy IAM basate sull'identità, non nelle policy di bucket o punti di accesso. Le operazioni sui punti di accesso richiedono che l'elemento Resource
sia l'ARN del punto di accesso nel seguente formato di esempio.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La seguente policy IAM basata sull'identità concede all'indirizzo s3:GetAccessPointPolicy
il permesso di eseguire l'operazione GetAccessPointPolicy sul punto di accesso S3 denominato
.example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/example-access-point
" } ] }
Quando si usano i punti di accesso, per controllare l'accesso alle operazioni sui bucket, consulta Operazioni di bucket nelle policy dei punti di accesso; per controllare l'accesso alle operazioni sugli oggetti, consulta Operazioni sugli oggetti nelle policy dei punti di accesso. Per ulteriori informazioni su come configurare le policy dei punti di accesso, consulta Configurazione dei criteri IAM per l'utilizzo degli access point.
Operazioni sui punti di accesso Lambda per oggetti
Con Lambda per oggetti Amazon S3, è possibile aggiungere il proprio codice alle richieste di Amazon S3 GET
, LIST
e HEAD
per modificare ed elaborare i dati mentre vengono restituiti a un'applicazione. È possibile effettuare richieste attraverso un punto di accesso Lambda per oggetti, che funziona come le richieste attraverso altri punti di accesso. Per ulteriori informazioni, consulta Trasformazione di oggetti con S3 Object Lambda.
Per ulteriori informazioni su come configurare le policy per le operazioni sui punti di accesso Lambda per oggetti, consulta Configurazione dei criteri IAM per gli access point Object Lambda.
Operazioni con punti di accesso multiregionali
Un punto di accesso multiregionale fornisce un endpoint globale che le applicazioni possono utilizzare per soddisfare le richieste dai bucket S3 situati in più Regione AWS. È possibile utilizzare un punto di accesso multiregionale per creare applicazioni multiregionali con la stessa architettura utilizzata in una singola Regione ed eseguirle in qualsiasi parte del mondo. Per ulteriori informazioni, consulta Gestione del traffico multi-regione con punti di accesso multi-regione.
Per ulteriori informazioni su come configurare le policy per le operazioni dei punti di accesso multiregionali, consulta Esempi di policy dei punti di accesso multi-regione.
Operazioni di processo in batch
(Operazioni in batch) Le operazioni di processo sono operazioni API S3 che operano sul tipo di risorsa di processo, ad esempio DescribeJob
e CreateJob
. Le azioni delle policy S3 per le operazioni di processo possono essere utilizzate solo nelle policy basate sull'identità IAM, non nelle policy dei bucket. Inoltre, le operazioni di processo richiedono che l'elemento Resource
nelle policy basate sull'identità IAM sia l'ARN di job
nel seguente formato di esempio.
"Resource": "arn:aws:s3:*:
123456789012
:job/*"
La seguente policy IAM basata sull'identità concede all'utente s3:DescribeJob
l'autorizzazione a eseguire l'operazione API DescribeJob sul processo di Operazioni in batch S3 denominato
.example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/example-job
" } ] }
Operazioni di configurazione dell'Storage Lens S3
Per ulteriori informazioni su come configurare le operazioni di configurazione di S3 Storage Lens, consulta Impostazione delle autorizzazioni di Amazon S3 Storage Lens.
Operazioni sugli account
Le operazioni sugli 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 S3 per le operazioni sugli account possono essere utilizzate solo nelle policy basate sull'identità IAM, non nelle policy dei bucket. Inoltre, le operazioni sugli account richiedono che l'elemento Resource
nelle policy IAM basate sull'identità sia "*"
.
La seguente policy IAM basata sull'identità concede all'indirizzo s3:GetAccountPublicAccessBlock
l'autorizzazione a eseguire l'operazione API a livello di account e a recuperare le impostazioni del blocco di accesso pubblico a livello di account GetPublicAccessBlock e recuperare le impostazioni del blocco di accesso pubblico 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
-
Per visualizzare esempi di policy basate sull'identità di Amazon S3, consulta Policy basate sull'identità per Amazon S3.
-
Per visualizzare esempi di policy basate sulle risorse di Amazon S3, consulta Policy dei bucket per Amazon S3 e Configurazione dei criteri IAM per l'utilizzo degli access point.
Risorse di policy per Amazon S3
Supporta le risorse di policy: sì
Gli amministratori possono utilizzare le policy JSON AWS per specificare gli accessi ai diversi elementi. In altre parole, quale principale può eseguire azioni su quali risorse e in quali condizioni.
L'elemento JSON Resource
della policy specifica l'oggetto o gli oggetti ai quali si applica l'operazione. Le istruzioni devono includere un elemento Resource
o un elemento NotResource
. Come best practice, specifica una risorsa usando il suo Amazon Resource Name (ARN). È possibile farlo per le azioni che supportano un tipo specifico di risorsa, note come autorizzazioni a livello di risorsa.
Per le azioni che non supportano i permessi a livello di risorsa, come ad esempio le operazioni di elenco, utilizzare un carattere jolly (*) per indicare che l'istruzione si applica a tutte le risorse.
"Resource": "*"
Alcune azioni API di Amazon S3 supportano più risorse. Ad esempio, s3:GetObject
accede a
e example-resource-1
, quindi un principale deve avere i permessi per accedere a entrambe le risorse. Per specificare più risorse in una singola istruzione, separa gli ARN con delle virgole, come mostrato nell'esempio seguente. example-resource-2
"Resource": [ "
example-resource-1
", "example-resource-2
"
Le risorse in Amazon S3 sono bucket, oggetti, punti di accesso o processi. In una policy, utilizzare il nome della risorsa Amazon (ARN) del bucket, dell'oggetto, del punto di accesso o del processo per identificare la risorsa.
Per un elenco completo dei tipi di risorse Amazon S3 e dei relativi ARN, consulta Risorse definite da Amazon S3 nel Riferimento alle autorizzazioni di servizio. Per sapere con quali azioni è possibile specificare l'ARN di ogni risorsa, consulta Azioni definite da Amazon S3.
Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.
Caratteri jolly negli ARN delle risorse
È possibile utilizzare caratteri jolly come parte dell'ARN della risorsa. È possibile utilizzare i caratteri jolly (*
e ?
) all'interno di qualsiasi segmento ARN (le parti separate dai due punti). Un asterisco (*
) rappresenta qualsiasi combinazione di zero o più caratteri, mentre un punto interrogativo (?
) rappresenta qualsiasi singolo carattere. È possibile utilizzare più caratteri *
o ?
in ogni segmento. Tuttavia, un carattere jolly non può essere esteso a più segmenti.
-
Il seguente ARN utilizza il carattere jolly
*
nella parterelative-ID
dell'ARN per identificare tutti gli oggetti nel bucket
.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
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 parterelative-ID
. Questo ARN identifica tutti gli oggetti in bucket come
,amzn-s3-demo-example1bucket
,amzn-s3-demo-example2bucket
, e così via.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Variabili di policy per gli ARN delle risorse
È possibile utilizzare le variabili di criterio negli ARN di Amazon S3. Al momento della valutazione della policy, queste variabili predefinite vengono sostituite dai valori corrispondenti. Supponiamo di organizzare il bucket come una raccolta di cartelle, con una cartella per ogni utente. Il nome della cartella è lo stesso del nome utente. Per concedere agli utenti l'autorizzazione alle loro cartelle, è possibile specificare una variabile di criterio 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}
nell'ARN della risorsa viene sostituita con il nome utente della persona che sta effettuando la richiesta.
Esempi di policy per Amazon S3
-
Per visualizzare esempi di policy basate sull'identità di Amazon S3, consulta Policy basate sull'identità per Amazon S3.
-
Per visualizzare esempi di policy basate sulle risorse di Amazon S3, consulta Policy dei bucket per Amazon S3 e Configurazione dei criteri IAM per l'utilizzo degli access point.
Chiavi di condizione per Amazon S3
Supporta le chiavi di condizione delle policy specifiche del servizio: sì
Gli amministratori possono utilizzare le policy JSON AWS per specificare gli accessi ai diversi elementi. In altre parole, 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 AWSutilizzando un'operazione AND
logica. Se specifichi più valori per una singola chiave di condizione, AWSvaluta la condizione utilizzando un'operazione OR
logica. 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 dei criteri IAM: variabili e tag nella Guida all'utente IAM.
AWS supporta chiavi di condizione globali e chiavi di condizione specifiche per il servizio. Per consulta tutte le chiavi di condizione globale AWS, consulta le chiavi di contesto di condizione globale AWS nella Guida all'utente IAM.
Ciascuna chiave di condizione di Amazon S3 corrisponde all'intestazione della richiesta con lo stesso nome consentito dall'API su cui può essere impostata la condizione. Le chiavi di condizione specifiche di Amazon S3 dettano il comportamento delle intestazioni di richiesta dello stesso nome. Ad esempio, la chiave di condizione s3:VersionId
usata per concedere l'autorizzazione condizionale per l'autorizzazione s3:GetObjectVersion
definisce il comportamento del parametro di query versionId
impostato in una richiesta GET Object.
Per un elenco delle chiavi di condizione di Amazon S3, consulta Chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio. Per sapere con quali azioni e risorse è possibile utilizzare una chiave di condizione, consulta Azioni definite da Amazon S3.
Esempio: limitazione del caricamento di oggetti a oggetti con una classe di storage specifica
Si supponga che il conto A, rappresentato dall'ID dell'account
, possieda un bucket. L'amministratore dell'account A vuole limitare 123456789012
, un utente dell'account A, in modo che Dave
possa caricare oggetti nel bucket solo se l'oggetto è memorizzato nella classe di storage Dave
STANDARD_IA
. Per limitare il caricamento di oggetti a una classe di archiviazione specifica, l'amministratore dell'account A può utilizzare la chiave di condizione s3:x-amz-storage-class
, come mostrato nel seguente esempio di criterio del bucket.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave
" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-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 specificata, "s3:x-amz-acl":["public-read"]
. Esiste un insieme predefinito di chiavi che possono essere utilizzate nell'espressione di una condizione. L'esempio utilizza il tasto di condizione s3:x-amz-acl
. Questa condizione richiede che l'utente includa l'intestazione x-amz-acl
con il valore public-read
in ogni richiesta PutObject
.
Esempi di policy per Amazon S3
-
Per visualizzare esempi di policy basate sull'identità di Amazon S3, consulta Policy basate sull'identità per Amazon S3.
-
Per visualizzare esempi di policy basate sulle risorse di Amazon S3, consulta Policy dei bucket per Amazon S3 e Configurazione dei criteri IAM per l'utilizzo degli access point.
ACL in Amazon S3
Supporta le ACL: Sì
In Amazon S3, le liste di controllo degli accessi (ACL) controllano quali Account AWS hanno le autorizzazioni per accedere a una risorsa. Le ACL sono simili alle policy basate sulle risorse, anche se non utilizzano il formato del documento di policy JSON.
Importante
La maggior parte dei casi d'uso moderni di Amazon S3 non richiede più l'uso di ACL.
Per informazioni sull'uso delle ACL per controllare l'accesso in Amazon S3, consulta Gestione degli accessi con le ACL.
ABAC con Amazon S3
Supporta ABAC (tag nelle policy): parzialmente
Il controllo dell'accesso basato sugli attributi (ABAC) è una strategia di autorizzazione che definisce i permessi in base agli attributi. In AWS, tali attributi sono denominati tag. È possibile collegare dei tag alle entità IAM (utenti o ruoli) e a numerose risorse AWS. 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/
o key-name
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 risorse, il valore è Parziale.
Per ulteriori informazioni su ABAC, consulta Definizione delle autorizzazioni con autorizzazione ABAC nella Guida per l'utente IAM. Per visualizzare un'esercitazione con i passaggi per l'impostazione di ABAC, consulta Utilizza il controllo degli accessi basato sugli attributi (ABAC) nella Guida all'utente IAM.
Per visualizzare esempi di policy basate sull'identità per limitare l'accesso ai processi di Operazioni in batch S3 in base ai tag, consulta Controllo delle autorizzazioni per le operazioni in batch utilizzando i tag di processo.
ABAC e tag degli oggetti
Nelle policy ABAC, gli oggetti utilizzano i tag s3:
invece dei tag aws:
. Per controllare l'accesso agli oggetti in base ai tag degli oggetti, si forniscono informazioni sui tag nell'elemento Condition di una policy utilizzando i seguenti tag:
-
s3:ExistingObjectTag/
tag-key
-
s3:RequestObjectTagKeys
-
s3:RequestObjectTag/
tag-key
Per informazioni sull'uso dei tag degli oggetti per controllare l'accesso, comprese le policy di autorizzazione di esempio, consulta Criteri di tag e controllo degli accessi.
Utilizzo di credenziali temporanee con Amazon S3
Supporta le credenziali temporanee: sì
Alcuni Servizi AWS non funzionano quando si accede utilizzando credenziali temporanee. Per ulteriori informazioni, inclusi i Servizi AWSche funzionano con le credenziali temporanee, consulta Servizi AWSsupportati da IAM nella Guida per l'utente IAM.
Le credenziali temporanee sono utilizzate se si accede alla AWS Management Consoleutilizzando qualsiasi metodo che non sia la combinazione di nome utente e password. Ad esempio, quando accedi alla AWSutilizzando il collegamento Single Sign-On (SSO) della tua azienda, tale processo crea in automatico credenziali temporanee. Le credenziali temporanee vengono create automaticamente anche quando si accede alla console come utente e poi si cambia ruolo. Per ulteriori informazioni sullo scambio dei ruoli, consulta Passaggio da un ruolo utente a un ruolo IAM (console) nella Guida per l'utente IAM.
È possibile creare manualmente credenziali temporanee utilizzando la AWS CLI o l'API AWS. È quindi possibile utilizzare tali credenziali temporanee per accedere ad AWS. AWSconsiglia di generare le credenziali temporanee dinamicamente anziché utilizzare chiavi di accesso a lungo termine. Per ulteriori informazioni, consulta Credenziali di sicurezza temporanee in IAM.
Sessioni di accesso in avanti per Amazon S3
Supporta le sessioni di accesso in avanti (FAS): Sì
Quando si utilizza un utente o un ruolo IAM per eseguire azioni in AWS, si è considerati un responsabile. Quando si utilizzano alcuni servizi, è possibile eseguire un'azione che attiva un'altra azione in un servizio diverso. La tecnologia FAS utilizza le autorizzazioni del principale che effettua la chiamata a un Servizio AWS, combinate con la richiesta di un Servizio AWS per effettuare richieste a servizi downstream. Le richieste FAS vengono effettuate solo quando un servizio riceve una richiesta che comporta 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 Forward access sessions.
FAS viene utilizzato da Amazon S3 per effettuare chiamate a AWS KMS per decifrare un oggetto quando è stato utilizzato SSE-KMS per crittografarlo. Per ulteriori informazioni, consulta Utilizzo della crittografia lato server con chiavi AWS KMS (SSE-KMS).
Anche S3 Access Grants utilizza il FAS. Dopo aver creato una concessione di accesso ai dati S3 per una particolare identità, il beneficiario della concessione richiede una credenziale temporanea a S3 Access Grants. S3 Access Grants ottiene una credenziale temporanea per il richiedente da AWS STS e la distribuisce al richiedente. 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: sì
Un ruolo di servizio è un ruolo IAM che un servizio assume per eseguire azioni per conto dell'utente. Un amministratore IAM può creare, modificare ed eliminare un ruolo di servizio dall'interno di IAM. Per ulteriori informazioni, consulta la sezione Create a role to delegate permissions to an Servizio AWS nella Guida per l'utente IAM.
avvertimento
La modifica delle autorizzazioni per un ruolo di servizio potrebbe interrompere la funzionalità di Amazon S3. Modifica i ruoli di servizio solo quando Amazon S3 fornisce indicazioni in tal senso.
Ruoli collegati al servizio per Amazon S3
Supporta i ruoli legati ai servizi: Parziale
Un ruolo collegato a un servizio è un tipo di ruolo di servizio collegato a Servizio AWS. Il servizio può assumere il ruolo per eseguire un'azione per tuo conto. I ruoli collegati ai servizi sono visualizzati nell'account Account AWSe sono di proprietà del servizio. Un amministratore IAM può visualizzare le autorizzazioni per i ruoli collegati ai servizi, ma non modificarle.
Amazon S3 supporta ruoli legati ai servizi per Amazon S3 Storage Lens. Per informazioni dettagliate sulla creazione o sulla gestione dei ruoli legati al servizio Amazon S3, consulta Utilizzo di ruoli collegati ai servizi per Amazon S3 Storage Lens.
Servizio Amazon S3 come principale
Nome del servizio nella policy | Funzione S3 | Ulteriori informazioni |
---|---|---|
|
S3 Replication |
Panoramica della configurazione della replica in tempo reale |
|
Notifiche di eventi S3 |
|
|
Inventario S3 |
|
|
S3 Access Grants |
|
|
Operazioni in batch S3 |
|
|
S3 Server Access Logging |
Abilitazione della registrazione degli accessi al server Amazon S3 |
|
S3 Storage Lens |
Visualizzazione delle metriche di Amazon S3 Storage Lens tramite un'esportazione di dati |