Neste documento, você saberá como proteger instâncias de VMs específicas contra exclusão, definindo a propriedade deletionProtection
em um recurso de instância. 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. É preciso ter uma maneira de proteger essas instâncias de VM contra a exclusão porque elas podem precisar permanecer em execução indefinidamente.
É possível proteger instâncias de VM contra exclusão acidental definindo a sinalização deletionProtection
. Se um usuário tentar excluir uma instância de VM que tenha a sinalização deletionProtection
definida, a solicitação falhará. Somente usuários com um papel que tenha a permissão compute.instances.create
podem redefinir essa sinalização para permitir que o recurso seja excluído.
Antes de começar
- Leia a documentação sobre instâncias.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
- Defina uma região e uma zona padrão.
Go
Para usar as amostras de Go nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para usar as amostras de Java nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para usar as amostras de Node.js nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para usar as amostras de PHP nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para usar as amostras de Python nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
-
Especificações
A prevenção contra exclusão não impede a realização das ações a seguir:
- Encerrar uma instância internamente na VM (executando o comando
shutdown
, por exemplo) - Interromper uma instância
- Redefinir uma instância
- Como suspender uma instância
- Remover instâncias devido a fraudes e abusos depois de serem detectadas pelo Google
- Remover instâncias devido ao encerramento do projeto
- Encerrar uma instância internamente na VM (executando o comando
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, é preciso que o recurso tenha as permissões abaixo OU um dos papéis do IAM a seguir.
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
No console do Google Cloud, acesse a página Criar uma instância.
Expanda a seção Opções avançadas e faça o seguinte:
- Expanda a seção Gerenciamento.
- Marque a caixa de seleção Ativar proteção contra exclusão.
Continue com o processo de criação da VM.
gcloud
Ao criar uma instância de VM, inclua as sinalizações --deletion-protection
ou no-deletion-protection
. A proteção contra exclusão fica desativada por padrão. 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
Go
Java
Node.js
Python
REST
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://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"deletionProtection": "true",
...
}
Para desativar a proteção contra exclusão, defina deletionProtection
como false
.
Como determinar se uma instância está com a proteção contra exclusão ativada
É possível determinar se uma instância tem a proteção contra exclusão ativada em gcloud tool
ou na API.
Console
Acesse a página "Instâncias de VM".
Se solicitado, selecione o projeto e clique em Continuar.
Na página Instâncias de VMs, clique no menu suspenso Colunas e ative a Proteção contra exclusão.
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 CLI gcloud, execute o comando instances describe
e procure
o campo de proteção contra exclusão. Exemplo:
gcloud compute instances describe example-instance | grep "deletionProtection"
A ferramenta retornará o valor da propriedade deletionProtection
, definida como true
ou false
:
deletionProtection: false
Go
Java
Node.js
Python
REST
Na API, crie uma solicitação GET
e procure o campo deletionProtection
:
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
Como alternar a proteção contra exclusão em instâncias atuais
É 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
Acesse a página "Instâncias de VM".
Se solicitado, selecione o projeto e clique em Continuar.
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.
Na página "Detalhes da instância", conclua as etapas a seguir:
- Clique no botão Editar na parte superior da página.
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.
Salve as alterações.
gcloud
Na CLI 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 para uma instância chamada example-vm
:
gcloud compute instances update example-vm --deletion-protection
Go
Java
Node.js
Python
REST
Na API, faça uma solicitação POST
ao método setDeletionProtection
com o parâmetro de consulta deletionProtection
. Exemplo:
POST https://compute.googleapis.com/compute/v1/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.
A seguir
- Aprenda a interromper uma instância.
- Exclua as instâncias que não são mais necessárias.