Configurar a política de retenção da lixeira

Por padrão, o Compute Engine retém snapshots padrão excluídos na lixeira por um período de armazenamento de três dias antes de apagar os snapshots permanentemente. É possível configurar um período de armazenamento mais curto ou desativar a lixeira modificando a política de retenção da lixeira.

Este documento descreve como visualizar e configurar a política de retenção da lixeira.

Para ver o conteúdo de uma lixeira ou recuperar um snapshot dela, consulte Gerenciar a lixeira.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Cloud de Confiance by S3NS . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Cloud de Confiance para acessar serviços Cloud de Confiance by S3NS e APIs, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init
  • Defina uma região e uma zona padrão.
  • 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 faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .

Papéis e permissões necessárias

Para receber as permissões necessárias e poder visualizar e gerenciar a política de retenção da lixeira, peça ao administrador para conceder a você o papel do IAM de Administrador do Compute (roles/compute.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para visualizar e gerenciar a política de retenção da lixeira. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para visualizar e gerenciar a política de retenção da lixeira:

  • Para definir, modificar e excluir regras na política de retenção da lixeira: compute.snapshotRecycleBinPolicy.patch
  • Para conferir a política de retenção da lixeira: compute.snapshotRecycleBinPolicy.get
  • Para conferir a política de retenção da lixeira de um snapshot padrão: compute.snapshots.getEffectiveRecycleBinRule no snapshot

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Como funciona a política de retenção da lixeira

A política de retenção da lixeira é uma coleção global de regras que definem o período de armazenamento para snapshots padrão em todos os projetos e organizações.

A política de retenção da lixeira tem os seguintes recursos:

  • O período de armazenamento padrão de três dias é chamado de regra padrão do sistema. Não é possível remover a regra padrão do sistema, mas você pode substituí-la.

  • Para substituir a regra padrão do sistema, adicione regras padrão de projeto ou organização que se aplicam a um projeto ou organização, respectivamente. Também é possível adicionar regras baseadas em tags à política de retenção da lixeira.

  • Os conflitos de regras na política de retenção são resolvidos da seguinte maneira:

    1. As regras com base em tags substituem as regras padrão do projeto e da organização.
    2. Se várias regras baseadas em tags forem aplicáveis a um snapshot padrão, a regra com o período de armazenamento mais longo será usada. No entanto, uma regra padrão de projeto não substitui uma regra baseada em tag, mesmo que a primeira tenha um período de retenção mais longo.
    3. As regras padrão do projeto substituem a regra padrão da organização.
    4. Se nenhuma regra se aplicar a um snapshot padrão, a regra padrão do sistema será usada.

    Para mais informações, consulte Hierarquia de regras na política de retenção da lixeira.

  • Embora o Google não recomende desativar a lixeira, é possível fazer isso em um projeto, uma organização ou uma tag criando uma regra com um período de retenção de dia zero. Todos os snapshots padrão sujeitos à regra são apagados imediatamente quando você os exclui.

  • As mudanças na política de retenção da lixeira não se aplicam a snapshots recuperáveis atuais, ou seja, snapshots padrão excluídos que estão na lixeira.

Limitações

  • Somente snapshots padrão são compatíveis. Os snapshots de arquivo, os Instant Snapshots, os discos e as imagens são apagados permanentemente de imediato após a exclusão.
  • As mudanças na política de retenção da lixeira não se aplicam a snapshots recuperáveis atuais, ou seja, snapshots padrão excluídos que estão na lixeira.
  • Para especificar uma regra de política de retenção para uma tag, ela precisa existir.
  • É possível definir regras de política de retenção apenas para projetos, organizações ou tags.
  • Se você definir uma regra de política de retenção para uma tag, ela só será aplicada a snapshots padrão que tenham essa tag. Os snapshots de arquivamento, os Instant Snapshots, os discos e todos os outros recursos com essa tag não são compatíveis com a lixeira e são apagados permanentemente quando você os exclui.

Definir ou remover o período de armazenamento padrão de um projeto ou organização

Para substituir a regra padrão do sistema de três dias em um projeto ou organização ou desativar a lixeira, defina a regra de política de retenção padrão para o projeto ou a organização.

É possível usar a CLI gcloud ou a REST.

CLI da gcloud

Use o comando gcloud beta compute snapshot-recycle-bin-policy update. Use a flag --set-rule=default para definir a regra de política de retenção padrão e a flag --standard-snapshots-retention-duration-days para especificar o período de armazenamento da regra.

  • Para definir a política de retenção padrão de uma organização, use o seguinte comando:

    gcloud beta compute snapshot-recycle-bin-policy update \
      --set-rule=default \
      --standard-snapshots-retention-duration-days=DEFAULT_RETENTION_PERIOD_DAYS \
      --organization=ORGANIZATION_ID
    

    Substitua os seguintes valores pelos valores correspondentes:

    • DEFAULT_RETENTION_PERIOD_DAYS: o período de retenção, em dias, do projeto ou da organização. Especifique um valor de 0 a 7. Para desativar a lixeira, especifique 0.
    • ORGANIZATION_ID: opcional. O ID da organização, para a qual você quer definir a regra de retenção padrão. Por exemplo, 123456789012. É necessário especificar o ID da organização ou do ID do projeto, mas não ambos.

    Para definir a política de retenção padrão de um projeto, substitua a flag --organization por --project=<var>PROJECT_ID</var> no comando anterior, em que PROJECT_ID é o ID do projeto.

  • Para remover a regra de retenção padrão de um projeto ou organização, use o mesmo comando, mas especifique --remove-rule=default em vez de --set-rule=default.

    Por exemplo, para remover a regra de política de retenção padrão de uma organização:

    gcloud beta compute snapshot-recycle-bin-policy update \
      --organization=ORGANIZATION_ID \
      --remove-rule=default
    

    Substitua ORGANIZATION_ID pelo ID da organização.

REST

Crie uma solicitação PATCH para o método snapshotRecycleBinPolicy.

No corpo da solicitação, inclua um objeto rules que especifica o período padrão da lixeira, em dias.

  • Para adicionar ou modificar uma política de retenção de um projeto:

    PATCH  https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
    {
    "rules": {
      "default": {
        "standardSnapshots": {
          "retentionDurationDays": DEFAULT_RETENTION_PERIOD_DAYS
        }
      }
    }
    }
    

    Substitua os seguintes valores pelos valores correspondentes:

    • PROJECT_ID: o ID do projeto, por exemplo, dev-project.
    • DEFAULT_RETENTION_PERIOD_DAYS: o período de armazenamento padrão, em dias. Especifique um valor de 0 a 7. Para desativar a lixeira, especifique 0.
  • Para adicionar ou modificar uma política de retenção de uma organização, faça uma solicitação PATCH como no exemplo anterior, mas use o seguinte URL.

    PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/

    O corpo da solicitação é o mesmo do exemplo anterior.

    Substitua ORGANIZATION_ID pelo ID da organização. Por exemplo, 123456789012.

  • Para remover a regra de retenção padrão de um projeto ou organização, faça uma solicitação PATCH semelhante, mas especifique null para a regra default.

    Por exemplo, para remover a regra de retenção padrão de uma organização:

    PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/
    {
    "rules": {
       "default": null
     }
    }
    

    Substitua ORGANIZATION_ID pelo ID da organização.

Definir ou remover a política de retenção de uma tag

Para definir um período de armazenamento específico para snapshots padrão com uma tag específica, defina uma regra baseada em tag no nível do projeto ou da organização. As regras baseadas em tags substituem a regra padrão de um projeto ou organização e têm as seguintes características:

  • As regras baseadas em tags no nível da organização ou do projeto se aplicam a todos os snapshots padrão na organização ou no projeto, respectivamente, que têm a tag.
  • As regras de tag para envolvidos no projeto substituem as regras no nível da organização somente se a regra para envolvidos no projeto tiver um período de armazenamento mais longo.

    Por exemplo, uma regra de tag no nível da organização com um período de armazenamento de dois dias substitui uma regra de tag para envolvidos no projeto de um dia.

Para mais informações, consulte Hierarquia de regras na política de retenção da lixeira.

É possível usar a CLI gcloud ou a REST.

CLI da gcloud

Para definir uma regra de política de retenção para uma tag, use o comando gcloud beta compute snapshot-recycle-bin-policy update. Use a flag --set-rule para especificar o nome da tag e a flag --standard-snapshots-retention-duration-days para especificar o período de armazenamento da lixeira, em dias, para a tag.

gcloud beta compute snapshot-recycle-bin-policy update \
  --set-rule=TAG_NAMESPACED_NAME \
  --standard-snapshots-retention-duration-days=RETENTION_PERIOD_DAYS \
  --organization=ORGANIZATION_ID

Substitua os seguintes valores pelos valores correspondentes:

  • TAG_NAMESPACED_NAME: o nome do namespace da tag, incluindo o valor dela. Por exemplo, my-project-id/tag-key/tag-value ou my-organization-id/tag-key/tag-value.
  • RETENTION_PERIOD_DAYS: o período de armazenamento em dias, de 0 a 7. Para desativar a lixeira de snapshots com essa tag, especifique 0.
  • ORGANIZATION_ID: opcional. O ID da organização a que a regra se aplica. Por exemplo, 123456789012. É necessário especificar o ID da organização ou o ID do projeto, mas não ambos.

Para definir a política de retenção padrão de um projeto, substitua a flag --organization por --project=<var>PROJECT_ID</var> no comando anterior, em que PROJECT_ID é o ID do projeto.

Para remover uma regra de política de retenção de uma tag, use o mesmo comando, mas especifique --remove-rule=TAG_NAMESPACED_NAME em vez de --set-rule. Por exemplo, para remover uma regra baseada em tag de uma organização:

gcloud beta compute snapshot-recycle-bin-policy update \
  --organization=ORGANIZATION_ID \
  --remove-rule=TAG_NAMESPACED_NAME

REST

Para definir uma regra de política de retenção para uma tag, crie uma solicitação PATCH para o método snapshotRecycleBinPolicy. No corpo da solicitação, inclua um objeto rules que especifica o nome da tag e o período de armazenamento, em dias.

  • Para definir ou atualizar uma regra de política de retenção para uma tag em um projeto:
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy/
{
  "rules": {
    "TAG_NAMESPACED_NAME_1": {
      "standardSnapshots": { 
        "retentionDurationDays": RETENTION_PERIOD_DAYS
      }
    }
  }
}

Substitua os seguintes valores pelos valores correspondentes:

  • PROJECT_ID: o ID do projeto.
  • TAG_NAMESPACED_NAME: o nome do namespace da tag, incluindo o valor dela. Por exemplo, my-project-id/env/prod ou my-organization-id/env/build.
  • RETENTION_PERIOD_DAYS: o período de armazenamento em dias, de 0 a 7. Para desativar a lixeira de snapshots com essa tag, especifique 0.

  • Para definir ou atualizar uma regra de política de retenção para uma tag em uma organização, faça uma solicitação PATCH como no exemplo anterior, mas use o seguinte URL.

PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/

Substitua ORGANIZATION_ID pelo ID da organização. O corpo da solicitação é como descrito no exemplo anterior.

  • Para remover uma regra de política de retenção de uma tag, crie uma solicitação PATCH como nos exemplos anteriores, mas especifique null para a regra baseada em tag. Por exemplo, para remover a regra de política de retenção de uma regra baseada em tags em um projeto:
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
{
  "rules": {
    "TAG_NAMESPACED_NAME_1": null
  }
}

Ver a política de retenção da lixeira de um projeto ou organização

Para determinar se um projeto ou uma organização tem regras personalizadas para a lixeira, confira as regras baseadas em tags ou verifique se a lixeira está desativada. Para isso, consulte as regras na política de retenção da lixeira do projeto ou da organização.

Para conferir as regras em uma política de retenção da lixeira de um projeto ou organização, use a CLI gcloud ou o REST.

CLI da gcloud

Para conferir a política de retenção da lixeira de um projeto ou uma organização, incluindo as regras baseadas em tag, use o comando gcloud beta compute snapshot-recycle-bin-policy describe:

  • Para conferir a política de retenção da lixeira de uma organização:

    gcloud beta compute snapshot-recycle-bin-policy describe \
      --organization=ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo ID da organização.

  • Para conferir a política de retenção da lixeira de um projeto:

    gcloud beta compute snapshot-recycle-bin-policy describe \
    --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto.

A saída é uma lista de objetos de regra semelhante a esta: A regra padrão do sistema de três dias está incluída na saída.

  rules:
    default:
      standardSnapshots:
        retentionDurationDays: '2'
    database-project/Testing-tag-key/build:
      standardSnapshots:
        retentionDurationDays: '0'
    database-project/Testing-tag-key/critical:
      standardSnapshots:
        retentionDurationDays: '5'
    systemRules:
      default:
        standardSnapshots:
          retentionDurationDays: '3'

O campo retentionDurationDays de cada regra indica o período de retenção dela, em dias. Neste exemplo, o projeto database-project tem três regras:

  • uma regra de cinco dias para todos os snapshots com a tag Testing-tag-key/critical.
  • exclusão imediata de todos os snapshots com a tag Testing-tag-key/build.
  • um período de retenção padrão de dois dias para todos os outros snapshots no projeto.

REST

Para conferir todas as regras de política de retenção de um projeto ou organização, incluindo as regras baseadas em tags, crie uma solicitação GET para o método snapshotRecycleBinPolicy.get.

  • Para conferir a política de retenção de uma organização:

    GET https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy
    

    Substitua ORGANIZATION_ID pelo ID da organização.

  • Para conferir a política de retenção de um projeto:

    GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
    

    Substitua PROJECT_ID pelo ID do projeto.

A resposta é semelhante a esta: A regra padrão do sistema de três dias está incluída na saída.

  {
    "rules": {
     "default": {
      "standardSnapshots": {
        "retentionDurationDays": "2"
      }
    },
    "database-project/Testing-tag-key/build": {
      "standardSnapshots": {
        "retentionDurationDays": "0"
      }
    },
    "database-project/Testing-tag-key/critical": {
      "standardSnapshots": {
        "retentionDurationDays": "5"
      }
    },
     "systemRules": {
      "default": {
       "standardSnapshots": {
         "retentionDurationDays": "3"
      }
     }
    }
  }
 }

O campo retentionDurationDays de cada regra indica o período de retenção dela, em dias. Neste exemplo, o projeto database-project tem três regras:

  • uma regra de cinco dias para todos os snapshots com a tag Testing-tag-key/critical.
  • exclusão imediata de todos os snapshots com a tag Testing-tag-key/build.
  • um período de retenção padrão de dois dias para todos os outros snapshots no projeto.

Se o período de armazenamento for zero, o Compute Engine vai apagar permanentemente o snapshot imediatamente após a exclusão. Caso contrário, o período de armazenamento indica por quanto tempo o Compute Engine vai manter o snapshot na lixeira antes de excluí-lo permanentemente.

Ver o período de armazenamento da lixeira de uma tag

Para conferir a política de retenção de uma tag, recupere a política de retenção do projeto ou da organização em que a tag está definida.

Verificar o período de armazenamento da lixeira de um snapshot específico

Para determinar se um snapshot padrão será retido na lixeira, se ele for excluído e por quanto tempo, verifique o período de armazenamento. Se o período de armazenamento for zero, o snapshot será apagado permanentemente imediatamente após a exclusão. Caso contrário, o período de armazenamento indica por quanto tempo o snapshot será mantido na lixeira se for excluído.

É possível verificar o período de armazenamento de um snapshot específico usando o Cloud de Confiance console, a CLI gcloud ou REST.

Console do Cloud de Confiance

  1. No console do Cloud de Confiance , acesse a página Backups.

Acessar a página Snapshots

  1. Na guia Snapshots, veja a lista de snapshots do projeto.

  2. Na coluna Nome, clique no nome do snapshot padrão. A página Detalhes do snapshot do snapshot selecionado é exibida.

  3. A propriedade Retenção da lixeira mostra o período de armazenamento da lixeira do snapshot.

CLI da gcloud

Para conferir o período de armazenamento de um snapshot específico, use o comando gcloud beta compute snapshots get-effective-recycle-bin-rule.

gcloud beta compute snapshots get-effective-recycle-bin-rule \
  SNAPSHOT_NAME \
  --project=PROJECT_ID

Substitua os seguintes valores pelos valores correspondentes:

  • PROJECT_ID: o ID do projeto que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.

O resultado será o seguinte:

retentionDurationDays: '5'

O campo retentionDurationDays indica o período de retenção da lixeira dos snapshots, em dias.

REST

Para conferir o período de armazenamento de um snapshot específico, crie uma solicitação GET para o método getEffectiveRecycleBinRule.

GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME/getEffectiveRecycleBinRule

Substitua os seguintes valores pelos valores correspondentes:

  • PROJECT_ID: o ID do projeto que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.

O resultado parecido com este:

{
  "retentionDurationDays": "5"
}

O campo retentionDurationDays indica o período de retenção da lixeira dos snapshots, em dias.

Se o período de armazenamento for zero, o Compute Engine vai apagar permanentemente o snapshot imediatamente após a exclusão. Caso contrário, o período de armazenamento indica por quanto tempo o Compute Engine vai manter o snapshot na lixeira antes de excluí-lo permanentemente.

Para determinar quais regras da política de retenção se aplicam ao snapshot, compare as tags dele com as tags e a regra padrão na política de retenção do projeto e da organização.

Para mudar o período de armazenamento de um snapshot padrão, escolha uma das seguintes opções:

A seguir