Perché ricevo un messaggio di errore HTTP 403 Forbidden quando cerco di caricare i file attraverso la console di Amazon S3?

Ultimo aggiornamento: 20-10-2020

Sto cercando di caricare file nel mio bucket Amazon Simple Storage Service (Amazon S3) utilizzando la console Amazon S3. Tuttavia, ricevo invece un errore HTTP 403 Forbidden. In che modo posso risolvere il problema?

Breve descrizione

Per risolvere l'errore HTTP 403 Forbidden dalla console Amazon S3, controllare quanto segue:

  • Autorizzazioni mancanti per s3:PutObject o s3:PutObjectAcl
  • Autorizzazioni mancanti per utilizzare una chiave AWS Key Management Service (AWS KMS)
  • Dichiarazione di rifiuto esplicito nella policy del bucket 
  • La lista di controllo accessi al bucket (ACL) non permette all'utente root dell'account AWS di scrivere oggetti
  • La policy di controllo del servizio di AWS Organizations non permette l'accesso ad Amazon S3

Risoluzione

Autorizzazioni mancanti per s3:PutObject o s3:PutObjectAcl

Verifica che l'utente o il ruolo di AWS Identity and Access Management (IAM) che stai utilizzando disponga delle autorizzazioni per l'operazione s3:PutObject sul bucket. Senza questa autorizzazione, si otterrà un errore HTTP 403 Forbidden. 

Se stai tentando di modificare l'ACL dell'oggetto durante il caricamento, anche il tuo utente o ruolo IAM deve disporre delle autorizzazioni per l'operazione s3:PutObjectAcl 

Autorizzazioni mancanti per utilizzare una chiave AWS KMS

Per accedere a un S3 bucket che utilizza la crittografia di default con una chiave AWS KMS personalizzata, devi disporre delle autorizzazioni per utilizzare la chiave. 

Per ottenere le autorizzazioni per utilizzare la chiave, un amministratore della chiave deve concederti le autorizzazioni sulla policy della chiave. Per caricare un oggetto in un bucket crittografato, il tuo utente o ruolo IAM deve disporre almeno delle autorizzazioni per kms:Encrypt e kms:GenerateDataKey

Dichiarazione di rifiuto esplicito nella policy del bucket

Esamina la policy del bucket per eventuali istruzioni che negano esplicitamente l'autorizzazione ("Effetto": "Diniego") per s3:PutObject a meno che non vengano soddisfatte determinate condizioni. Verifica che il caricamento soddisfi i requisiti della policy del bucket per l'accesso all'operazione s3:PutObject

Ad esempio, se la tua policy del bucket nega esplicitamentes3:PutObject a meno che la richiesta non includa la crittografia lato server tramite AWS KMS o chiavi di crittografia gestite da Amazon S3, , verifica di utilizzare l'intestazione di crittografia corretta per caricare gli oggetti.

La seguente istruzione di esempio in una policy del bucket nega esplicitamente qualsiasi accesso a s3:PutObject sul bucket awsdoc-example-bucket a meno che la richiesta di caricamento non includa la crittografia con la chiave AWS KMS arn:aws:kms:us-east-1:111122223333:key:

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

Attenzione: prima di salvare una policy del bucket con un'istruzione di rifiuto esplicito, è necessario esaminare attentamente i parametri per il rifiuto esplicito dell'accesso. Se vieni bloccato accidentalmente, vedi Ho negato accidentalmente a tutti l'accesso al mio bucket Amazon S3. Come faccio a riabilitare l'accesso?

Il bucket ACL non permette all'utente root di scrivere oggetti

Se stai utilizzando l'account utente root per caricare oggetti nell’S3 bucket, verifica che l'ACL del bucket conceda all'utente root l'accesso aScrittura oggetti. Per ulteriori informazioni, consultare Come posso impostare le autorizzazioni del bucket ACL? 

La policy di controllo del servizio di AWS Organizations non permette l'accesso ad Amazon S3

Se utilizzi AWS Organizations, controlla le policy di controllo dei servizi per assicurarti che l'accesso ad Amazon S3 sia permesso.

Ad esempio, la seguente policy genera un errore HTTP 403 Forbidden quando tenti di accedere ad Amazon S3 perché nega esplicitamente l'accesso:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "S3:*",
    "Resource": "*"
  }]
}

Per ulteriori informazioni sulle caratteristiche di AWS Organizations, consultareAbilitazione di tutte le caratteristiche nella tua organizzazione.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?