Olá João, como você está?
Mesmo sendo muito tempo depois, espero sanar sua duvida, então vamos lá. Para deixar um objeto ou pasta public no s3, deve-se seguir uns passos:
- No bucket que você existe uma opções de
Objects
Properties
Permissions <- Nessa que você vai clicar
Metrics
Management
Access Points
Nessa aba deve exister um campo chamado Block public access (bucket settings), o meu ta em inglês, nele provalvemente vai estar todas as opções
marcadas, coloque para editar,desmarque todas e confirm,pronto agora você pode deixar seus objetos ou pastas com acesso ao publico. - Feito a primeira parte, existe algumas formas de deixar um objeto public:
2.1 - A primeira seria no upload do objeto, quando você faz o upload existe um label chamado Permissions, você pode expandir ele e verá a opção
Predefined ACLs, nela você marca a opção Grant public-read access e depois de concorcar que sabe do risco de deixar public para leitura e
terminar o upload, seu arquivo estará public.
2.2 - A segunda seria por policy, essa e a que mais gosto, no momento que você finaliza o primeiro passo ainda na aba de Permissions mais em baixo
existe uma label chamada Bucket policy, nelas você pode criar policy de acesso, vou compartilhar umas das policy que uso que é para somente
leitura, nessa policy coloco para que tudo dentro de determinada pasta seja public para leitura, assim posso criada essa pasta, tudo que jogar
nela posso usar para o link de acesso tranquilo.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::nome-do-bucket/pasta-dentro-dobucket/*"
}
]
}
Espero ter ajudado, abraços.