Como restringir locais dos recursos

Visão geral

Neste guia, descrevemos como definir política da organização que inclui a restrição de locais de recursos.

Você pode limitar a localização física de um novo recurso com a restrição de locais de recursos do Serviço de Políticas da Organização. Use a propriedade de localização de um recurso para identificar onde ele é implantado e mantido pelo serviço. Para recursos contendo dados de alguns serviços do Google Cloud, essa propriedade também reflete o local onde os dados são armazenados. Essa restrição permite que você defina os locais do Google Cloud em que os recursos para serviços de suporte na sua hierarquia podem ser criados.

Depois de definir os locais dos recursos, essa limitação será aplicada somente aos recursos recém-criados. Os recursos que você criou antes de definir a restrição de locais do recurso continuarão a existir e a executar a função deles.

Uma política que inclua essa restrição não será aplicada na criação de sub-recursos para determinados serviços, como Cloud Storage e Dataproc.

Limitações

A restrição do serviço de políticas da organização de locais dos recursos controla criar recursos para selecionar um local. Isso não afeta onde os recursos globais, como o Compute Engine, os endereços globais ou os recursos que não oferecem suporte à seleção de um local não são criados.

Para evitar corromper a infraestrutura de serviço existente, você deve testar todos os novos em projetos e pastas que não sejam de produção, depois a aplique aos poucos na sua organização.

Para confirmação do armazenamento de dados, consulte os Termos de serviço do Google Cloud e os Termos específicos do serviço. As políticas da organização que contêm a restrição de locais do recurso não são compromissos de armazenamento de dados.

Essa restrição se aplica a um subconjunto específico de produtos e tipos de recursos. Para uma lista de serviços com suporte e detalhes sobre o comportamento de cada serviço, consulte Serviços de suporte dos locais de recursos página.

Tipos de local

Você pode implantar recursos do Google Cloud em tipos de locais que representem categorias de tamanhos diferentes. O maior tipo de local é o multi-region, que inclui mais de uma region. Cada region é subdividido em zones. Para mais informações sobre regiões e zonas, consulte a Visão geral de regiões e zonas.

  • Locais Multi-region são respaldados por recursos físicos em mais de uma region e normalmente são usados apenas por recursos baseados em armazenamento. Alguns exemplos incluem us, asia, europe e global.

  • Locais de tipo Region estão geograficamente isolados uns dos outros. Alguns exemplos incluem us-west1 (Oregon), asia-northeast1 (Tóquio) e europe-west1 (Bélgica).

  • Locais de tipo Zone são o tipo de local mais granular e isolado usados para implantar recursos. Uma zone é um domínio de falha independente dentro de uma region. Alguns exemplos são us-east1-b, us-west1-b e asia-northeast1-a.

Ao configurar locais, você deve usar o prefixo in: e um Grupo de Valores. Usar um grupo de valores selecionado pelo Google Cloud permite que você escolha localizações geográficas, sem precisar especificar localizações atuais ou futuros locais do Google Cloud.

O prefixo in: para um Grupo de Valores especifica que todos os valores existentes no grupo de valores são considerados parte da política. Se você inserir um valor de grupo ou uma região do Google Cloud sem o prefixo, o prefixo in: será adicionado automaticamente, de acordo com estas regras:

  • Se você inserir um local que use o prefixo in: e ele contiver qualquer grupo inválido, a alteração da política falhará.
  • Se você digitar um local que é uma região, como us-east1, ele terá o prefixo in: anexado, para, no caso, in:us-east1-locations.
  • Se você inserir uma região ou um grupo de valores de várias regiões como us-locations, ele terá o prefixo in: anexado, para, no caso, in:us-locations.
  • Se você inserir uma zona ou multirregião como us-east1-b ou us, os valores não serão alterados.

Como definir a política da organização

A restrição de locais de recursos é um tipo de restrição de lista. É possível adicionar e remover locais das listas allowed_values ou denied_values de uma restrição de locais do recurso. Para impedir que as políticas da organização restringir inesperadamente o comportamento do serviço à medida que novos locais são adicionados ao lista disponível, use um grupo de valores ou uma lista de allowed_values, que representa todo o limite geográfico que você quer a definição.

