Duas políticas, tenho uma "Negar", não devo conseguir realizar nenhuma operação no bucket, mas ainda posso listar e visualizar objetos do bucket. Por que? Obrigado
Política de intervalo S3
{
"Sid": "S3DenyAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:s3:::<YOURBUCKETHERE>/*"
}
Política de usuário do IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowConsoleAccess",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
Responder1
Tente mudar oRecursonoPolítica de intervalopara incluir o bucket sozinho e o bucket com objetos:
"Resource": [
"arn:aws:s3:::<YOURBUCKETHERE>",
"arn:aws:s3:::<YOURBUCKETHERE>/*"
]
Espero que ajude :)
Responder2
Lógica de avaliação de políticas da AWSseria uma leitura útil. Em suma, uma negação explícita vence. Porém, não é relevante aqui.
EU SOU
Sua política de usuário do IAM está dizendo "este usuário pode listar todos os buckets e obter locais de bucket".
Política de intervalo
Sua política de bucket para um bucket específico diz "negar explicitamente permissões para qualquer pessoa fazer qualquer coisa para se opordentroo bucket". O "/*" no final do recurso significa que a política se aplica "dentro do bucket", enquanto se você omiti-los, significa que a política se aplica ao próprio bucket.
Combinado
Portanto, suas políticas combinadas dizem que todos os usuários podem listar buckets e obter localizações de buckets, mas não podem fazer nada com objetos dentro do bucket. Estou surpreso que você possa listar objetos no bucket e visualizá-los. Suspeito que outra política esteja em jogo aqui, porque a negação padrão da AWS diz que não deveria mostrar nada a você.
Outras opiniões
Se alguém puder identificar algo que perdi, por favor indique :)