Skip to main content

Falha ao Deletar Bucket com Objetos por Falta de Permissão

Problema

A tentativa de remoção de um bucket falha com o erro AccessDenied, mesmo quando realizada via portal ou mgc cli. Isso ocorre porque o bucket não está vazio e a policy associada à credencial utilizada não possui permissão para executar a ação DeleteObject.

Causa

O processo de deleção de bucket envolve:

  • Listar objetos (e versões, se houver versionamento habilitado);

  • Excluir todos os objetos do bucket;

  • Somente então, deletar o bucket.

Se a policy não possui permissão de DeleteObject, o sistema é impedido de esvaziar o bucket automaticamente, e por consequência, a deleção do bucket é bloqueada.

Esse comportamento é válido tanto no portal Magalu Cloud quanto na CLI (mgc), pois ambos realizam deleção recursiva para buckets com conteúdo.

Solução Recomendada

A forma mais simples de deletar um bucket que ainda contém objetos, é remover a policy associada, caso ela limite o uso de DeleteObject, e usar uma credencial com permissões totais.

Etapas:

1. Consultar a Bucket Policy atual:

mgc object-storage buckets policy get --dst NOME_DO_BUCKET

2. Remover a Bucket Policy:

mgc object-storage buckets policy delete --dst NOME_DO_BUCKET

3. Remover todos os objetos presentes no bucket:

mgc object-storage objects delete-all NOME_BUCKET

4. Apagar o bucket:

mgc object-storage buckets delete NOME_BUCKET

Referências

Observação

Sempre verifique se o bucket está realmente vazio (inclusive objetos versionados).