Para definir uma política organizacional incluindo uma restrição de locais de recursos:

Console

  1. No console do Google Cloud, acesse a página Políticas da organização.

    Acessar as políticas da organização

  2. No seletor de projeto, escolha a organização, a pasta ou o projeto do onde você quer definir a política da organização.

  3. Selecione Google Cloud Platform - Restrição de localização de recursos. para abrir a página Detalhes da política.

  4. Clique em Gerenciar política.

  5. Na página Editar política, selecione Substituir a política do editor principal.

  6. Em Aplicação da política, selecione Substituir.

  7. Clique em Adicionar regra.

  8. Em Valores da política, selecione Personalizado.

  9. Em Tipo de política, selecione Permitir para criar uma lista de locais permitidos ou Negar para criar uma lista de locais negados.

  10. Na caixa Valor da política, insira o prefixo in e um grupo de valores e pressione Enter.

    Por exemplo, in:us-locations ou in:us-west1-locations. Você pode insira várias strings de local clicando em Novo valor da política.

    Também é possível inserir locais específicos de zona, região ou multirregião como strings de local. Para obter uma lista de locais disponíveis, consulte a página Serviços de suporte dos locais de recursos.

  11. Para aplicar a política, clique em Definir política.

gcloud

Criar uma política da organização que aplique os locais dos recursos crie um arquivo YAML de política que faça referência à restrição:

name: organizations/ORGANIZATION_ID/policies/gcp.resourceLocations
spec:
  rules:
  - values:
      deniedValues:
      - in:us-east1-locations
      - in:northamerica-northeast1-locations

Para aplicar a política da organização que contém a restrição, execute o seguinte comando:

gcloud org-policies set-policy POLICY_PATH

Substitua:

  • ORGANIZATION_ID: seu ID da organização, como 01234567890.
  • POLICY_PATH: o caminho completo para o arquivo YAML que contém a política da organização.

Uma resposta será retornada com os resultados da nova política da organização:

name: organizations/01234567890/policies/gcp.resourceLocations
spec:
  rules:
  - values:
      allowedValues:
      - in:us-east1-locations
      - in:northamerica-northeast1-locations

Também é possível inserir locais específicos de zona, região ou multirregião como strings de local. Para obter uma lista de locais disponíveis, consulte a página Serviços de suporte dos locais de recursos.

API

É possível usar a API do Resource Manager para definir uma política da organização em um recurso. Você precisará de um token do portador OAuth 2.0 para autenticação e autorização.

Para definir uma política da organização usando a restrição de locais do recurso:

curl -X POST -H "Content-Type: application/json" -H "Authorization: \
Bearer ${bearer_token}" -d '{policy: {etag: "BwVtXec438Y=", constraint: \
"constraints/gcp.resourceLocations", list_policy: {denied_values: \
["in:europe-locations", "in:southamerica-locations"] }}}' \
https://cloudresourcemanager.googleapis.com/v1/organizations/123456789:setOrgPolicy

Uma resposta será retornada com os resultados da nova política da organização:

name: organizations/01234567890/policies/gcp.resourceLocations
spec:
  rules:
  - values:
      deniedValues:
      - in:europe-locations
      - in:southamerica-locations

Também é possível inserir locais específicos de zona, região ou multirregião como strings de local. Para obter uma lista de locais disponíveis, consulte a página Serviços de suporte dos locais de recursos.

Para saber mais sobre o uso de restrições nas políticas da organização, consulte Usando restrições.

Como usar a herança na política da organização

É possível refinar a política da organização para herdar a política da organização dos nós pai do recurso. A herança fornece controle granular sobre as políticas da organização usadas em toda a hierarquia de recursos.

Para ativar a herança em um nó de recurso, defina inheritFromParent = true no arquivo YAML da política da organização. Exemplo:

name: organizations/01234567890/policies/gcp.resourceLocations
spec:
  inheritFromParent: true
  rules:
  - values:
      deniedValues:
      - in:us-west1

Exemplo de mensagem de erro

Os serviços que oferecem suporte à restrição de local do recurso são impedidos de criar novos recursos em locais que violem a restrição. Se um serviço tentar criar um recurso em um local que viole a restrição, a tentativa falhará e uma mensagem de erro será gerada.

