Ir para o conteúdo

Por que estou recebendo o erro “403 Forbidden” ao tentar carregar arquivos no Amazon S3?

4 minuto de leitura
0

Estou tentando fazer upload de arquivos em meu bucket do Amazon Simple Storage Service (Amazon S3) usando o console do Amazon S3. No entanto, estou recebendo o erro “403 Forbidden”.

Breve descrição

O erro "403 Forbidden" pode ocorrer devido aos seguintes motivos:

  • Faltam permissões em s3:PutObject para adicionar um objeto ou em s3:PutObjectAcl para modificar a lista de controle de acesso (ACL) do objeto.
  • Você não tem permissão para usar uma chave do AWS Key Management Service (AWS KMS).
  • Há uma declaração de negação explícita na política de bucket.
  • O Bloqueio de Acesso Público do Amazon S3 está ativado.
  • Uma política de controle de serviços do AWS Organizations não permite o acesso ao Amazon S3.

Solução

Verifique as permissões de s3:PutObject ou s3:PutObjectAcl

Siga estas etapas:

  1. Abra o console do AWS Identity and Access Management (IAM).
  2. Navegue até a identidade usada para acessar o bucket, como Usuário ou Função. Selecione o nome da identidade.
  3. Clique na guia Permissões e expanda cada política para ver o documento de sua política JSON.
  4. Nos documentos de política JSON, procure políticas relacionadas ao acesso do Amazon S3. Em seguida, confirme se você tem permissões para as ações de s3:PutObject ou s3:PutObjectAcl no bucket.

Peça permissão para usar uma chave do AWS KMS

Para carregar objetos criptografados com o AWS KMS, você precisa ter permissões para realizar ações do AWS KMS. Você deve ser capaz, pelo menos, de realizar ações kms:Decrypt and kms:GenerateDataKey.

Importante: se você fizer upload de um objeto em um bucket usando uma conta da AWS diferente, não será possível usar a chave gerenciada pela AWS aws/S3 como a chave de criptografia padrão. Isso ocorre porque não é possível modificar a política de chave gerenciada pela AWS.

Verifique a política de bucket para obter instruções de negação explícitas

Siga estas etapas:

  1. Abra o console do Amazon S3.
  2. Na lista de buckets, abra o bucket no qual você deseja fazer upload de arquivos.
  3. Clique na guia Permissões.
  4. Selecione a Política do bucket.
  5. Procure declarações com “Efeito”: “Negar”.
  6. Analise essas declarações e certifique-se de que elas não impeçam uploads no bucket.

Importante: antes de salvar uma política de bucket com “Efeito”: “Negar”, não deixe de verificar se há instruções que negam o acesso ao bucket do S3. Se você for bloqueado, consulte Como faço para recuperar acesso ao meu bucket do Amazon S3 depois de negar acidentalmente o acesso a todos?

O exemplo de declaração a seguir nega explicitamente o acesso a s3:PutObject em example-bucket, a menos que a solicitação de upload criptografe o objeto com a chave do AWS KMS cujo ARN corresponde 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": "*"
    }
  ]
}

Remova a ACL pública da sua solicitação ou desative o Bloqueio de Acesso Público do S3

Se você está passando uma ACL pública, como public-read ou authenticated-read, em sua solicitação PUT, a ACL pública torna o objeto do S3 público. Se o atributo Bloqueio de Acesso Público do S3 estiver ativado para essa conta ou bucket, sua solicitação de upload será negada.

Observação: é uma prática recomendada tornar um objeto público somente se seu caso de uso exigir isso.

Para fazer upload do objeto com êxito como um objeto disponível publicamente, modifique o atributo Bloquear acesso do S3 conforme necessário. Se o seu caso de uso não exigir que o objeto seja disponibilizado publicamente, remova a ACL pública mencionada da solicitação PUT.

Para definir as configurações de Bloqueio de Acesso Público do S3 no nível da conta, consulte Configurar o bloqueio de acesso público para sua conta. Para definir as configurações no nível do bucket, consulte Configurar o bloqueio de acesso público para seus buckets do S3. Além disso, para obter mais informações sobre configurações de acesso público, consulte O significado de “público”.

Analise as políticas de controle de serviços do AWS Organizations

Se você usa o AWS Organizations, verifique se as políticas de controle de serviços negam explicitamente as ações do Amazon S3. Se for o caso, modifique a política conforme desejado.

Informações relacionadas

Como soluciono erros 403 de acesso negado do 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? (Como faço para solucionar o erro “You don't have permissions to edit bucket policy” ao tentar modificar uma política de bucket no Amazon S3?)

Solucionar erros de acesso negado (403 Forbidden) no Amazon S3

AWS OFICIALAtualizada há 8 meses