Salta al contenuto

Perché ricevo l'errore “403 Forbidden” quando provo a caricare file in Amazon S3?

4 minuti di lettura
0

Sto cercando di caricare file nel mio bucket Amazon Simple Storage Service (Amazon S3) tramite la console Amazon S3. Tuttavia, ricevo un errore "403 Forbidden".

Breve descrizione

L'errore "403 Forbidden" può verificarsi per i seguenti motivi:

  • Mancano le autorizzazioni per s3:PutObject aggiungere un oggetto o s3:PutObjectAcl per modificare la lista di controllo degli accessi (ACL) dell'oggetto.
  • Non sei autorizzato a utilizzare una chiave del Servizio AWS di gestione delle chiavi (AWS KMS).
  • È presente un'istruzione di diniego esplicita nella policy del bucket.
  • È attivata la funzionalità Blocco dell'accesso pubblico Amazon S3.
  • Una politica di controllo dei servizi di AWS Organizations non consente l'accesso ad Amazon S3.

Risoluzione

Controlla le tue autorizzazioni per s3:putObject o s3:putObjectAcl

Segui questi passaggi:

  1. Apri la console AWS Identity e Access Management (IAM).
  2. Passa all'identità utilizzata per accedere al bucket, ad esempio Utente o Ruolo. Scegli il nome dell'identità.
  3. Scegli la scheda Autorizzazioni, quindi espandi ogni policy per visualizzare il documento relativo alla policy JSON.
  4. Nei documenti relativi alle policy JSON, cerca le policy riguardanti l'accesso ad Amazon S3. Quindi, conferma di disporre delle autorizzazioni per le azioni s3:PutObject o s3:PutObjectAcl sul bucket.

Richiedi l'autorizzazione per utilizzare una chiave AWS KMS

Per caricare oggetti crittografati con AWS KMS, devi disporre delle autorizzazioni per eseguire azioni AWS KMS. Devi essere in grado di eseguire almeno le azioni kms:Decrypt and kms:GenerateDataKey.

Importante: se carichi un oggetto in un bucket in un altro account AWS, non puoi utilizzare la chiave gestita da AWS aws/S3 come chiave di crittografia predefinita. Questo perché non puoi modificare la policy della chiave gestita da AWS.

Controlla se sono presenti istruzioni di diniego esplicite nella policy del bucket

Segui questi passaggi:

  1. Apri la console Amazon S3.
  2. Dall'elenco dei bucket, apri il bucket in cui desideri caricare i file.
  3. Scegli la scheda Autorizzazioni.
  4. Scegli politica Bucket.
  5. Cerca le affermazioni con "Effect": “Deny”.
  6. Controlla queste dichiarazioni e assicurati che non impediscano il caricamento nel bucket.

Importante: prima di salvare una policy di bucket con "Effect": Deny”, assicurati di verificare la presenza di eventuali istruzioni che negano l'accesso al bucket S3. Se rimani bloccato, consulta Come posso riottenere l'accesso al mio bucket Amazon S3 dopo aver negato accidentalmente l'accesso a tutti?

Il seguente esempio di istruzione nega esplicitamente l'accesso a s3:PutObject in example-bucket meno che la richiesta di caricamento non crittografi l'oggetto con la chiave AWS KMS il cui ARN corrisponde a arn:aws:kms:us-east-1:111122223333:key:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::example-bucket/*",
      "Condition": {
        "StringNotLikeIfExists": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
        }
      },
      "Principal": "*"
    }
  ]
}

Rimuovi l'ACL pubblica dalla richiesta o disabilita la funzionalità Blocco dell'accesso pubblico S3

Se passi un'ACL pubblica, come ad esempio public-read o authenticated-read nella richiesta PUT, l'ACL pubblica rende pubblico l'oggetto S3. Se per questo account o bucket è attivata la funzionalità Blocco dell'accesso pubblico S3, la richiesta di caricamento viene negata.

Nota: è consigliabile rendere pubblico un oggetto solo se il caso d'uso lo richiede.

Per caricare correttamente l'oggetto come oggetto disponibile pubblicamente, modifica la funzionalità Blocco dell'accesso pubblico S3 come richiesto. Se il caso d'uso non richiede di rendere l'oggetto disponibile al pubblico, rimuovi l'ACL pubblica menzionata dalla richiesta PUT.

Per configurare le impostazioni della funzionalità Blocco dell'accesso pubblico S3 a livello di account, consulta Configurazione delle impostazioni di blocco dell'accesso pubblico per l'account. Per configurarle a livello di bucket, consulta Configurazione delle impostazioni di blocco dell'accesso pubblico per i bucket S3. Inoltre, per ulteriori informazioni sulle impostazioni di accesso pubblico, consulta Significato di "pubblico".

Esamina le policy di controllo dei servizi per AWS Organizations

Se utilizzi AWS Organizations, verifica se le policy di controllo dei servizi negano esplicitamente le azioni di Amazon S3. In tal caso, modifica la policy come desideri.

Informazioni correlate

Come posso risolvere gli errori 403 Access Denied di Amazon S3?

How do I troubleshoot the error "You don't have permissions to edit bucket policy" when I try to modify a bucket policy in Amazon S3? (Come posso risolvere l'errore "You don't have permissions to edit bucket policy" che ricevo quando provo a modificare una policy di bucket in Amazon S3?)

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