Esta mensagem de erro terá este formato: LOCATION_IN_REQUEST violates constraint constraints/gcp.resourceLocations on the resource RESOURCE_TESTED. .

No exemplo a seguir, um recurso do Compute Engine falha ao criar uma instância nova por causa da aplicação da política:

Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations
on the resource
projects/policy-violation-test/zones/us-east1-b/instances/instance-3.

Entrada de registro do Google Cloud Observability e dos Registros de auditoria do Cloud:

{
 insertId: "5u759gdngec"
 logName: "projects/policy-violation-test/logs/cloudaudit.googleapis.com%2Factivity"
 protoPayload: {
  @type: "type.googleapis.com/google.cloud.audit.AuditLog"
  authenticationInfo: {}
  authorizationInfo: [6]
  methodName: "beta.compute.instances.insert"
  request: {}
  requestMetadata: {}
  resourceLocation: {}
  resourceName: "projects/policy-violation-test/zones/us-east1-b/instances/instance-3"
  response: {
   @type: "type.googleapis.com/error"
   error: {
    code: 412
    errors: [
     0: {
      domain: "global"
      location: "If-Match"
      locationType: "header"
      message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3."
      reason: "conditionNotMet"
     }
    ]
    message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3."
   }
  }
  serviceName: "compute.googleapis.com"
  status: {
   code: 3
   message: "INVALID_ARGUMENT"
  }
 }
 receiveTimestamp: "2019-06-14T03:04:23.660988360Z"
 resource: {
  labels: {}
  type: "gce_instance"
 }
 severity: "ERROR"
 timestamp: "2019-06-14T03:04:22.783Z"
}

Descobertas e correção de vulnerabilidades

A restrição de localização de recursos restringe a criação de recursos no tempo de execução. Esse recurso ajuda a evitar violações de local, mas não identifica nem corrige as violações existentes. Use o Security Health Analytics, um serviço integrado do Security Command Center, para descobrir violações de local na hierarquia de recursos. Para mais informações, consulte Descobertas de vulnerabilidade da política da organização.

Se houver descobertas do Security Health Analytics sobre violações de local, consulte Como corrigir as descobertas do Security Health Analytics para saber como corrigir essas descobertas.

Grupos de valores

Grupos de valores são conjuntos de grupos e locais selecionados pelo Google para fornecer uma maneira simples de definir os locais dos recursos. Os grupos de valores incluem muitos locais relacionados e são expandidos ao longo do tempo pelo Google sem a necessidade de alterar a política da sua organização para acomodar os novos locais.

Para usar grupos de valores na sua política da organização, insira a string in: no prefixo das entradas. Para mais informações sobre o uso de valores prefixo, consulte Usando restrições. Os nomes dos grupos são validados na chamada para definir a política da organização. O uso de um nome de grupo inválido causa a falha na configuração da política.

A tabela a seguir contém a lista atual de grupos disponíveis:

Grupo Detalhes Membros diretos
Johannesburgo Todos os locais em Joanesburgo:
in:africa-south1-locations
Valores:
  • africa-south1
  • africa-south1-a
  • africa-south1-b
  • africa-south1-c
Ásia Todos os locais na Ásia:
in:asia-locations
Grupos:
  • asia-east1-locations
  • asia-east2-locations
  • asia-northeast1-locations
  • asia-northeast2-locations
  • asia-northeast3-locations
  • asia-south1-locations
  • asia-south2-locations
  • asia-southeast1-locations
  • asia-southeast2-locations
  • me-central1-locations
  • me-central2-locations
  • me-west1-locations

Valores:
  • asia
  • asia1
  • aws-ap-northeast-2
Taiwan Todos os locais em Taiwan:
in:asia-east1-locations
Valores:
  • asia-east1
  • asia-east1-a
  • asia-east1-b
  • asia-east1-c
Hong Kong Todos os locais em Hong Kong:
in:asia-east2-locations
Valores:
  • asia-east2
  • asia-east2-a
  • asia-east2-b
  • asia-east2-c
Tóquio Todos os locais em Tóquio:
in:asia-northeast1-locations
Valores:
  • asia-northeast1
  • asia-northeast1-a
  • asia-northeast1-b
  • asia-northeast1-c
