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 definir a opção de proteção contra exclusão ao criar uma instância. Além disso, é possível definir 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 console do Google Cloud 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.
Planejamento para 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 existentes que você quer proteger contra a exclusão acidental. Se você tiver várias instâncias a serem protegidas, defina a opção em cada uma delas.
Como 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.
Como confirmar as permissões ou papéis necessários
Para definir a opção de proteção contra exclusão, a conta de serviço da 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.
Como 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
a configuração da proteção contra exclusão em uma nova instância
Veja a seguir as maneiras de definir 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 console do Google Cloud 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.
- Em Personalizar sua instância, clique na seta suspensa Mostrar opções de configuração.
- Em Proteção de dados, confirme se a caixa de seleção Ativar proteção contra exclusão está marcada.
- Conforme necessário para sua instância, selecione outras opções de configuração.
- Clique em Criar instância.
gcloud
Para definir a proteção contra exclusão durante a criação da instância, use um comando semelhante ao seguinte:
gcloud sql instances create [INSTANCE_NAME] \ --deletion-protection
REST v1
Para definir 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 definir 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" }
Como configurar ou remover a proteção contra exclusão em uma instância atual
Veja 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.
- Em Proteção de dados, marque ou desmarque a caixa de seleção Ativar proteção contra exclusão.
- Se for necessário para sua instância, edite outras opções de configuração.
- Clique em Save.
gcloud
Para ativar a proteção contra exclusão ao atualizar uma instância, use um 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 um comando semelhante ao seguinte:
gcloud sql instances patch [INSTANCE_NAME] \ --no-deletion-protection
REST v1
Para definir 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 definir 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" }