Como evitar exclusão acidental de VM

Neste documento, descrevemos como proteger instâncias de VM específicas contra exclusão ao definir a propriedade deletionProtection em um recurso Instance. Para saber mais sobre instâncias de VM, leia a documentação sobre instâncias.

Como parte da carga de trabalho, é possível que haja determinadas instâncias de VM que são críticas para a execução do aplicativo ou de serviços. Por exemplo, uma instância que executa um servidor SQL ou um servidor usado como gerenciador de licenças etc. Talvez seja necessário que essas instâncias de VM permaneçam em execução indefinidamente. Portanto, é preciso protegê-las contra a exclusão.

É possível proteger instâncias de VM contra exclusões acidentais configurando a sinalização deletionProtection. Se um usuário tentar excluir uma instância VM com a sinalização deletionProtection configurada, essa solicitação de exclusão falhará. Somente o usuário com um papel que tenha a permissão compute.instances.create pode redefinir essa sinalização para permitir a exclusão do recurso.

Antes de começar

Especificações

  • A prevenção contra exclusão não impede a realização das ações a seguir:

  • A proteção contra exclusão pode ser aplicada a VMs regulares e preemptivas.

  • Não é possível aplicar a prevenção contra exclusão a VMs que fazem parte de um grupo de instâncias gerenciadas. No entanto, é possível aplicá-la a instâncias que fazem parte de grupos de instâncias não gerenciadas.

  • Não é possível especificar a prevenção contra exclusão nos modelos de instância.

Permissões

Para executar esta tarefa, são necessárias as seguintes permissões OU um dos papéis do IAM a seguir no recurso.

Permissões

  • compute.instances.create

Papéis

  • compute.admin
  • compute.instanceAdmin.v1

Como configurar a proteção contra exclusão durante a criação da instância

Por padrão, a proteção contra exclusão está desativada nas instâncias. Ative a proteção contra exclusão usando as instruções abaixo.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Se solicitado, selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Expanda a seção Gerenciamento, segurança, discos, rede, locatário único.
  5. Em Gerenciamento marque a caixa de seleção Ativar proteção contra exclusão.

    Captura de tela da caixa de seleção de exclusão de VMs

  6. Continue com o processo de criação da VM.

gcloud

Durante a criação de uma instância de VM, inclua a sinalização --deletion-protection ou no-deletion-protection. Por padrão, a proteção contra exclusão está desativada. Portanto, para ativá-la, use este comando:

gcloud compute instances create [INSTANCE_NAME] --deletion-protection

[INSTANCE_NAME] é o nome da instância que você quer proteger.

Para desativar a proteção contra exclusão durante a criação, use este comando:

gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection

API

Na API, durante a criação de uma instância de VM, inclua a propriedade deletionProtection no corpo da solicitação. Por exemplo:

POST https://www.googleapis.com/v1/compute/projects/[PROJECT_ID]/zones/[ZONE]/instances

{
  "name": "[INSTANCE_NAME]",
  "deletionProtection": "true",
  ...
}

Para desativar a proteção contra exclusão, defina deletionProtection como false.

Como alternar a proteção contra exclusão em instâncias existentes

É possível alternar a proteção contra exclusão nas instâncias existentes, independentemente do status atual delas. Especificamente, não é necessário interromper a instância para ativar ou desativar a proteção contra exclusão.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Se solicitado, selecione o projeto e clique em Continuar.
  3. Clique no nome da instância em que você quer alterar a proteção de exclusão. A página de detalhes da instância é aberta.
  4. Na página "Detalhes da instância", conclua as etapas a seguir:

    1. Clique no botão Editar na parte superior da página.
    2. Em Proteção contra exclusão, marque ou desmarque a caixa de seleção para ativar ou desativar a proteção contra exclusão, respectivamente.

      Captura de tela da caixa de seleção de exclusão de VMs

    3. Salve as alterações.

gcloud

Na ferramenta gcloud, execute o comando update com a sinalização --deletion-protection ou --no-deletion-protection:

gcloud compute instances update [INSTANCE_NAME] \
    [--deletion-protection | --no-deletion-protection]

Por exemplo, para ativar a proteção contra exclusão em uma instância denominada example-vm:

gcloud compute instances update example-vm --deletion-protection

API

Na API, faça uma solicitação POST para o método setDeletionProtection com o parâmetro de consulta delectionProtection. Por exemplo:

POST https://www.googleapis.com/v1/compute/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true

Para desativar a proteção contra exclusão, defina deletionProtection como "false". Não forneça um corpo de solicitação.

Como determinar se uma instância está com a proteção contra exclusão ativada

É possível determinar se uma instância está com a proteção contra exclusão ativada na gcloud tool ou na API.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Se solicitado, selecione o projeto e clique em Continuar.
  3. Na página Instâncias de VMs, clique no menu suspenso Colunas e ative a Proteção contra exclusão.

    Captura de tela da opção de exclusão de VMs

  4. Uma nova coluna aparecerá com o ícone da proteção contra exclusão. Se uma VM estiver com a proteção contra exclusão ativada, esse ícone aparecerá ao lado do nome da instância.

gcloud

Na ferramenta gcloud, execute o comando instances describe e pesquise o campo de proteção contra exclusão. Por exemplo:

gcloud compute instances describe example-instance | grep "deletionProtection"

A ferramenta retorna o valor da propriedade deletionProtection, definida como true ou false:

deletionProtection: false

API

Na API, faça uma solicitação GET e procure o campo deletionProtection:

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine