1
resposta

Acesso negado

Opa, tudo bem?

Ao tentar acessar a URL do meu Objeto recebe um erro de acesso negado

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>DF8SDK910QC8KMNQ</RequestId>
<HostId>
oLgmVvgXKWRgBENOs7rqx/qQ6kq5Cua8bPRFT01MgmLZHzE6bSPh0Np/1nG8sI1kVSFfYxCA5z8=
</HostId>
</Error>

tentei alterar as permissões, mas sem sucesso. Alguém consegue me ajudar?

1 resposta

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:

  1. 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.
  2. 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.