Risoluzione dei problemi relativi agli errori di accesso negato (403 Forbidden) in Amazon S3
Gli errori di accesso negato (HTTP 403 Forbidden
) appaiono quando AWS nega esplicitamente o implicitamente una richiesta di autorizzazione.
-
Un rifiuto esplicito si verifica quando una policy contiene una dichiarazione
Deny
per l'azione specifica AWS. -
Un rifiuto implicito si verifica quando non esiste una dichiarazione
Deny
applicabile e nemmeno una dichiarazioneAllow
applicabile.
Poiché una policy AWS Identity and Access Management (IAM) nega implicitamente un principale IAM per impostazione predefinita, la policy deve consentire esplicitamente al principale di eseguire un'azione. Altrimenti, il criterio nega implicitamente l'accesso. Per ulteriori informazioni, consulta la sezione Differenza tra rifiuti espliciti e impliciti nella Guida all'utente IAM. Per informazioni sulla logica di valutazione delle policy che determina se una richiesta di accesso è consentita o negata, consulta Logica di valutazione delle policy 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.
I seguenti argomenti trattano le cause più comuni degli errori di accesso negato in Amazon S3.
Nota
Per gli errori di accesso negato (HTTP 403 Forbidden
), Amazon S3 non addebita alcun costo al proprietario del bucket quando la richiesta viene avviata al di fuori dell'account individuale del proprietario del bucket AWS o dell'organizzazione del proprietario del bucket AWS.
Argomenti
- Esempi di messaggi di accesso negato e di risoluzione dei problemi
- Criteri dei bucket e criteri IAM
- Impostazioni ACL di Amazon S3
- Impostazioni di S3 Block Public Access
- Impostazioni di crittografia di Amazon S3
- Impostazioni dell'opzione S3 Blocco oggetti
- Criteri endpoint VPC
- Criteri AWS Organizations
- Impostazioni dell'access point
Nota
Se si sta cercando di risolvere un problema di permessi, inizia dalla sezione Esempi di messaggi di accesso negato e di risoluzione dei problemi, quindi passa alla sezione Criteri dei bucket e criteri IAM. Assicurati inoltre di seguire le indicazioni contenute in Suggerimenti per la verifica delle autorizzazioni.
Esempi di messaggi di accesso negato e di risoluzione dei problemi
Amazon S3 ora include un contesto aggiuntivo negli errori di accesso negato (HTTP 403
Forbidden
) per le richieste effettuate a risorse all'interno dello stesso Account AWS. Questo nuovo contesto include il tipo di policy che ha negato l'accesso, il motivo del rifiuto e le informazioni sull'utente o sul ruolo IAM che ha richiesto l'accesso alla risorsa.
Questo contesto aggiuntivo aiuta a risolvere i problemi di accesso, a identificare la causa principale degli errori di accesso negato e a correggere i controlli di accesso errati aggiornando le policy pertinenti. Questo contesto aggiuntivo è disponibile anche nei log di AWS CloudTrail. Messaggi di errore di accesso negato migliorati per le richieste dello stesso account sono ora disponibili in tutte le Regioni AWS, comprese AWS GovCloud (US) Regions e le Regioni della Cina.
La maggior parte dei messaggi di errore di accesso negato appare nel formato User
. In questo esempio, user-arn
is not authorized to perform
action
on "resource-arn
"
because context
è il nome della risorsa Amazon (ARN) dell'utente che non riceve l'accesso, user-arn
è l'azione di servizio che la policy nega e action
è l'ARN della risorsa su cui agisce la policy. Il campo resource-arn
rappresenta un contesto aggiuntivo sul tipo di policy che spiega perché la policy ha negato l'accesso.context
Quando una policy nega esplicitamente l'accesso perché contiene un'istruzione Deny
, il messaggio di errore di accesso negato include la frase with an
explicit deny in a
. Quando la policy nega implicitamente l'accesso, il messaggio di errore di accesso negato include la frase type
policybecause no
.type
policy allows the
action
action
Importante
-
I messaggi di accesso migliorato negato vengono restituiti solo per le richieste dello stesso account. Le richieste incrociate restituiscono un messaggio generico
Access Denied
.Per informazioni sulla logica di valutazione delle policy che determina se una richiesta di accesso multi-account è consentita o negata, consulta Logica di valutazione delle policy di accesso a più account nella Guida all'utente IAM. Per una guida che mostra come concedere l'accesso multi-account, consulta Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount.
-
I messaggi di errore di accesso negato non vengono restituiti per le richieste effettuate ai bucket di directory. Le richieste di directory bucket restituiscono un messaggio generico
Access Denied
. -
Se più policy dello stesso tipo negano una richiesta di autorizzazione, il messaggio di errore Accesso negato non specifica il numero di policy.
-
Se più tipi di policy negano una richiesta di autorizzazione, il messaggio di errore include solo uno di questi tipi di policy.
-
Se una richiesta di accesso viene rifiutata per più motivi, il messaggio di errore include solo uno dei motivi del rifiuto.
Gli esempi seguenti mostrano il formato dei diversi tipi di messaggi di errore di accesso negato e come risolvere i problemi di ciascun tipo di messaggio.
Accesso negato a causa di una policy di controllo delle risorse - rifiuto esplicito
-
Verifica la presenza di un'istruzione
Deny
relativa all'operazione nelle tue policy di controllo delle risorse (RCP). Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la tua RCP rimuovendo l'istruzione
Deny
. Per ulteriori informazioni, consulta Aggiornamento di una policy di controllo delle risorse (RCP) nella Guida all'utente AWS Organizations.
An error occurred (AccessDenied) when calling the GetObject operation: User: arn:aws:iam::
777788889999
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in a resource control policy
Accesso negato a causa di un criterio di controllo dei servizi - rifiuto implicito
-
Verifica un'istruzione
Allow
mancante relativa all'operazione nelle tue policy di controllo dei servizi. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la tua SCP aggiungendo l'istruzione
Allow
. Per ulteriori informazioni, consulta Aggiornamento di un SCP nella Guida all'utente AWS Organizations.
User: arn:aws:iam::
777788889999
:user/MaryMajor
is not authorized to perform: s3:GetObject because no service control policy allows the s3:GetObject action
Accesso negato a causa di una policy di controllo dei servizi: diniego esplicito
-
Verifica la presenza di un'istruzione
Deny
relativa all'operazione nelle tue policy di controllo dei servizi (SCP). Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la tua SCP modificando l'istruzione
Deny
per consentire all'utente l'accesso necessario. Per un esempio di come si può fare, consulta Impedire agli utenti e ai ruoli IAM di apportare modifiche specifiche, con un'eccezione per un ruolo di amministratore specificato, nella Guida all'utente AWS Organizations. Per ulteriori informazioni sull'aggiornamento dell'SCP, consulta Aggiornamento di un SCP nella Guida all'utente di AWS Organizations.
User: arn:aws:iam::
777788889999
:user/MaryMajor
is not authorized to perform: s3:GetObject with an explicit deny in a service control policy
Accesso negato a causa di un criterio dell'endpoint VPC - rifiuto implicito
-
Verificare la mancanza di un'istruzione
Allow
per l'azione nelle policy degli endpoint del cloud privato virtuale (VPC). Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la tua policy sugli endpoint VPC aggiungendo l'iistruzione
Allow
. Per ulteriori informazioni, consulta Aggiornamento di una policy dell'endpoint VPC nella AWS PrivateLinkGuida.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject because no VPC endpoint policy allows the s3:GetObject action
Accesso negato a causa di una policy dell'endpoint VPC: diniego esplicito
-
Verifica la presenza di un'istruzione esplicita
Deny
per l'azione nelle policy dell'endpoint del cloud privato virtuale (VPC). Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiornare la policy dell'endpoint VPC modificando l'istruzione
Deny
per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzioneDeny
per utilizzare la chiave di condizioneaws:PrincipalAccount
con l'operatore di condizioneStringNotEquals
per consentire l'accesso al principale specifico, come mostrato in Esempio 7: Esclusione di alcuni principali da un'istruzione Deny. Per ulteriori informazioni sull'aggiornamento delle policy degli endpoint VPC, consulta Aggiornamento di una policy degli endpoint VPC nella Guida a AWS PrivateLink.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in a VPC endpoint policy
Accesso negato a causa di un limite di autorizzazioni - rifiuto implicito
-
Verifica la presenza di un'istruzione
Allow
mancante relativa all'azione nel limite delle autorizzazioni. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiornare il confine delle autorizzazioni aggiungendo la dichiarazione
Allow
al criterio IAM. Per ulteriori informazioni, consulta Limiti delle autorizzazioni per le entità IAM e Modifica delle policy IAM nella Guida dell'utente IAM.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" because no permissions boundary allows the s3:GetObject action
Accesso negato a causa di un limite di autorizzazioni - rifiuto esplicito
-
Verifica la presenza di un'istruzione
Deny
esplicita relativa all'azione nel limite delle autorizzazioni. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiornare il limite delle autorizzazioni modificando l'istruzione
Deny
nella policy IAM per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzioneDeny
per utilizzare la chiave di condizioneaws:PrincipalAccount
con l'operatore di condizioneStringNotEquals
per consentire l'accesso al principale specifico, come mostrato in aws:PrincipalAccount nella Guida all'utente IAM. Per ulteriori informazioni, consulta Limiti delle autorizzazioni per le entità IAM e Modifica delle policy IAM nella Guida dell'utente IAM.
User: arn:aws:iam::
777788889999
:user/MaryMajor
is not authorized to perform: s3:GetObject with an explicit deny in a permissions boundary
Accesso negato a causa dei criteri di sessione - rifiuto implicito
-
Verifica la presenza di un'istruzione
Allow
mancante relativa all'azione nelle tue policy di sessione. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna il criterio di sessione aggiungendo l'istruzione
Allow
. Per ulteriori informazioni, consulta Policy di sessione e Modifica delle policy IAM nella Guida all'utente IAM.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject because no session policy allows the s3:GetObject action
Accesso negato a causa dei criteri di sessione - rifiuto esplicito
-
Verifica la presenza di un'istruzione
Deny
esplicita relativa all'azione nelle tue policy di sessione. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiornare la policy di sessione modificando l'istruzione
Deny
per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzioneDeny
per utilizzare la chiave di condizioneaws:PrincipalAccount
con l'operatore di condizioneStringNotEquals
per consentire l'accesso al principale specifico, come mostrato in Esempio 7: Esclusione di alcuni principali da un'istruzione Deny. Per ulteriori informazioni sull'aggiornamento delle policy di sessione, consulta Policy di sessione e Modifica delle policy IAM nella Guida all'utente IAM.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in a session policy
Accesso negato a causa di policy basate sulle risorse - negazione implicita
Nota
Per policy basate sulle risorse si intendono policy come quelle relative ai bucket e ai punti di accesso.
-
Controlla che non manchi una dichiarazione
Allow
per l'azione nella tua policy basata sulle risorse. Controlla anche se l'impostazioneIgnorePublicAcls
di Blocco dell'accesso pubblico S3 è applicata a livello di bucket, punto di accesso o account. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la tua policy aggiungendo l'istruzione
Allow
. Per ulteriori informazioni, consulta Policy basate sulle risorse e Modifica delle policy IAM nella Guida all'utente IAM.Potrebbe anche essere necessario modificare l'impostazione
IgnorePublicAcls
di Blocco dell'accesso pubblico per il bucket, il punto di accesso o l'account. Per ulteriori informazioni, consulta Accesso negato a causa delle impostazioni di Blocco accesso pubblico e Configurazione delle impostazioni di blocco dell'accesso pubblico per i bucket S3.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject because no resource-based policy allows the s3:GetObject action
Accesso negato a causa di policy basate sulle risorse - rifiuto esplicito
Nota
Per policy basate sulle risorse si intendono policy come quelle relative ai bucket e ai punti di accesso.
-
Verificare la presenza di una dichiarazione esplicita di
Deny
per l'azione nella policy basata sulle risorse. Controlla anche se l'impostazioneRestrictPublicBuckets
di Blocco dell'accesso pubblico S3 è applicata a livello di bucket, punto di accesso o account. Nell'esempio seguente, l'azione ès3:GetObject
. -
Aggiorna la policy modificando l'istruzione
Deny
per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzioneDeny
per utilizzare la chiave di condizioneaws:PrincipalAccount
con l'operatore di condizioneStringNotEquals
per consentire l'accesso al principale specifico, come mostrato in Esempio 7: Esclusione di alcuni principali da un'istruzione Deny. Per ulteriori informazioni sull'aggiornamento della policy basata sulle risorse, consulta Policy basate sulle risorse e Modifica delle policy IAM nella Guida all'utente IAM.Potrebbe anche essere necessario modificare l'impostazione
RestrictPublicBuckets
di Blocco dell'accesso pubblico per il bucket, il punto di accesso o l'account. Per ulteriori informazioni, consulta Accesso negato a causa delle impostazioni di Blocco accesso pubblico e Configurazione delle impostazioni di blocco dell'accesso pubblico per i bucket S3.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in a resource-based policy
Accesso negato a causa di policy basate sull'identità - rifiuto implicito
-
Controlla se manca una dichiarazione
Allow
per l'azione nelle policy basate sull'identità collegate all'identità. Nell'esempio seguente, l'azione ès3:GetObject
collegata all'utenteMaryMajor
. -
Aggiorna la tua policy aggiungendo l'istruzione
Allow
. Per ulteriori informazioni, consulta Policy basate sull'identità e Modifica delle policy IAM nella Guida dell'utente IAM.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject because no identity-based policy allows the s3:GetObject action
Accesso negato a causa di policy basate sull'identità - rifiuto esplicito
-
Verificare la presenza di una dichiarazione esplicita
Deny
per l'azione nelle policy basate sull'identità collegate all'identità. Nell'esempio seguente, l'azione ès3:GetObject
collegata all'utenteMaryMajor
. -
Aggiorna la policy modificando l'istruzione
Deny
per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzioneDeny
per utilizzare la chiave di condizioneaws:PrincipalAccount
con l'operatore di condizioneStringNotEquals
per consentire l'accesso al principale specifico, come mostrato in aws:PrincipalAccount nella Guida all'utente IAM. Per ulteriori informazioni, consulta Policy basate sull'identità e Modifica delle policy IAM nella Guida dell'utente IAM.
User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in an identity-based policy
Accesso negato a causa delle impostazioni di Blocco accesso pubblico
La funzione Blocco dell'accesso pubblico Amazon S3 fornisce le impostazioni per i punti di accesso, i bucket e gli account per aiutare a gestire l'accesso pubblico alle risorse Amazon S3. Per ulteriori informazioni su come Amazon S3 definisce il termine "pubblico", consulta Significato di "pubblico".
Per impostazione predefinita, i nuovi bucket, punti di accesso e oggetti non consentono l'accesso pubblico. Tuttavia, gli utenti possono modificare le policy di bucket, le policy di punto di accesso, le policy utente IAM, le autorizzazioni degli oggetti o le liste di controllo degli accessi (ACL) per consentire l'accesso pubblico. Le impostazioni di Blocco dell'accesso pubblico S3 annullano queste policy, autorizzazioni e ACL. Da aprile 2023, tutte le impostazioni di Blocco dell'accesso pubblico sono attivate per impostazione predefinita per i nuovi bucket.
Quando Amazon S3 riceve una richiesta di accesso a un bucket o a un oggetto, determina se al bucket o all'account del proprietario del bucket è applicata un'impostazione di accesso pubblico in blocco. Se la richiesta è stata effettuata tramite un punto di accesso, Amazon S3 controlla anche la presenza di impostazioni di blocco dell'accesso pubblico per il punto di accesso. Se è presente un'impostazione di blocco dell'accesso pubblico che vieta l'accesso richiesto, Amazon S3 rifiuta la richiesta.
Il blocco dell'accesso pubblico di Amazon S3 comprende quattro impostazioni. Queste impostazioni sono indipendenti e possono essere utilizzate in qualsiasi combinazione. Ogni impostazione può essere applicata a un access point, a un bucket o a un intero account AWS. Se le impostazioni di blocco dell'accesso pubblico per il punto di accesso, il bucket o l'account differiscono, Amazon S3 applica la combinazione più restrittiva di punto di accesso, bucket e account.
Quando Amazon S3 valuta se un'operazione è vietata da un'impostazione di accesso pubblico al blocco, rifiuta qualsiasi richiesta che violi l'impostazione di un punto di accesso, un bucket o un account.
Le quattro impostazioni fornite da Blocco dell'accesso pubblico Amazon S3 sono le seguenti:
-
BlockPublicAcls
- Questa impostazione si applica alle richiestePutBucketAcl
,PutObjectAcl
,PutObject
,CreateBucket
,CopyObject
ePOST Object
. L'impostazioneBlockPublicAcls
causa il seguente comportamento:-
PutBucketAcl
ePutObjectAcl
falliscono se la lista di controllo degli accessi (ACL) specificata è pubblica. -
PutObject
fallisce se la richiesta include una ACL pubblica. -
Se questa impostazione è applicata a un account, le chiamate
CreateBucket
hanno esito negativo con una risposta HTTP400
(Bad Request
) se la richiesta include un'ACL pubblica.
Ad esempio, quando l'accesso è negato per una richiesta
CopyObject
a causa dell'impostazioneBlockPublicAcls
, si riceve il seguente messaggio:An error occurred (AccessDenied) when calling the CopyObject operation: User: arn:aws:sts::
123456789012
:user/MaryMajor
is not authorized to perform: s3:CopyObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" because public access control lists (ACLs) are blocked by the BlockPublicAcls block public access setting. -
-
IgnorePublicAcls
- L'impostazioneIgnorePublicAcls
fa sì che Amazon S3 ignori tutte le ACL pubbliche su un bucket e sugli oggetti in esso contenuti. Se l'autorizzazione della richiesta è concessa solo da un ACL pubblico, l'impostazioneIgnorePublicAcls
rifiuta la richiesta.Qualsiasi negazione derivante dall'impostazione di
IgnorePublicAcls
è implicita. Ad esempio, seIgnorePublicAcls
nega una richiestaGetObject
a causa di una ACL pubblica, si riceve il seguente messaggio:User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject because no resource-based policy allows the s3:GetObject action -
BlockPublicPolicy
- Questa impostazione si applica alle richiestePutBucketPolicy
ePutAccessPointPolicy
.L'impostazione di
BlockPublicPolicy
per un bucket fa sì che Amazon S3 rifiuti le chiamate aPutBucketPolicy
se la policy del bucket specificata consente l'accesso pubblico. Questa impostazione fa sì che Amazon S3 rifiuti anche le chiamate aPutAccessPointPolicy
per tutti i punti di accesso dello stesso account del bucket, se la policy specificata consente l'accesso pubblico.Impostando
BlockPublicPolicy
per un punto di accesso, Amazon S3 rifiuta le chiamate aPutAccessPointPolicy
ePutBucketPolicy
effettuate attraverso il punto di accesso se la policy specificata (per il punto di accesso o il bucket sottostante) consente l'accesso pubblico.Ad esempio, quando l'accesso viene negato a una richiesta di
PutBucketPolicy
a causa dell'impostazioneBlockPublicPolicy
, si riceve il seguente messaggio:An error occurred (AccessDenied) when calling the PutBucketPolicy operation: User: arn:aws:sts::
123456789012
:user/MaryMajor
is not authorized to perform: s3:PutBucketPolicy on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" because public policies are blocked by the BlockPublicPolicy block public access setting. -
RestrictPublicBuckets
- L'impostazioneRestrictPublicBuckets
limita l'accesso a un punto di accesso o a un bucket con una policy pubblica solo ai principali di Servizio AWS e agli utenti autorizzati nell'ambito dell'account del proprietario del bucket e dell'account del proprietario del punto di accesso. Questa impostazione blocca l'accesso multi-account al punto di accesso o al bucket (tranne che per i principali del Servizio AWS), pur consentendo agli utenti dell'account di gestire il punto di accesso o il bucket. Questa impostazione rifiuta anche tutte le chiamate anonime (o non firmate).Qualsiasi negazione derivante dall'impostazione di
RestrictPublicBuckets
è esplicita. Ad esempio, seRestrictPublicBuckets
nega una richiesta diGetObject
a causa di un bucket pubblico o di una policy del punto di accesso, si riceve il seguente messaggio:User: arn:aws:iam::
123456789012
:user/MaryMajor
is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1
/object-name
" with an explicit deny in a resource-based policy
Per ulteriori informazioni su queste impostazioni, consulta Impostazioni di blocco dell'accesso pubblico. Per rivedere e aggiornare queste impostazioni, consulta Configurazione del blocco dell'accesso pubblico.
Criteri dei bucket e criteri IAM
Operazioni a livello di bucket
Se non ci sono policy per il bucket, il bucket consente implicitamente le richieste da qualsiasi identità AWS Identity and Access Management (IAM) nell'account del proprietario del bucket. Il bucket nega implicitamente anche le richieste provenienti da altre identità IAM di altri account e le richieste anonime (non firmate). Tuttavia, se non esiste una policy utente IAM, al richiedente (a meno che non sia l'utente root di Account AWS) viene implicitamente negata la possibilità di effettuare richieste. Per ulteriori informazioni su questa logica di valutazione, consulta Determinare se una richiesta è negata o consentita all'interno di un account nella Guida all'utente IAM.
Operazioni a livello di oggetti
Se l'oggetto è di proprietà dell'account proprietario del bucket, il criterio del bucket e il criterio dell'utente IAM funzioneranno allo stesso modo per le operazioni a livello di oggetto e per quelle a livello di bucket. Ad esempio, se non esiste una policy del bucket, il bucket consente implicitamente le richieste di oggetti da qualsiasi identità IAM nell'account del proprietario del bucket. Il bucket nega implicitamente anche le richieste di oggetti provenienti da altre identità IAM, da altri account e da richieste anonime (non firmate). Tuttavia, se non esiste una policy utente IAM, al richiedente (a meno che non sia l'utente root di Account AWS) viene implicitamente negata la possibilità di effettuare richieste di oggetti.
Se l'oggetto è di proprietà di un account esterno, l'accesso all'oggetto può essere concesso solo attraverso le liste di controllo dell'accesso all'oggetto (ACL). Il criterio del bucket e il criterio dell'utente IAM possono ancora essere utilizzati per negare le richieste di oggetti.
Pertanto, per assicurarsi che la policy del bucket o dell'utente IAM non provochi un errore di Accesso negato (403 Forbidden), verificare che siano soddisfatti i seguenti requisiti:
-
Per l'accesso con lo stesso account, non deve essere presente una dichiarazione esplicita
Deny
contro il richiedente a cui si sta cercando di concedere i permessi, né nel criterio del bucket né nel criterio dell'utente IAM. Se si desidera concedere le autorizzazioni utilizzando solo il criterio del bucket e il criterio dell'utente IAM, deve essere presente almeno una dichiarazione esplicitaAllow
in uno di questi criteri. -
Per l'accesso multi-account, non deve essere presente un'istruzione esplicita
Deny
contro il richiedente a cui si sta cercando di concedere le autorizzazioni, né nella policy del bucket né in quella dell'utente IAM. Per concedere le autorizzazioni per più account utilizzando solo la policy di bucket e la policy utente IAM, assicurati che sia la policy di bucket sia la policy utente IAM del richiedente includano un'istruzione esplicitaAllow
.
Nota
Le dichiarazioni Allow
di un criterio del bucket si applicano solo agli oggetti di proprietà dello stesso account proprietario del bucket. Tuttavia, le istruzioni Deny
in una policy di bucket si applicano a tutti gli oggetti indipendentemente dalla proprietà dell'oggetto.
Per rivedere o modificare la policy di bucket
Nota
Per visualizzare o modificare una policy di bucket, devi disporre dell'autorizzazione s3:GetBucketPolicy
.
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione sinistro, scegli Bucket.
-
Nell'elenco Bucket scegli il nome del bucket per il quale vuoi visualizzare o modificare una policy di bucket.
-
Scegli la scheda Autorizzazioni.
-
In Policy del bucket, scegli Modifica. Viene visualizzata la pagina Modifica la policy del bucket.
Per rivedere o modificare la policy di bucket utilizzando AWS Command Line Interface (AWS CLI), usa il comando get-bucket-policy
Nota
Se si viene bloccati da un bucket a causa di una policy di bucket errata, accedi a AWS Management Console utilizzando le credenziali dell'utente root di Account AWS. Per riottenere l'accesso al bucket, assicurarsi di eliminare la policy del bucket errato utilizzando le credenziali dell'utente root Account AWS.
Suggerimenti per la verifica delle autorizzazioni
Per verificare se il richiedente dispone delle autorizzazioni adeguate per eseguire un'operazione Amazon S3, prova quanto segue:
-
Identifica il richiedente. Se si tratta di una richiesta non firmata, allora è una richiesta anonima senza un criterio utente IAM. Se si tratta di una richiesta che utilizza un URL prefirmato, la policy utente è la stessa dell'utente o del ruolo IAM che ha firmato la richiesta.
-
Verifica che si stia utilizzando l'utente o il ruolo IAM corretto. Per verificare il ruolo o utente IAM, controlla nell'angolo in alto a destra della AWS Management Console o utilizza il comando aws sts get-caller-identity.
-
Controlla tutte le policy IAM collegate al ruolo o all'utente IAM. È possibile utilizzare uno dei seguenti metodi:
-
Esamina i vari tipi di policy IAM.
-
Se necessario, modifica la policy utente IAM.
-
Consulta i seguenti esempi di policy che negano o consentono esplicitamente l'accesso:
-
Policy utente IAM di autorizzazione esplicita: IAM: consente e rifiuta l'accesso a più servizi a livello di programmazione e nella console
-
Policy di bucket di autorizzazione esplicita: Concessione delle autorizzazioni a più account per caricare oggetti o impostare le ACL degli oggetti per l'accesso pubblico
-
Policy utente IAM di rifiuto esplicito: AWS: nega l'accesso ad AWS in base allaRegione AWS richiesta
-
Policy di bucket di rifiuto esplicito: Richiesta SSE-KMS per tutti gli oggetti scritti in un bucket
-
Impostazioni ACL di Amazon S3
Quando si verificano le impostazioni delle ACL, controlla innanzitutto l'impostazione Proprietà oggetto per verificare se le ACL sono abilitate sul bucket. Considera che le autorizzazioni ACL possono essere usate solo per concedere autorizzazioni e non possono essere usate per rifiutare richieste. Inoltre, le ACL non possono essere utilizzate per concedere l'accesso a richiedenti che sono rifiutati da dinieghi espliciti nelle policy dei bucket o nelle policy utente IAM.
L'impostazione della proprietà dell'oggetto è impostata sul proprietario del bucket
Se è abilitata l'impostazione Bucket owner enforced, è improbabile che le impostazioni ACL causino un errore di accesso negato (403 Accesso negato) perché questa impostazione disabilita tutte le ACL valide per il bucket e gli oggetti. Bucket owner enforced è l'impostazione predefinita (e consigliata) per i bucket Amazon S3.
L'opzione Proprietà dell'oggetto è impostata su Proprietario del bucket preferito o Autore dell'oggetto
Le autorizzazioni ACL continuano a essere valide con l'impostazione Proprietario del bucket preferito o Autore dell'oggetto. Esistono due tipi di ACL: le ACL dei bucket e le ACL degli oggetti. Per informazioni sulle differenze tra questi due tipi di ACL, consulta Mappatura delle autorizzazioni ACL e delle autorizzazioni della policy di accesso.
A seconda dell'azione della richiesta rifiutata, controlla le autorizzazioni ACL per il bucket o l'oggetto:
-
Se Amazon S3 ha rifiutato una richiesta di
LIST
,PUT
,GetBucketAcl
oPutBucketAcl
, controlla le autorizzazioni ACL per il bucket.Nota
Non è possibile concedere le autorizzazioni agli oggetti
GET
con le impostazioni ACL dei bucket. -
Se Amazon S3 ha rifiutato una richiesta di
GET
su un oggetto S3 o una richiesta di PutObjectAcl richiesta, controlla le autorizzazioni ACL per l'oggetto.Importante
Se l'account proprietario dell'oggetto è diverso dall'account proprietario del bucket, l'accesso all'oggetto non è controllato dalla policy di bucket.
Risoluzione di un errore di accesso negato (403 Accesso negato) derivante da una richiesta oggetto GET
durante la proprietà di un oggetto multi-account
Esamina le impostazioni dell'opzione Proprietà dell'oggetto del bucket per determinare il proprietario dell'oggetto. Se hai accesso alle ACL dell'oggetto, puoi anche controllare l'account del proprietario dell'oggetto. (Per visualizzare l'account del proprietario dell'oggetto, controlla l'impostazione ACL dell'oggetto nella console Amazon S3.) In alternativa, puoi anche eseguire una richiesta GetObjectAcl
per trovare l'ID canonico del proprietario dell'oggetto per verificare l'account del proprietario. Per impostazione predefinita, le ACL concedono autorizzazioni di tipo autorizzazione esplicita per le richieste GET
all'account del proprietario dell'oggetto.
Dopo aver verificato che il proprietario dell'oggetto sia diverso dal proprietario del bucket, a seconda del caso d'uso e del livello di accesso, scegli uno dei seguenti metodi per risolvere l'errore di accesso negato (403 Accesso negato):
-
Disabilitare le ACL (consigliato): questo metodo è valido per tutti gli oggetti e può essere eseguito dal proprietario del bucket. Questo metodo assegna automaticamente il ruolo di proprietario del bucket e il controllo completo su ogni oggetto in esso contenuto. Prima di implementare questo metodo, verifica i prerequisiti per la disabilitazione delle ACL. Per informazioni su come impostare il bucket su Bucket owner enforced (consigliata), consulta l'argomento relativo all'impostazione della proprietà dell'oggetto su un bucket esistente.
Importante
Per evitare un errore di accesso negato (403 Accesso negato), assicurati di eseguire la migrazione delle autorizzazioni delle liste di controllo degli accessi a una policy di bucket prima di disabilitare le liste. Per ulteriori informazioni, consulta Esempi di policy di bucket per la migrazione delle autorizzazioni delle ACL.
-
Cambia il proprietario dell'oggetto con il proprietario del bucket - Questo metodo può essere applicato a singoli oggetti, ma solo il proprietario dell'oggetto (o un utente con le autorizzazioni appropriate) può cambiare la proprietà di un oggetto. Potrebbero essere applicati costi aggiuntivi a
PUT
(per ulteriori informazioni, consulta Prezzi di Amazon S3). Questo metodo garantisce al proprietario del bucket la piena proprietà dell'oggetto, consentendogli di controllare l'accesso all'oggetto tramite una policy di bucket. Per modificare la proprietà dell'oggetto, procedi in uno dei seguenti modi:
-
Tu (il proprietario del bucket) puoi copiare nuovamente l'oggetto nel bucket.
-
È possibile modificare l'impostazione dell'opzione Proprietà dell'oggetto per il bucket impostandola su Proprietario del bucket preferito. Se il controllo delle versioni è disabilitato, gli oggetti nel bucket vengono sovrascritti. Se il controllo delle versioni è abilitato, nel bucket verranno visualizzate versioni duplicate dello stesso oggetto, per le quali il proprietario può impostare una regola del ciclo di vita per la scadenza. Per istruzioni su come modificare le impostazioni dell'opzione Proprietà dell'oggetto, consulta Impostazione di Object Ownership su un bucket esistente.
Nota
Quando aggiorni l'impostazione dell'opzione Proprietà dell'oggetto impostandola su Proprietario del bucket preferito, l'impostazione viene applicata solo ai nuovi oggetti caricati nel bucket.
-
È possibile fare in modo che il proprietario dell'oggetto carichi nuovamente l'oggetto con l'ACL
bucket-owner-full-control
predefinita dell'oggetto.
Nota
Per i caricamenti multi-account, nella tua policy di bucket dovrai disporre anche dell'ACL
bucket-owner-full-control
dell'oggetto predefinito. Per una policy di bucket di esempio, consulta Concedere autorizzazioni multi-account per il caricamento di oggetti a garanzia del controllo completo da parte del proprietario del bucket. -
-
Mantenere l'autore dell'oggetto come proprietario dell'oggetto: questo metodo non modifica il proprietario dell'oggetto, ma consente di concedere l'accesso agli oggetti singolarmente. Per concedere l'accesso a un oggetto, devi disporre dell'autorizzazione
PutObjectAcl
per l'oggetto. Quindi, per correggere l'errore di accesso negato (403 Accesso negato), aggiungi il richiedente come utente autorizzato per accedere all'oggetto nelle relative ACL. Per ulteriori informazioni, consulta Configurazione delle ACL.
Impostazioni di S3 Block Public Access
Se la richiesta fallita riguarda l'accesso pubblico o le policy pubbliche, controllare le impostazioni di Blocco dell'accesso pubblico S3 sull'account, sul bucket o sul punto di accesso. Per ulteriori informazioni sulla risoluzione dei problemi relativi agli errori di accesso negato relativi alle impostazioni di Blocco dell'accesso pubblico S3, consulta Accesso negato a causa delle impostazioni di Blocco accesso pubblico.
Impostazioni di crittografia di Amazon S3
Amazon S3 supporta la crittografia lato server nel bucket. La crittografia lato server è la crittografia dei dati a destinazione da parte dell'applicazione o del servizio che li riceve. Amazon S3 esegue la crittografia dei dati a livello di oggetto durante la scrittura dei dati stessi sui dischi nei data center AWS e quindi ne esegue la decrittografia al momento dell'accesso.
Per impostazione predefinita, Amazon S3 ora applica la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) come livello di base della crittografia per ogni bucket di Amazon S3. Amazon S3 consente inoltre di specificare il metodo di crittografia lato server durante il caricamento degli oggetti.
Per esaminare lo stato della crittografia lato server e le impostazioni della crittografia del bucket
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione sinistro, scegli Bucket.
-
Nell'elenco Bucket, scegli il bucket per cui vuoi controllare le impostazioni della crittografia.
-
Scegli la scheda Proprietà.
-
Scorri verso il basso fino alla sezione Crittografia predefinita e visualizza le impostazioni dell'opzione Tipo di crittografia.
Per verificare le impostazioni di crittografia utilizzando il sito AWS CLI, utilizzare il comando get-bucket-encryption.
Per controllare lo stato della crittografia dell'oggetto
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione sinistro, scegli Bucket.
-
Nell'elenco Bucket scegli il nome del bucket contenente l'oggetto.
-
Nell'elenco Nome scegli il nome dell'oggetto per cui desideri aggiungere o modificare la crittografia.
Viene visualizzata la pagina dei dettagli dell'oggetto.
-
Scorri verso il basso fino alla sezione Impostazioni crittografia lato server per visualizzare le impostazioni della crittografia lato server dell'oggetto.
Per verificare lo stato della crittografia degli oggetti utilizzando la AWS CLI, usa il comando head-object.
Requisiti relativi a crittografia e autorizzazioni
Amazon S3 supporta tre tipi di crittografia lato server:
-
Crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3)
-
Crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS)
-
Crittografia lato server con chiavi fornite dal cliente (SSE-C)
In base alle impostazioni di crittografia correnti, verifica che siano soddisfatti i seguenti requisiti relativi alle autorizzazioni:
-
SSE-S3: non sono richieste autorizzazioni aggiuntive.
-
SSE-KMS (con una chiave gestita dal cliente): per caricare oggetti, è necessaria l'autorizzazione
kms:GenerateDataKey
per la AWS KMS key. Per scaricare oggetti ed eseguire caricamenti di oggetti in più parti, è necessaria l'autorizzazionekms:Decrypt
per la chiave KMS. -
SSE-KMS (con una Chiave gestita da AWS): il richiedente deve trovarsi nello stesso account che possiede la chiave
aws/s3
KMS. Il richiedente deve inoltre disporre delle autorizzazioni Amazon S3 corrette per accedere all'oggetto. -
SSE-C (con una chiave fornita dal cliente): non sono richieste autorizzazioni aggiuntive. Puoi configurare la policy di bucket per richiedere e limitare la crittografia lato server con chiavi di crittografia fornite dal cliente per gli oggetti nel bucket.
Se l'oggetto è crittografato con una chiave gestita dal cliente, assicurati che la policy della chiave KMS ti consenta di eseguire le operazioni kms:GenerateDataKey
o kms:Decrypt
. Per istruzioni su come verificare la policy della chiave KMS, consulta Visualizzazione di una policy di chiave nella Guida per gli sviluppatori di AWS Key Management Service.
Impostazioni dell'opzione S3 Blocco oggetti
Se nel bucket è abilitata la funzionalità S3 Blocco oggetti e l'oggetto è protetto da un periodo di conservazione o da un blocco a fini legali, Amazon S3 restituisce un errore di accesso negato (403 Accesso negato) quando si tenta di eliminare l'oggetto.
Per verificare se l'opzione Blocco oggetti è abilitata per il bucket
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione sinistro, scegli Bucket.
-
Nell'elenco Bucket scegli il nome del bucket da controllare.
-
Scegli la scheda Proprietà.
-
Scorri verso il basso fino alla sezione Blocco oggetti. Verifica se l'impostazione dell'opzione Blocco oggetti è abilitata o disabilitata.
Per determinare se l'oggetto è protetto da un periodo di conservazione o da un blocco a fini legali, visualizza le informazioni relative al blocco dell'oggetto.
Se l'oggetto è protetto da un periodo di conservazione o da un blocco a fini legali, verifica quanto segue:
-
Se la versione dell'oggetto è protetta dalla modalità di conservazione della conformità, non è possibile eliminarla definitivamente. Una richiesta permanente a
DELETE
da parte di qualsiasi richiedente, incluso l'utente root di Account AWS, risulterà in un errore di Accesso negato (403 Forbidden). Inoltre, considera che quando invii una richiestaDELETE
per un oggetto protetto dalla modalità di conservazione della conformità, Amazon S3 crea un contrassegno di eliminazione per l'oggetto. -
Se la versione dell'oggetto è protetta con la modalità di conservazione della governance e disponi dell'autorizzazione
s3:BypassGovernanceRetention
, è possibile aggirare la protezione ed eliminare definitivamente la versione. Per ulteriori informazioni, consulta Bypassare la modalità Governance. -
Se la versione dell'oggetto è protetta da un blocco a fini legali, una richiesta
DELETE
permanente può generare un errore di accesso negato (403 Accesso negato). Per eliminare definitivamente la versione dell'oggetto, è necessario rimuovere il blocco a fini legali applicato alla versione dell'oggetto. Per rimuovere un blocco a fini legali, devi disporre dell'autorizzaziones3:PutObjectLegalHold
. Per ulteriori informazioni sulla rimozione di un blocco legale, consulta Configurazione di S3 Object Lock.
Criteri endpoint VPC
Se si accede ad Amazon S3 utilizzando un endpoint di cloud privato virtuale (VPC), assicurarsi che la policy dell'endpoint VPC non blocchi l'accesso alle risorse di Amazon S3. Per impostazione predefinita, il criterio dell'endpoint VPC consente tutte le richieste ad Amazon S3. È inoltre possibile configurare il criterio dell'endpoint VPC per limitare alcune richieste. Per informazioni su come controllare le policy degli endpoint VPC, consulta le seguenti risorse:
Criteri AWS Organizations
Se Account AWS appartiene a un'organizzazione, i criteri di AWS Organizations possono bloccare l'accesso alle risorse Amazon S3. Per impostazione predefinita, le policy di AWS Organizations non bloccano alcuna richiesta ad Amazon S3. Tuttavia, assicuratevi che i criteri di AWS Organizations non siano stati configurati per bloccare l'accesso ai bucket S3. Per istruzioni su come verificare le policy di AWS Organizations, consulta le seguenti risorse:
-
Accesso negato a causa di un criterio di controllo dei servizi - rifiuto implicito
-
Accesso negato a causa di una policy di controllo dei servizi: diniego esplicito
-
Accesso negato a causa di una policy di controllo delle risorse - rifiuto esplicito
-
Elenco di tutte le policy nella Guida all'utente di AWS Organizations
Inoltre, se si è configurato in modo errato la policy del bucket per un account membro in modo da negare a tutti gli utenti l'accesso al bucket S3, è possibile sbloccare il bucket avviando una sessione privilegiata per l'account membro in IAM. Una volta avviata una sessione privilegiata, è possibile eliminare la policy del bucket configurata in modo errato per riottenere l'accesso al bucket. Per ulteriori informazioni, consulta Eseguire un'attività con privilegi su un account membro di AWS Organizations nella Guida per l'utente di AWS Identity and Access Management.
Impostazioni dell'access point
Se ricevi un errore di accesso negato (403 Accesso negato) mentre effettui richieste tramite i punti di accesso Amazon S3, potresti dover controllare quanto segue:
-
Le configurazioni per i punti di accesso
-
La policy utente IAM utilizzata per i punti di accesso
-
La policy di bucket utilizzata per gestire o configurare i punti di accesso multi-account
Configurazioni e policy dei punti di accesso
-
Quando si crea un punto di accesso, è possibile scegliere di impostare Internet o VPC come origine della rete. Se l'origine della rete è impostata si "Solo VPC", Amazon S3 rifiuterà tutte le richieste effettuate al punto di accesso che non provengono dal VPC specificato. Per verificare l'origine della rete del punto di accesso, consulta Creazione di access point limitati a un cloud privato virtuale.
-
Con i punti di accesso, puoi anche configurare impostazioni personalizzate dell'opzione Blocco dell'accesso pubblico, che funzionano in modo simile alle impostazioni di Blocco dell'accesso pubblico a livello di bucket o account. Per verificare le impostazioni personalizzate dell'opzione Blocco dell'accesso pubblico, consulta Gestione dell'accesso pubblico agli access point.
-
Per effettuare con successo richieste ad Amazon S3 utilizzando i punti di accesso, assicurati che il richiedente disponga delle autorizzazioni IAM necessarie. Per ulteriori informazioni, consulta Configurazione dei criteri IAM per l'utilizzo degli access point.
-
Se la richiesta interessa punti di accesso multi-account, assicurati che il proprietario del bucket abbia aggiornato la policy di bucket per autorizzare le richieste provenienti dal punto di accesso. Per ulteriori informazioni, consulta Concessione delle autorizzazioni per i punti di accesso multi-account.
Se l'errore di accesso negato (403 Forbidden) persiste dopo aver controllato tutti gli elementi di questo argomento, occorre recuperare l'ID della richiesta Amazon S3 e contattare Supporto per ulteriori indicazioni.