Definir locais de criação e restauração para snapshots de escopo regional


Por padrão, os snapshots são criados com um escopo global. Os snapshots de escopo global são armazenados em um local de armazenamento específico e podem ser restaurados (usados para criar um novo disco) em qualquer região ou zona. Para mais controle de isolamento com base na localização, crie snapshots com escopo regional. Os snapshots com escopo regional armazenam todos os dados e metadados de snapshot juntos na região de escopo. Com os snapshots de escopo regional, você também pode restringir as regiões em que é possível criar e restaurar snapshots.

Este documento explica como definir locais permitidos para a criação e restauração de snapshots regionais.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Limitações

  • A definição de um escopo regional substitui todas as configurações de local de armazenamento padrão do projeto.
  • A definição de um escopo regional é aplicada apenas a novos snapshots regionais.
  • Não é possível converter um snapshot de escopo global em um de escopo regional. Crie um novo snapshot com o escopo adequado.

Papéis e permissões necessárias

Para receber as permissões necessárias para definir locais de armazenamento e restauração para snapshots de escopo regional, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para definir locais de criação e restauração de snapshots. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Definir locais de criação de snapshots permitidos

Por padrão, é possível criar snapshots em todas as regiões. Para restringir onde é possível criar snapshots com escopo regional, defina os locais de acesso permitidos no nível do projeto. Depois de definir os locais de acesso, você poderá criar snapshots com escopo regional para o projeto apenas nesses locais.

gcloud

Para permitir que os discos zonais na Zona A criem snapshots em qualquer região, use o comando gcloud beta compute disk-settings update:

  gcloud beta compute disk-settings update \
      --zone=ZONE_A \
      --access-location-policy=all-regions \

Para permitir que os discos regionais na região A criem snapshots em qualquer região, use o comando gcloud beta compute disk-settings update:

  gcloud beta compute disk-settings update \
      --region=REGION_A \
      --access-location-policy=all-regions

Para permitir que os discos na região A criem snapshots apenas na região B, use o comando gcloud beta compute disk-settings update:

  gcloud beta compute disk-settings update \
      --access-location-policy=specific-regions \
      --region=REGION_A \
      --add-access-locations=REGION_B

Substitua:

  • ZONE_A: a zona dos discos que pode criar instantâneos em qualquer região.
  • REGION_A: a região de todos os discos (em um projeto) que exigem restrições de criação de snapshots com escopo regional.
  • REGION_B: uma região permitida para a criação de snapshots com escopo regional. É possível definir várias regiões como locais de acesso permitidos. Inclua a região em que o disco de origem está armazenado como uma das regiões permitidas.

REST

Para permitir que os discos zonais na Zona A criem snapshots em qualquer região, faça uma solicitação PATCH para o método diskSettings.patch:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE_A/diskSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"ALL_REGIONS"
    }
  }

Para permitir que os discos regionais na região A criem snapshots apenas na região B, faça uma solicitação PATCH para o método regionDiskSettings.patch:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION_A/diskSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
      {
        "REGION_B":{"region":"REGION_B"}
      }
    }
  }

Substitua:

  • PROJECT_ID: o ID do projeto
  • ZONE_A: a zona do disco.
  • REGION_A: a região do disco.
  • REGION_B: uma região permitida para a criação de snapshots. É possível definir várias regiões como locais de acesso permitidos. É necessário incluir a região em que o disco de origem está armazenado como uma das regiões permitidas.

Definir locais de restauração de snapshots permitidos

Por padrão, é possível restaurar snapshots com escopo regional e global em qualquer região. Para configurar locais de restauração para seus snapshots de escopo regional, defina locais de acesso permitidos no nível do projeto. É necessário definir os locais de acesso permitidos para cada projeto individualmente. Depois de definir os locais de acesso, você poderá restaurar snapshots com escopo regional para o projeto apenas nesses locais.

gcloud

Para permitir que os snapshots de um projeto na Região A sejam restaurados em todas as regiões, use o comando gcloud beta compute snapshot-settings update:

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --region=REGION_A \
      --access-location-policy=all-regions

Para permitir que os snapshots de um projeto na Região A sejam restaurados apenas na Região B, use o comando gcloud beta compute snapshot-settings update:

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --access-location-policy=specific-regions \
      --region=REGION_A \
      --add-access-locations=REGION_B

Substitua:

  • PROJECT_ID: o ID do projeto
  • REGION_A: a região em que os snapshots de escopo regional são armazenados.
  • REGION_B: uma região permitida em que os snapshots de escopo regional podem ser restaurados. É possível definir várias regiões como locais de restauração permitidos.

REST

Para permitir que os snapshots de um projeto na região A sejam restaurados em todas as regiões, faça uma solicitação PATCH para o método regionSnapshotSettings.patch:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"ALL_REGIONS"
    }
  }

Para permitir que os snapshots de um projeto na Região A sejam restaurados apenas na Região B, faça uma solicitação PATCH para o método regionSnapshotSettings.patch:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
        {"REGION_B":
          {"region":"REGION_B"}
        }
    }
  }

Substitua:

  • PROJECT_ID: o ID do projeto
  • REGION_A: a região em que os snapshots de escopo regional são armazenados.
  • REGION_B: uma região permitida em que os snapshots de escopo regional podem ser restaurados. É possível definir várias regiões como locais de restauração permitidos.

Editar locais de restauração de snapshots permitidos

gcloud

Para conferir os locais de restauração permitidos para snapshots de um projeto armazenado na Região A, use o comando gcloud beta compute snapshot-settings describe:

  gcloud beta compute snapshot-settings describe \
      --project=PROJECT_ID \
      --region=REGION_A

Para remover a Região B da lista de locais de restauração permitidos para snapshots de um projeto armazenado na Região A, use o comando gcloud beta compute snapshot-settings update:

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --access-location-policy=specific-regions \
      --remove-access-locations=REGION_B \
      --region=REGION_A

Substitua:

  • PROJECT_ID: o ID do projeto
  • REGION_A: a região em que os snapshots de escopo regional são armazenados.
  • REGION_B: a região em que você quer remover o acesso de restauração para snapshots de escopo regional.

REST

Para conferir os locais de restauração permitidos para snapshots de um projeto armazenado na Região A, faça uma solicitação GET para o método regionSnapshotSettings.get:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings

Para remover a Região B da lista de locais de restauração permitidos para snapshots de um projeto armazenado na Região A, faça uma solicitação PATCH para o método regionSnapshotSettings.patch:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
        {"REGION_B":{}}
    }
  }

Substitua:

  • PROJECT_ID: o ID do projeto
  • REGION_A: a região em que os snapshots de escopo regional são armazenados.
  • REGION_B: a região em que você quer remover o acesso de restauração para snapshots de escopo regional.