Veja nesta página como proteger instâncias do Cloud SQL contra exclusão acidental.
Visão geral
A proteção contra exclusão de instâncias permite evitar a remoção acidental de instâncias novas e atuais. Com a proteção contra exclusão de instâncias, é possível proteger instâncias importantes para seus aplicativos e serviços.
É possível ativar a opção de proteção contra exclusão ao criar uma instância. Além disso, é possível ativar essa opção em uma instância atual. Nos dois casos, a exclusão é feita no nível da instância. Por padrão, a opção de proteção contra exclusão fica desativada, a menos que você use o Google Cloud console ou o Terraform para criar uma instância.
Ao clonar uma instância, a nova instância recebe a opção de proteção contra exclusão (ativada ou desativada) da instância de origem.
Planejar a proteção contra exclusão
Se você planeja criar uma instância, decida se quer proteger a nova instância contra exclusão acidental. Por exemplo, uma instância crítica precisa ser protegida dessa forma.
Verifique também se existem instâncias atuais que você quer proteger contra a exclusão acidental. Se você tiver várias instâncias a serem protegidas, ative a opção em cada uma delas.
Considerar a proteção contra exclusão para réplicas de leitura
Quando você cria uma réplica de leitura, ela não recebe uma configuração de proteção de exclusão da instância principal. Essa configuração permanece independente. No entanto, é possível ativar a proteção contra exclusão em uma réplica de leitura nova ou atual.
Para réplicas de leitura do Cloud SQL, a opção de proteção contra exclusão funciona da mesma maneira que para instâncias do Cloud SQL.
Confirmar as permissões ou papéis necessários
Para ativar a opção de proteção contra exclusão, a conta de serviço associada à instância do Cloud SQL precisa ter determinadas permissões ou papéis do IAM.
Permissões ou papéis para criar uma instância
Como no caso de operações relacionadas, a opção de proteção contra exclusão exige
a permissão cloudsql.instances.create ou o papel cloudsql.admin. Assim,
ao criar uma instância, nenhuma permissão extra é necessária para ativar a proteção
contra exclusão.
Permissões ou papéis para editar uma instância
Como no caso de operações relacionadas, as mudanças de proteção contra exclusão exigem a permissão
cloudsql.instances.update ou o papel cloudsql.editor. Assim, quando você editar uma instância para proteção contra exclusão, nenhuma outra permissão será necessária.
Planejar a exclusão da instância
Se você planeja excluir uma instância, primeiro faça o seguinte:
- confirme se é seguro excluir a instância
- confirme que a proteção contra exclusão está desativada. Se necessário, edite a instância para desativar a proteção contra exclusão
Limitações da proteção contra exclusão
A proteção contra exclusão em uma instância não impede:
- a interrupção da instância
- o reinício da instância
- a edição da instância
- Como excluir um backup
- a suspensão da instância devido a problemas de faturamento
- a exclusão da instância suspensa devido a problemas de faturamento
- a exclusão da instância devido a uma exclusão de projeto
Ativar a proteção contra exclusão em uma nova instância
Confira a seguir as maneiras de ativar a opção de proteção contra exclusão. Por padrão, a opção de proteção contra exclusão fica desativada, a menos que você use o Google Cloud console ou o Terraform para criar uma instância.
Se a proteção contra exclusão estiver ativada, ocorrerá uma falha ao tentar excluir a instância.
Console
- Siga as etapas para começar a criar uma instância.
- Na seção Personalizar sua instância, expanda Mostrar opções de configuração.
- Abra Proteção de dados.
- Na seção Proteção de dados, confirme se a caixa de seleção Impedir a exclusão da instância está marcada.
- Conforme necessário para sua instância, selecione outras opções de configuração.
- Clique em Criar instância.
gcloud
Para ativar a proteção contra exclusão durante a criação da instância, use o
gcloud sql instances create
comando, semelhante ao seguinte:
gcloud sql instances create INSTANCE_NAME \ --deletion-protection
REST v1
Para ativar a proteção contra exclusão durante a criação da instância, especifique true no campo deletionProtection.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância escolhida
- database-version: a versão do banco de dados.
- region: a região escolhida
- machine-type: o tipo de máquina escolhido
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON da solicitação:
{
"name": "instance-id",
"region": "region",
"databaseVersion": "database-version",
"settings": {
"tier": "machine-type",
"deletionProtectionEnabled": true
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2022-05-24T15:34:10.929Z",
"operationType": "CREATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Para ativar a proteção contra exclusão durante a criação da instância, especifique true no campo deletionProtection.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância escolhida
- database-version: a versão do banco de dados.
- region: a região escolhida
- machine-type: o tipo de máquina escolhido
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances
Corpo JSON da solicitação:
{
"name": "instance-id",
"region": "region",
"databaseVersion": "database-version",
"settings": {
"tier": "machine-type",
"deletionProtectionEnabled": true
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2022-05-26T15:37:10.929Z",
"operationType": "CREATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Ativar ou desativar a proteção contra exclusão em uma instância atual
Confira a seguir as maneiras de editar uma instância para proteção contra exclusão. Se você ativar a opção, uma tentativa subsequente de excluir a instância falhará.
Console
- Siga as etapas para começar a editar uma instância.
- Depois de clicar em Editar, encontre a seção Personalizar sua instância e expanda Mostrar opções de configuração.
- Abra Proteção de dados.
- Na seção Proteção de dados, marque ou desmarque a caixa de seleção Impedir a exclusão da instância.
- Se for necessário para sua instância, edite outras opções de configuração.
- Clique em Salvar.
gcloud
Para ativar a proteção contra exclusão ao atualizar uma instância, use o
gcloud sql instances patch
comando, semelhante ao seguinte:
gcloud sql instances patch INSTANCE_NAME \ --deletion-protection
Para desativar a proteção contra exclusão ao atualizar uma instância, use o
gcloud sql instances patch
comando, semelhante ao seguinte:
gcloud sql instances patch INSTANCE_NAME \ --no-deletion-protection
REST v1
Para ativar a proteção contra exclusão ao atualizar uma instância, especifique true no campo deletionProtection. Para remover a proteção contra exclusão, especifique false nesse campo.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância escolhida
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Corpo JSON da solicitação:
{
"settings": {
"deletionProtectionEnabled": true
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2022-06-1T03:42:12.281Z",
"operationType": "CREATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Para ativar a proteção contra exclusão ao atualizar uma instância, especifique true no campo deletionProtection. Para remover a proteção contra exclusão, especifique false nesse campo.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância escolhida
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id
Corpo JSON da solicitação:
{
"settings": {
"deletionProtectionEnabled": true
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2022-06-1T03:32:12.281Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}