Risoluzione dei problemi relativi agli errori di accesso negato (403 Forbidden) in Amazon S3 - Amazon Simple Storage Service

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 dichiarazione Allow 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.

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 user-arn is not authorized to perform action on "resource-arn" because context. In questo esempio, user-arn è il nome della risorsa Amazon (ARN) dell'utente che non riceve l'accesso, action è l'azione di servizio che la policy nega e resource-arn è l'ARN della risorsa su cui agisce la policy. Il campo context rappresenta un contesto aggiuntivo sul tipo di policy che spiega perché la policy ha negato l'accesso.

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 type policy. Quando la policy nega implicitamente l'accesso, il messaggio di errore di accesso negato include la frase because 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

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

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

  1. Verifica un'istruzione Allow mancante relativa all'operazione nelle tue policy di controllo dei servizi. Nell'esempio seguente, l'azione è s3:GetObject.

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

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

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

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

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

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

  2. Aggiornare la policy dell'endpoint VPC modificando l'istruzione Deny per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzione Deny per utilizzare la chiave di condizione aws:PrincipalAccount con l'operatore di condizione StringNotEquals 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

  1. Verifica la presenza di un'istruzione Allow mancante relativa all'azione nel limite delle autorizzazioni. Nell'esempio seguente, l'azione è s3:GetObject.

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

  1. Verifica la presenza di un'istruzione Deny esplicita relativa all'azione nel limite delle autorizzazioni. Nell'esempio seguente, l'azione è s3:GetObject.

  2. Aggiornare il limite delle autorizzazioni modificando l'istruzione Deny nella policy IAM per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzione Deny per utilizzare la chiave di condizione aws:PrincipalAccount con l'operatore di condizione StringNotEquals 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

  1. Verifica la presenza di un'istruzione Allow mancante relativa all'azione nelle tue policy di sessione. Nell'esempio seguente, l'azione è s3:GetObject.

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

  1. Verifica la presenza di un'istruzione Deny esplicita relativa all'azione nelle tue policy di sessione. Nell'esempio seguente, l'azione è s3:GetObject.

  2. Aggiornare la policy di sessione modificando l'istruzione Deny per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzione Deny per utilizzare la chiave di condizione aws:PrincipalAccount con l'operatore di condizione StringNotEquals 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.

  1. Controlla che non manchi una dichiarazione Allow per l'azione nella tua policy basata sulle risorse. Controlla anche se l'impostazione IgnorePublicAcls di Blocco dell'accesso pubblico S3 è applicata a livello di bucket, punto di accesso o account. Nell'esempio seguente, l'azione è s3:GetObject.

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

  1. Verificare la presenza di una dichiarazione esplicita di Deny per l'azione nella policy basata sulle risorse. Controlla anche se l'impostazione RestrictPublicBuckets di Blocco dell'accesso pubblico S3 è applicata a livello di bucket, punto di accesso o account. Nell'esempio seguente, l'azione è s3:GetObject.

  2. Aggiorna la policy modificando l'istruzione Deny per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzione Deny per utilizzare la chiave di condizione aws:PrincipalAccount con l'operatore di condizione StringNotEquals 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

  1. 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'utente MaryMajor.

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

  1. 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'utente MaryMajor.

  2. Aggiorna la policy modificando l'istruzione Deny per consentire all'utente l'accesso necessario. Ad esempio, è possibile aggiornare l'istruzione Deny per utilizzare la chiave di condizione aws:PrincipalAccount con l'operatore di condizione StringNotEquals 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 richieste PutBucketAcl, PutObjectAcl, PutObject, CreateBucket, CopyObject e POST Object. L'impostazione BlockPublicAcls causa il seguente comportamento:

    • PutBucketAcl e PutObjectAcl 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 HTTP 400 (Bad Request) se la richiesta include un'ACL pubblica.

    Ad esempio, quando l'accesso è negato per una richiesta CopyObject a causa dell'impostazione BlockPublicAcls, 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'impostazione IgnorePublicAcls 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'impostazione IgnorePublicAcls rifiuta la richiesta.

    Qualsiasi negazione derivante dall'impostazione di IgnorePublicAcls è implicita. Ad esempio, se IgnorePublicAcls nega una richiesta GetObject 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 richieste PutBucketPolicy e PutAccessPointPolicy.

    L'impostazione di BlockPublicPolicy per un bucket fa sì che Amazon S3 rifiuti le chiamate a PutBucketPolicy se la policy del bucket specificata consente l'accesso pubblico. Questa impostazione fa sì che Amazon S3 rifiuti anche le chiamate a PutAccessPointPolicy 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 a PutAccessPointPolicy e PutBucketPolicy 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'impostazione BlockPublicPolicy, 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'impostazione RestrictPublicBuckets 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, se RestrictPublicBuckets nega una richiesta di GetObject 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 esplicita Allow 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 esplicita Allow.

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.

  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione sinistro, scegli Bucket.

  3. Nell'elenco Bucket scegli il nome del bucket per il quale vuoi visualizzare o modificare una policy di bucket.

  4. Scegli la scheda Autorizzazioni.

  5. 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:

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 o PutBucketAcl, 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
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione sinistro, scegli Bucket.

  3. Nell'elenco Bucket, scegli il bucket per cui vuoi controllare le impostazioni della crittografia.

  4. Scegli la scheda Proprietà.

  5. 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
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione sinistro, scegli Bucket.

  3. Nell'elenco Bucket scegli il nome del bucket contenente l'oggetto.

  4. Nell'elenco Nome scegli il nome dell'oggetto per cui desideri aggiungere o modificare la crittografia.

    Viene visualizzata la pagina dei dettagli dell'oggetto.

  5. 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'autorizzazione kms: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
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione sinistro, scegli Bucket.

  3. Nell'elenco Bucket scegli il nome del bucket da controllare.

  4. Scegli la scheda Proprietà.

  5. 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 richiesta DELETE 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'autorizzazione s3: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:

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.