Skip to main content

Problemas com Bucket Público: Lista Objetos, mas Não Permite Acesso aos Arquivos

Cenário

O bucket está configurado como público, permitindo a listagem de objetos, mas ao tentar acessá-los diretamente, ocorre erro de acesso negado (403 Forbidden).

Esse comportamento é correto, conforme a documentação, pois a permissão para listar objetos e a permissão para acessá-los são gerenciadas separadamente via ACLs.

Diagnóstico

  1. O bucket está realmente público?

    • Execute:

       mgc object-storage buckets acl get NOME_DO_BUCKET
    • Confirme se a ACL do bucket permite READ público.

  2. Os objetos dentro do bucket possuem permissão pública?

    • A ACL do bucket não define automaticamente a ACL dos objetos.

    • Verifique as permissões de um objeto com:

      mgc object-storage objects acl get NOME_DO_BUCKET/NOME_DO_OBJETO
    • Se não houver READ em Grantee: DisplayName: "" ID: "" , o objeto não está acessível publicamente.

Solução

Para garantir que os objetos também sejam públicos, é necessário definir a ACL deles manualmente.

Tornar um objeto público

Execute o seguinte comando para definir a ACL public-read em um objeto:

mgc object-storage objects acl set NOME_DO_BUCKET/CAMINHO_DO_OBJETO --public-read

Fazer o upload dos objetos já públicos

Ao realizar o upload dos arquivos, defina a ACL public-read diretamente:

aws s3 cp <file> s3://<bucket-name>/ --acl public-read

Conclusão

  • A ACL do bucket não define automaticamente a ACL dos objetos.

  • Para acessar objetos publicamente, é necessário definir explicitamente a ACL public-read para cada um deles.

  • Para mais detalhes, consulte a documentação de ACLs da Magalu Cloud.