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).