Problemas com permissionamento
Alterar a permissão de um bucket não funciona
- Sintoma
Alterar a permissão de um bucket de privado para público ou vice-versa não funciona. Falha com um erro de acesso negado, ou diz que mudou porém o bucket continua aparecendo como privado no console.
Na listagem do console, um bucket com qualquer política continuará sendo listado como "privado"
- Causa
O bucket em questão pode ter uma política (bucket policy) a ele associada. E regras da política possuem maior precedência do que as de ACL. Bucket policy permite a construção de regras de acesso mais específicas que um simples status de "público" ou "privado" e estas regras mais específicas sempre sobrescrevem este status simples.
- Solução
Existem duas soluções possíveis: remover a política do bucket ou incluir uma regra na política que permita a leitura dos objects por qualquer usuário (Principal).
- Remover a política do bucket
- AWS-CLI
É possível deletar uma política de bucket via terminal utilizando a ferramenta aws-cli da Amazon:
aws --profile "SEU_PROFILE" s3api delete-bucket-policy --bucket "NOME_DO_BUCKET"
Substitua SEU_PROFILE
e NOME_DO_BUCKET
pelo nome do seu perfil e o nome do seu bucket.
-
Incluir acesso de leitura a todos nas políticas do bucket
Abaixo um exemplo de "Statement" a ser adicionado a uma política existente para tornar todos os objetos de um bucket publicamente acessíveis:
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"nome-do-bucket",
"nome-do-bucket/*"
]
},
{
...
}
]
Substitua nome-do-bucket
pelo nome do bucket.