Osaka Todos os locais em Osaka:
in:asia-northeast2-locations
Valores:
  • asia-northeast2
  • asia-northeast2-a
  • asia-northeast2-b
  • asia-northeast2-c
Seul Todos os locais em Seul:
in:asia-northeast3-locations
Valores:
  • asia-northeast3
  • asia-northeast3-a
  • asia-northeast3-b
  • asia-northeast3-c
Mumbai Todos os locais em Mumbai:
in:asia-south1-locations
Valores:
  • asia-south1
  • asia-south1-a
  • asia-south1-b
  • asia-south1-c
Délhi Todos os locais em Délhi:
in:asia-south2-locations
Valores:
  • asia-south2
  • asia-south2-a
  • asia-south2-b
  • asia-south2-c
Singapura Todos os locais em Singapura:
in:asia-southeast1-locations
Valores:
  • asia-southeast1
  • asia-southeast1-a
  • asia-southeast1-b
  • asia-southeast1-c
Jacarta Todos os locais em Jacarta:
in:asia-southeast2-locations
Valores:
  • asia-southeast2
  • asia-southeast2-a
  • asia-southeast2-b
  • asia-southeast2-c
Doha Todos os locais em Doha:
in:me-central1-locations
Valores:
  • me-central1
  • me-central1-a
  • me-central1-b
  • me-central1-c
Damã Todos os locais em Damã:
in:me-central2-locations
Valores:
  • me-central2
  • me-central2-a
  • me-central2-b
  • me-central2-c
Israel Todos os locais em Israel:
in:me-west1-locations
Valores:
  • me-west1
  • me-west1-a
  • me-west1-b
  • me-west1-c
Austrália Todos os locais na Austrália:
in:australia-locations
Grupos:
  • australia-southeast1-locations
  • australia-southeast2-locations

Valores:
  • au
Sydney Todos os locais em Sydney:
in:australia-southeast1-locations
Valores:
  • australia-southeast1
  • australia-southeast1-a
  • australia-southeast1-b
  • australia-southeast1-c
Melbourne Todos os locais em Melbourne:
in:australia-southeast2-locations
Valores:
  • australia-southeast2
  • australia-southeast2-a
  • australia-southeast2-b
  • australia-southeast2-c
AWS Todos os locais da AWS:
in:aws-locations
Valores:
  • aws-ap-northeast-2
  • aws-ap-southeast-2
  • aws-eu-central-1
  • aws-us-east-1
Azure Todos os locais do Azure:
in:azure-locations
Valores:
  • azure-eastus2
  • azure-westus2
União Europeia Todos os locais na União Europeia:
in:eu-locations
Grupos:
  • europe-central2-locations
  • europe-north1-locations
  • europe-southwest1-locations
  • europe-west1-locations
  • europe-west10-locations
  • europe-west12-locations
  • europe-west3-locations
  • europe-west4-locations
  • europe-west8-locations
  • europe-west9-locations

Valores:
  • EU
  • eu
  • eur3
  • eur4
  • eur8
  • europe-west
Varsóvia Todos os locais em Varsóvia:
in:europe-central2-locations
Valores:
  • europe-central2
  • europe-central2-a
  • europe-central2-b
  • europe-central2-c
Finlândia Todos os locais na Finlândia:
in:europe-north1-locations
Valores:
  • europe-north1
  • europe-north1-a
  • europe-north1-b
  • europe-north1-c
Madri Todos os locais em Madri:
in:europe-southwest1-locations
Valores:
  • europe-southwest1
  • europe-southwest1-a
  • europe-southwest1-b
  • europe-southwest1-c
Bélgica Todos os locais na Bélgica:
in:europe-west1-locations
Valores:
  • europe-west1
  • europe-west1-b
  • europe-west1-c
  • europe-west1-d
Berlim Todos os locais em Berlim:
in:europe-west10-locations
Valores:
  • europe-west10
  • europe-west10-a
  • europe-west10-b
  • europe-west10-c
Turim Todos os locais em Turim:
in:europe-west12-locations
Valores:
  • europe-west12
  • europe-west12-a
  • europe-west12-b
  • europe-west12-c
