Por que estou recebendo a mensagem de erro HTTP 403 Forbidden quando tento carregar arquivos usando o console do Amazon S3?

Data da última atualização: 20/10/2020

Estou tentando carregar arquivos para meu bucket do Amazon Simple Storage Service (Amazon S3) usando o console do Amazon S3. Entretanto, estou recebendo o erro HTTP 403 Forbidden, em vez disso. Como posso solucionar isso?

Breve descrição

Para solucionar o problema do erro HTTP 403 Forbidden no console do Amazon S3, confira o seguinte:

  • Permissões ausentes para o s3:PutObject ou s3:PutObjectAcl
  • Permissões ausentes para usar uma chave do AWS Key Management Service (AWS KMS)
  • Declaração de negação explícita na política do bucket 
  • A lista de controle de acesso (ACL) do bucket não permite que o usuário raiz da conta da AWS grave objetos
  • A política de controle de serviço do AWS Organizations não permite acesso ao Amazon S3

Resolução

Permissões ausentes para o s3:PutObject ou s3:PutObjectAcl

Verifique se o usuário ou a função do AWS Identity and Access Management (IAM) que você está usando tem permissões para a ação s3:PutObject no bucket. Sem essa permissão, você receberá um erro HTTP 403 Forbidden. 

Se você estiver tentando modificar a ACL dos objetos durante o carregamento, seu usuário ou função do IAM também deverá ter permissões para a ação s3:PutObjectAcl 

Permissões ausentes para usar uma chave do AWS KMS

Para acessar um bucket do S3 que usa criptografia padrão com uma chave personalizada do AWS KMS, você deve ter as permissões para usar a chave. 

Para que você obtenha as permissões para usar a chave, um administrador de chaves deverá conceder a você as permissões segundo a política de chaves. Para carregar um objeto em um bucket criptografado, seu usuário ou função do IAM deve ter permissões, no mínimo, para kms:Encrypt e kms:GenerateDataKey

Declaração de negação explícita na política do bucket

Na política do bucket, procure declarações que explicitamente neguem (“Effect”: “Deny”) (“Efeito”: “Negar”) permissão para s3:PutObject, a menos que determinadas condições sejam satisfeitas. Verifique se o upload cumpre os requisitos da política do bucket para acessar a ação s3:PutObject

Por exemplo, se a política do bucket explicitamente negar s3:PutObject salvo se a solicitação incluir criptografia do lado do servidor usando chaves de criptografia gerenciadas pelo AWS KMS ou pelo Amazon S3, verifique se está sendo usado o cabeçalho de criptografia correto para carregar objetos.

O seguinte exemplo de declaração em uma política do bucket explicitamente nega qualquer acesso a s3:PutObject no bucket awsdoc-example-bucket, a menos que a solicitação de upload inclua criptografia com a chave do 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": "*"
    }
  ]
}

Advertência: antes de salvar uma política do bucket com uma declaração de negação explícita, examine cuidadosamente os parâmetros da negação explícita ou do acesso. Se você for acidentalmente bloqueado, consulte Neguei acidentalmente o acesso de todos ao meu bucket do Amazon S3. Como posso obter acesso novamente?

A ACL do bucket não permite que o usuário raiz grave objetos

Se você estiver usando a conta do usuário raiz para carregar objetos no bucket do S3, verifique se a ACL do bucket concede ao usuário raiz acesso a Write objects (Objetos de gravação). Para obter mais informações, consulte Como defino permissões de buckets da ACL? 

A política de controle de serviço do AWS Organizations não permite acesso ao Amazon S3

Se você estiver usando o AWS Organizations, confira as políticas de controle de serviço para ter certeza de que o acesso ao Amazon S3 está permitido.

Por exemplo, a política a seguir resulta em um erro HTTP 403 Forbidden quando você tenta acessar o Amazon S3, pois ela nega explicitamente o acesso:

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

Para obter mais informações sobre os recursos do AWS Organizations, consulte Habilitar todos os recursos na sua organização.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?