Estou tentando criar uma política que permita que um usuário leia de qualquer intervalo (essa parte funciona), mas só grave em uma subpasta específica em qualquer intervalo.
Esta é a minha política até agora (a leitura funciona, mas ainda permite escrever na raiz do intervalo):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"*"
]
},
{
"Effect": "Deny",
"Action": [
"s3:PutObject"
],
"Resource": [
"*"
]
}
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::*/test"
"arn:aws:s3:::*/test/*"
]
}
]
}
Com essa política, o usuário ainda pode gravar na raiz do bloco, o usuário só deve poder gravar a subpasta "teste" em qualquer bloco.
Eu também tentei adicionar condições à última declaração:
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::*/pdf-test",
"arn:aws:s3:::*/pdf-test/*"
],
"Condition": {
"StringLike": {
"s3:prefix": ["pdf-test/*"]
}
}
}
Mas agora o usuário não pode escrever nada.
Como evito que o usuário grave em qualquer pasta, exceto "teste" em qualquer intervalo?