Frankfurt Todos os locais em Frankfurt:
in:europe-west3-locations
Valores:
  • europe-west3
  • europe-west3-a
  • europe-west3-b
  • europe-west3-c
Holanda Todos os locais na Holanda:
in:europe-west4-locations
Valores:
  • europe-west4
  • europe-west4-a
  • europe-west4-b
  • europe-west4-c
Milão Todos os locais em Milão:
in:europe-west8-locations
Valores:
  • europe-west8
  • europe-west8-a
  • europe-west8-b
  • europe-west8-c
Paris Todos os locais em Paris:
in:europe-west9-locations
Valores:
  • europe-west9
  • europe-west9-a
  • europe-west9-b
  • europe-west9-c
Europa Todos os locais na Europa:
in:europe-locations
Grupos:
  • europe-central2-locations
  • europe-north1-locations
  • europe-southwest1-locations
  • europe-west1-locations
  • europe-west10-locations
  • europe-west12-locations
  • europe-west2-locations
  • europe-west3-locations
  • europe-west4-locations
  • europe-west6-locations
  • europe-west8-locations
  • europe-west9-locations

Valores:
  • EU
  • eu
  • eur3
  • eur4
  • eur5
  • eur7
  • eur8
  • europe
  • europe-west
Londres Todos os locais em Londres:
in:europe-west2-locations
Valores:
  • europe-west2
  • europe-west2-a
  • europe-west2-b
  • europe-west2-c
Zurique Todos os locais em Zurique:
in:europe-west6-locations
Valores:
  • europe-west6
  • europe-west6-a
  • europe-west6-b
  • europe-west6-c
Índia Todos os locais na Índia:
in:in-locations
Grupos:
  • asia-south1-locations
  • asia-south2-locations
Japão Todos os locais no Japão:
in:jp-locations
Grupos:
  • asia-northeast1-locations
  • asia-northeast2-locations
Locais com baixa emissão de carbono Todos os locais com baixo impacto de carbono:
in:low-carbon-locations
Grupos:
  • canada-low-carbon-locations
  • eu-low-carbon-locations
  • europe-low-carbon-locations
  • northamerica-low-carbon-locations
  • southamerica-low-carbon-locations
  • us-low-carbon-locations
Canadá com baixa emissão de carbono Todos os locais no Canadá com baixo impacto de carbono:
in:canada-low-carbon-locations
Grupos:
  • northamerica-northeast1-locations
  • northamerica-northeast2-locations
Montreal Todos os locais em Montreal:
in:northamerica-northeast1-locations
Valores:
  • northamerica-northeast1
  • northamerica-northeast1-a
  • northamerica-northeast1-b
  • northamerica-northeast1-c
Toronto Todos os locais em Toronto:
in:northamerica-northeast2-locations
Valores:
  • northamerica-northeast2
  • northamerica-northeast2-a
  • northamerica-northeast2-b
  • northamerica-northeast2-c
União Europeia de baixo carbono Todos os locais na União Europeia com baixo impacto de carbono:
in:eu-low-carbon-locations
Grupos:
  • europe-north1-locations
  • europe-southwest1-locations
  • europe-west1-locations
  • europe-west9-locations
Europa com baixa emissão de carbono Todos os locais na Europa com baixo impacto de carbono:
in:europe-low-carbon-locations
Grupos:
  • europe-north1-locations
  • europe-southwest1-locations
  • europe-west1-locations
  • europe-west6-locations
  • europe-west9-locations
América do Norte com baixo carbono Todos os locais na América do Norte com baixo impacto de carbono:
in:northamerica-low-carbon-locations
Grupos:
  • northamerica-northeast1-locations
  • northamerica-northeast2-locations
  • us-central1-locations
  • us-west1-locations
Iowa Todos os locais em Iowa:
in:us-central1-locations
Valores:
  • us-central1
  • us-central1-a
  • us-central1-b
  • us-central1-c
  • us-central1-f
Oregon Todos os locais no Oregon:
in:us-west1-locations
Valores:
  • us-west1
  • us-west1-a
  • us-west1-b
  • us-west1-c
América do Sul de baixo carbono Todos os locais na América do Sul com baixo impacto de carbono:
in:southamerica-low-carbon-locations
Grupos:
  • southamerica-east1-locations
