Por padrão, os snapshots são criados com um escopo global. Os snapshots com 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 em local, crie snapshots com escopo regional. Os snapshots com escopo regional armazenam todos os dados e metadados de snapshot juntos na região com escopo. Com snapshots de escopo regional, também é possível restringir as regiões em que é possível criar e restaurar snapshots.
Neste documento, explicamos como definir locais permitidos para criação e restauração de snapshots regionais.
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 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:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- 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 CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em 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 se aplica apenas a novos snapshots regionais.
- Não é possível converter um snapshot com escopo global em um com escopo regional. Crie um 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 de snapshots com escopo regional, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador da instância do Compute (v1)
(
roles/compute.instanceAdmin.v1) - Para se conectar a uma VM que pode ser executada como uma conta de serviço: Usuário da conta de serviço (v1)
(
roles/iam.serviceAccountUser)
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 a criação de snapshots e restaurar locais. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Definir locais permitidos para criação de snapshots
Por padrão, é possível criar snapshots em todas as regiões. Para restringir onde é possível criar snapshots com escopo regional, defina 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 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 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 podem criar snapshots 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 criação de snapshots com escopo regional. É possível definir várias regiões como locais de acesso permitido. É preciso incluir 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. Inclua a região em que o disco de origem está armazenado como uma das regiões permitidas.
Definir locais permitidos para restauração de snapshots
Por padrão, é possível restaurar snapshots regionais e globais para qualquer região. Para configurar locais de restauração para seus snapshots com escopo regional, defina locais de acesso permitidos no nível do projeto. É preciso definir os locais de acesso permitidos para cada projeto individualmente. Depois de definir os locais de acesso, você só poderá restaurar snapshots com escopo regional para o projeto nesses locais.
gcloud
Para permitir que 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 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 snapshots de um projeto na região A sejam restaurados apenas na região B,
faça uma
solicitação PATCH ao 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 snapshots de escopo regional podem ser restaurados. É possível definir várias regiões como locais de restauração permitidos.
Editar locais permitidos de restauração de snapshots
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 com 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 com escopo regional.