Esta página descreve como proteger as instâncias do Cloud SQL contra a eliminação acidental.
Vista geral
A proteção contra eliminação de instâncias permite-lhe evitar a remoção acidental de instâncias existentes e novas. Com a proteção contra eliminação de instâncias, pode proteger as instâncias importantes para as suas aplicações e serviços.
Pode definir a opção de proteção contra eliminação quando cria uma instância. Além disso, pode definir esta opção numa instância existente. Em ambos os casos, a eliminação é impedida ao nível da instância. Por predefinição, a opção de proteção contra eliminação está desativada, a menos que use a Google Cloud consola ou o Terraform para criar uma instância.
Quando clona uma instância, a nova instância recebe a opção de proteção contra eliminação (ativada ou desativada) da instância de origem.
Planeamento da proteção contra eliminação
Se planeia criar uma instância, decida se quer proteger a nova instância contra eliminação acidental. Por exemplo, uma instância crítica deve ser protegida desta forma.
Considere também se existem instâncias que quer proteger contra a eliminação acidental. Se tiver várias instâncias para proteger, defina a opção em cada instância.
Considerar a proteção contra eliminação para réplicas de leitura
Quando cria uma réplica de leitura, esta não recebe uma definição de proteção contra eliminação da instância principal. Esta definição permanece independente. No entanto, pode ativar a proteção contra eliminação numa réplica de leitura nova ou existente.
Para réplicas de leitura do Cloud SQL, a opção de proteção contra eliminação funciona da mesma forma que para instâncias do Cloud SQL.
Confirmar as autorizações ou as funções necessárias
Para definir a opção de proteção contra eliminação, a conta de serviço da instância do Cloud SQL tem de ter determinadas autorizações ou funções do IAM.
Autorizações ou funções para criar uma instância
Tal como no caso das operações relacionadas, a opção de proteção contra eliminação requer a autorização cloudsql.instances.create
ou a função cloudsql.admin
. Assim, quando cria uma instância, não são necessárias autorizações adicionais para ativar a proteção contra eliminação.
Autorizações ou funções para editar uma instância
Tal como no caso das operações relacionadas, as alterações à proteção contra eliminação requerem a autorização cloudsql.instances.update
ou a função cloudsql.editor
. Assim, quando edita uma instância para proteção contra eliminação, não são necessárias autorizações adicionais.
Planeamento da eliminação de instâncias
Se planeia eliminar uma instância, comece por fazer o seguinte:
- Confirme que é seguro eliminar a instância
- Confirme se a proteção contra eliminação está desativada. Se necessário, edite a instância para desativar a proteção contra eliminação
Limitações da proteção contra eliminação
A proteção contra eliminação numa instância não impede:
- Parar a instância
- Reiniciar a instância
- Editar a instância
- Eliminar uma cópia de segurança
- Suspender a instância devido a problemas de faturação
- Eliminar a instância suspensa devido a problemas de faturação
- Eliminar a instância devido à eliminação de um projeto
A definir proteção contra eliminação numa nova instância
Seguem-se as formas de definir a opção de proteção contra eliminação. Por predefinição, a opção de proteção contra eliminação está desativada, a menos que use a Google Cloud consola ou o Terraform para criar uma instância.
Se a proteção contra eliminação estiver ativada, uma tentativa de eliminar a instância falha.
Consola
- Siga os passos para começar a criar uma instância.
- Em Personalize a sua instância, clique na seta de menu pendente Mostrar opções de configuração.
- Em Proteção de dados, confirme que a caixa de verificação Ativar proteção contra eliminação está selecionada.
- Conforme necessário para a sua instância, selecione outras opções de configuração.
- Clique em Criar instância.
gcloud
Para definir a proteção contra eliminaçã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 eliminação durante a criação da instância, especifique
true
no campo deletionProtection
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: ID da instância pretendido
- database-version: a versão da base de dados
- region: região pretendida
- machine-type: tipo de máquina pretendido
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON do pedido:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 eliminação durante a criação da instância, especifique
true
no campo deletionProtection
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: ID da instância pretendido
- database-version: a versão da base de dados
- region: região pretendida
- machine-type: tipo de máquina pretendido
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances
Corpo JSON do pedido:
{ "name": "instance-id", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "deletionProtectionEnabled": true } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" }
Definir ou remover a proteção contra eliminação numa instância existente
Seguem-se as formas de editar uma instância para proteção contra eliminação. Se ativar a opção, uma tentativa subsequente de eliminar a instância falha.
Consola
- Siga os passos para começar a editar uma instância.
- Depois de clicar em Editar, encontre a secção Personalize a sua instância.
- Em Proteção de dados, selecione ou desmarque a caixa de verificação Ativar proteção contra eliminação.
- Conforme necessário para a sua instância, edite outras opções de configuração.
- Clique em Guardar.
gcloud
Para ativar a proteção contra eliminação quando atualiza uma instância, use um comando semelhante ao seguinte:
gcloud sql instances patch [INSTANCE_NAME] \ --deletion-protection
Para desativar a proteção contra eliminação quando atualiza 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 eliminação quando atualiza uma instância, especifique
true
no campo deletionProtection
. Para remover a proteção contra eliminação, especifique false
nesse campo.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: ID da instância pretendido
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Corpo JSON do pedido:
{ "settings": { "deletionProtectionEnabled": true } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 eliminação quando atualiza uma instância, especifique
true
no campo deletionProtection
. Para remover a proteção contra eliminação, especifique false
nesse campo.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do seu projeto
- instance-id: ID da instância pretendido
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/instance-id
Corpo JSON do pedido:
{ "settings": { "deletionProtectionEnabled": true } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" }