Problemas com Permissionamento
Objetos não Ficaram Públicos
- Sintoma
Mesmo após configurar o bucket como "público" ou como "privado", os objetos não se comportam no mesmo estado que o bucket.
- Causa
A configuração a respeito de "público" ou "privado" diz respeito ao bucket, mas as regras não são aplicáveis de forma recursiva, ou seja, não são transmitidas para os objetos contidos no bucket.
- Solução
Para aplicar regras de acesso aos objetos, utilize a ACL para Objetos. Que está referenciada no how-to: Configuração da Lista de Controle de Acesso (ACL) de um Objeto.
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 bucket policy continuará sendo listado como "privado"
- Causa
O bucket em questão pode ter uma bucket policy a ele associada. Regras da bucket policy 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
Incluir acesso de leitura a todos na bucket policy
-
Edite a policy atual seguindo a documentação
-
Abaixo um exemplo de "Statement" a ser adicionado a uma bucket policy 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 seu bucket.
Bucket Ficou Privado Após Criar uma Bucket Policy
- Sintoma
Deixei o bucket público mas após criar uma policy ele ficou privado.
Na listagem do console, um bucket com qualquer bucket policy sempre será listado como "privado"
- Causa
O bucket possui uma bucket policy associada, cujas regras prevalecem sobre as regras de ACL.
- Solução
Incluir acesso de leitura a todos na bucket policy
-
Edite a policy atual seguindo a documentação
-
Abaixo um exemplo de "Statement" a ser adicionado a uma bucket policy 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 seu bucket.
Não Consigo Acessar o Bucket Após Criar uma Bucket Policy
- Sintoma
Erro AccessDeniedByBucketPolicy após configurar uma bucket policy
Na listagem do console, um bucket com qualquer bucket policy sempre será listado como "privado"
- Causa
Quando não incluido o tenant na policy o mesmo não conseguirá realizar operações no mesmo.
- Solução
Incluir o Tenant na bucket policy
-
Edite a policy atual seguindo a documentação
-
Abaixo um exemplo de "Statement" a ser adicionado a uma bucket policy existente para conceder acesso ao tenant:
"Statement": [
{
"Effect": "Allow",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": [
"s3:*"
],
"Resource": [
"nome-do-bucket",
"nome-do-bucket/*"
]
},
{
...
}
]
Substitua nome-do-bucket
pelo nome do seu bucket.
Erro Version 2012-10-17
- Sintoma
Erro value is not valid enumeration member; permitted: '2012-10-17'
ao tentar salvar uma policy
- Causa
Ao subir a nova policy você pode estar usando uma versão de sintaxe não permitida na bucket policy.
- Solução
Use uma versão permitida no schema