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:
- Abra o console do AWS Identity and Access Management (IAM).
- Navegue até a identidade usada para acessar o bucket, como Usuário ou Função. Selecione o nome da identidade.
- Clique na guia Permissões e expanda cada política para ver o documento de sua política JSON.
- 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:
- Abra o console do Amazon S3.
- Na lista de buckets, abra o bucket no qual você deseja fazer upload de arquivos.
- Clique na guia Permissões.
- Selecione a Política do bucket.
- Procure declarações com “Efeito”: “Negar”.
- 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