São Paulo Todos os locais em São Paulo:
in:southamerica-east1-locations
Valores:
  • southamerica-east1
  • southamerica-east1-a
  • southamerica-east1-b
  • southamerica-east1-c
Estados Unidos com baixo carbono Todos os locais nos Estados Unidos com baixo impacto de carbono:
in:us-low-carbon-locations
Grupos:
  • us-central1-locations
  • us-west1-locations
América do Norte Todos os locais na América do Norte:
in:northamerica-locations
Grupos:
  • canada-locations
  • us-locations

Valores:
  • nam14
Canadá Todos os locais no Canadá.
in:canada-locations
Grupos:
  • northamerica-northeast1-locations
  • northamerica-northeast2-locations

Valores:
  • ca
Estados Unidos Todos os locais nos Estados Unidos:
in:us-locations
Grupos:
  • us-central1-locations
  • us-central2-locations
  • us-east1-locations
  • us-east4-locations
  • us-east5-locations
  • us-south1-locations
  • us-west1-locations
  • us-west2-locations
  • us-west3-locations
  • us-west4-locations

Valores:
  • US
  • aws-us-east-1
  • azure-eastus2
  • nam10
  • nam11
  • nam12
  • nam13
  • nam15
  • nam3
  • nam4
  • nam5
  • nam6
  • nam7
  • nam8
  • nam9
  • us
  • us-central
Oklahoma Todos os locais em Oklahoma:
in:us-central2-locations
Valores:
  • us-central2
  • us-central2-a
  • us-central2-b
  • us-central2-c
  • us-central2-d
Carolina do Sul Todas as zonas na Carolina do Sul:
in:us-east1-locations
Valores:
  • us-east1
  • us-east1-a
  • us-east1-b
  • us-east1-c
  • us-east1-d
Norte da Virgínia Todos os locais na Virgínia do Norte:
in:us-east4-locations
Valores:
  • us-east4
  • us-east4-a
  • us-east4-b
  • us-east4-c
Columbus Todos os locais em Columbus:
in:us-east5-locations
Valores:
  • us-east5
  • us-east5-a
  • us-east5-b
  • us-east5-c
Dallas Todos os locais em Dallas:
in:us-south1-locations
Valores:
  • us-south1
  • us-south1-a
  • us-south1-b
  • us-south1-c
Los Angeles Todos os locais em Los Angeles:
in:us-west2-locations
Valores:
  • us-west2
  • us-west2-a
  • us-west2-b
  • us-west2-c
Salt Lake City Todos os locais em Salt Lake City:
in:us-west3-locations
Valores:
  • us-west3
  • us-west3-a
  • us-west3-b
  • us-west3-c
Las Vegas Todos os locais em Las Vegas:
in:us-west4-locations
Valores:
  • us-west4
  • us-west4-a
  • us-west4-b
  • us-west4-c
América do Sul Todos os locais na América do Sul:
in:southamerica-locations
Grupos:
  • southamerica-east1-locations
  • southamerica-west1-locations
Santiago Todos os locais em Santiago:
in:southamerica-west1-locations
Valores:
  • southamerica-west1
  • southamerica-west1-a
  • southamerica-west1-b
  • southamerica-west1-c

Autenticação

O serviço de Política da Organização usa o OAuth 2.0 para autenticação e autorização da API. Para acessar um token do portador OAuth 2.0:

  1. Acesse a página do OAuth 2.0 Playground.

  2. Na lista de escopos da Etapa 1, selecione a API v2 do Cloud Resource Manager > https://www.googleapis.com/auth/cloud-platform e clique em Autorizar APIs.

  3. Na página Fazer login com o Google, selecione sua conta e faça o login.

  4. Para fornecer acesso ao Google OAuth 2.0 Playground, clique em Permitir no prompt exibido.

  5. Na Etapa 2, clique em Trocar código de autorização por tokens.

  6. A string do seu token de acesso será exibida na parte inferior do painel Solicitação/Resposta à direita.

    {
      "access_token": "ACCESS_TOKEN",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Em que ACCESS_TOKEN é a string do token do portador OAuth 2.0 que pode ser usada na autorização da API.