Ir para o conteúdo

Por que não consigo excluir meu bucket do Amazon S3?

5 minuto de leitura
0

Quero resolver por que não consigo excluir meu bucket do Amazon Simple Storage Service (Amazon S3).

Resolução

Pré-requisitos

Antes de excluir um bucket do Amazon S3, realize as seguintes ações:

  • Para buckets que você hospeda como um site estático, revise e atualize as configurações de zona hospedada do Amazon Route 53 relacionadas ao bucket.
  • Se o bucket receber dados de log do Elastic Load Balancing (ELB), interrompa a entrega de logs para ele antes de excluí-lo.

Observação: se você excluir um nome de bucket, o nome ficará disponível para todos os usuários. Se outra conta da AWS usar o nome do bucket, não é possível reutilizá-lo. A prática recomendada é não excluir o bucket. Em vez disso, esvazie-o.

O bucket do S3 não está vazio

Para excluir um bucket do Amazon S3, o bucket deve estar vazio. Use o console do Amazon S3, a AWS Command Line Interface (AWS CLI) ou o SDK para esvaziar o bucket manualmente. Se o bucket for grande e você tiver configurado o versionamento, a exclusão manual do objeto levará muito tempo. Nesse caso, use a configuração do ciclo de vida do Amazon S3 para esvaziar os buckets.

Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para buckets que você configurou com versionamento ou estão com o status Suspenso, inclua as seguintes regras em sua configuração do ciclo de vida:

  • Regra n.º 1: expire todas as versões atuais dos objetos após X dias da criação. Exclua permanentemente todas as versões que não sejam atuais dos objetos após Y dias, quando elas ficarem desatualizadas.
  • Regra n.º 2: expire todos os marcadores de exclusão única e os uploads incompletos de várias partes após Z dias.

Para buckets que você não configurou com o versionamento, inclua as seguintes regras na configuração do ciclo de vida:

  • Regra n.º 1: expire todas as versões atuais dos objetos após X dias da criação do objeto.
  • Regra n.º 2: expire todos os uploads incompletos de várias partes após Z dias.

Observação: para excluir rapidamente o bucket, defina X, Y e Z como 1 dia.

As regras de ciclo de vida do Amazon S3 são executadas uma vez por dia. Depois que as regras do ciclo de vida são executadas, todos os objetos elegíveis para expiração são marcados para exclusão. Como as ações da política de ciclo de vida são assíncronas, são necessários vários dias para que os objetos sejam excluídos fisicamente do bucket. Depois que um objeto é marcado para exclusão, você não receberá mais cobranças pelo armazenamento associado ao objeto.

Use a AWS CLI

Execute o seguinte comando para excluir permanentemente objetos de um bucket do Amazon S3 que você não tenha configurado com o versionamento:

aws s3 rm s3://bucket-name --recursive

Execute o seguinte comando para excluir permanentemente todos os objetos em um bucket do Amazon S3 que esteja suspenso ou que você tenha configurado com o versionamento:

aws s3api delete-objects --bucket bucket-name --delete "$(aws s3api list-object-versions --bucket bucket-name --output=json --query='{Objects: Versions[].{Key:Key,VersionId:VersionId}}')"

Observação: substitua bucket-name pelo nome do bucket do Amazon S3.

Use o console do Amazon S3

Conclua as seguintes etapas:

  1. Abra o console do Amazon S3.
  2. No painel de navegação, selecione o bucket que você deseja esvaziar e escolha Esvaziar.
  3. Na página Esvaziar bucket, insira permanently delete no campo de texto para excluir todos os objetos no bucket e, em seguida, escolha Esvaziar.
  4. (Opcional) Consulte a página Esvaziar bucket: Status para ver o progresso.

Observação: se as versões do objeto em um bucket do Amazon S3 estiverem no modo de governança, a identidade do AWS Identity and Access Management (AWS IAM) exigirá a permissão s3:BypassGovernanceRetention. Para ignorar o modo de governança, você deve incluir o cabeçalho x-amz-bypass-governance-retention:true em sua solicitação. Para as solicitações que você faz no Console de Gerenciamento da AWS, o console aplica o cabeçalho automaticamente às solicitações que têm as permissões necessárias para ignorar o modo de governança.

Durante o período de retenção, uma identidade do IAM não pode excluir versões de objetos que estão protegidas no modo de conformidade, incluindo o usuário-raiz da conta da AWS. Após o período de retenção, exclua os objetos que estão protegidos em conformidade. Depois que o bucket estiver vazio, exclua o bucket do Amazon S3.

Os pontos de acesso estão associados ao bucket

Antes de excluir o bucket do Amazon S3, exclua todos os pontos de acesso conectados ao bucket. Não é possível excluir buckets que tenham pontos de acesso S3 ou pontos de acesso multirregionais vinculados à mesma conta.

A identidade do IAM não tem permissões suficientes

Na política do IAM para a identidade do IAM que você usa para excluir o bucket, conceda as permissões DeleteBucket. Ou inclua a ação da API delete-bucket na política do bucket.

Uma instrução de NEGAÇÃO explícita impede a exclusão

Uma instrução DENY explícita tem precedência sobre uma instrução ALLOW explícita. Confirme se as políticas de identidade, bucket e nuvem privada virtual (VPC) do IAM não contêm instruções DENY explícitas.

Quando o AWS Elastic Beanstalk cria um bucket, as políticas contêm instruções DENY explícitas por padrão. Antes de excluir o bucket do Amazon S3, exclua a instrução DENY explícita ou a política do bucket.

AWS OFICIALAtualizada há um ano