Impeça a eliminação de uma instância

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

  1. Siga os passos para começar a criar uma instância.
  2. Em Personalize a sua instância, clique na seta de menu pendente Mostrar opções de configuração.
  3. Em Proteção de dados, confirme que a caixa de verificação Ativar proteção contra eliminação está selecionada.
  4. Conforme necessário para a sua instância, selecione outras opções de configuração.
  5. 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"
}
Para ver como o pedido da API REST subjacente é construído para esta tarefa, consulte o Explorador de APIs na página instances:insert.

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

  1. Siga os passos para começar a editar uma instância.
  2. Depois de clicar em Editar, encontre a secção Personalize a sua instância.
  3. Em Proteção de dados, selecione ou desmarque a caixa de verificação Ativar proteção contra eliminação.
  4. Conforme necessário para a sua instância, edite outras opções de configuração.
  5. 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"
}
Para ver como o pedido da API REST subjacente é criado para esta tarefa, consulte o Explorador de APIs na página instances:patch.