Como resolvo o erro “A última política aplicada não pode ser excluída” no CloudFormation?

3 minuto de leitura
0

Quero resolver o erro “A última política aplicada não pode ser excluída” no AWS CloudFormation.

Breve descrição

Quando você tenta excluir sua pilha ou recursos de política do CloudFormation, como AWS::SQS::QueuePolicy, AWS::S3::BucketPolicy e AWS::SNS::TopicPolicy, você pode receber o seguinte erro:

“A última política aplicada não pode ser excluída. Exclua as demais políticas aplicadas a esse recurso antes de excluir a última política aplicada.”

Se você aplicar uma política após outra no mesmo recurso, a segunda política se tornará a última aplicada. Quando você tenta excluir a segunda política, o CloudFormation não permite que você a exclua.

Solucione esse erro com base nos seguintes cenários:

  • A pilha e o recurso de política encontram-se no estado DELETE\ _FAILED.
  • O recurso de política é excluído quando há outros recursos de política que outras pilhas implantaram.

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

A pilha e o recurso de política encontram-se no estado DELETE\ _FAILED

Se você tentou excluir uma pilha e o recurso de política não foi excluído, tente excluir a pilha novamente e pule o recurso. Para resolver uma pilha e uma política que estão no estado DELETE\ _FAILED, execute uma das seguintes ações:

  • Abra o console do CloudFormation e escolha Excluir pilha. Na janela pop-up Você pode reter recursos que não está conseguindo excluir, em Recursos a serem retidos, selecione o recurso de política.
  • Execute o seguinte comando da AWS CLI:
    aws cloudformation delete-stack --stack-name example-stack-name --retain-resources example-policy-resource-id
    **Observação:**substitua example-stack-name pela pilha que não conseguiu excluir. Substitua example-policy-resource-id pela ID do recurso de política que não conseguiu excluir.

Quando você conclui uma das ações anteriores e tenta excluir a pilha novamente, os recursos que você selecionou para reter não são excluídos. O status da sua pilha mudará para DELETE_COMPLETE.

**Observação:**para evitar cobranças desnecessárias, exclua manualmente os recursos retidos ao excluir a pilha. Se o recurso ao qual você aplicou a política for excluído, não será necessário excluir manualmente os recursos. O recurso de política é excluído quando você exclui o recurso de destino.

Para mais informações, consulte Como excluo uma pilha do AWS CloudFormation que está presa no status DELETE_FAILED?

Excluir recursos de política de diferentes pilhas que aplicou ao mesmo recurso

Se você aplicou várias políticas de pilhas diferentes ao mesmo recurso, deverá excluir a primeira política aplicada.

Por exemplo, você cria ExamplePolicyA em example-stack-A e aplica a política a exampleQueue1. Em seguida, você cria ExamplePolicyB em example-stack-B e aplica a política a exampleQueue1 com permissões diferentes. Quando você tenta excluir ExamplePolicyB, recebe o seguinte erro:

“A última política aplicada não pode ser excluída. Exclua as demais políticas aplicadas a esse recurso antes de excluir a última política aplicada.”

Para excluir ExamplePolicyB, você deve primeiro excluir ExamplePolicyA.

**Observação:**é uma prática recomendada excluir políticas anteriores antes de criar uma nova.

AWS OFICIAL
AWS OFICIALAtualizada há um ano