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 umaregion
e normalmente são usados apenas por recursos baseados em armazenamento. Alguns exemplos incluemus
,asia
,europe
eglobal
.Locais de tipo
Region
estão geograficamente isolados uns dos outros. Alguns exemplos incluemus-west1
(Oregon),asia-northeast1
(Tóquio) eeurope-west1
(Bélgica).Locais de tipo
Zone
são o tipo de local mais granular e isolado usados para implantar recursos. Umazone
é um domínio de falha independente dentro de umaregion
. Alguns exemplos sãous-east1-b
,us-west1-b
easia-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 prefixoin:
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 prefixoin:
anexado, para, no caso,in:us-locations
. - Se você inserir uma zona ou multirregião como
us-east1-b
ouus
, 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
No console do Google Cloud, acesse a página Políticas da organização.
No seletor de projeto, escolha a organização, a pasta ou o projeto do onde você quer definir a política da organização.
Selecione Google Cloud Platform - Restrição de localização de recursos. para abrir a página Detalhes da política.
Clique em Gerenciar política.
Na página Editar política, selecione Substituir a política do editor principal.
Em Aplicação da política, selecione Substituir.
Clique em Adicionar regra.
Em Valores da política, selecione Personalizado.
Em Tipo de política, selecione Permitir para criar uma lista de locais permitidos ou Negar para criar uma lista de locais negados.
Na caixa Valor da política, insira o prefixo
in
e um grupo de valores e pressione Enter.Por exemplo,
in:us-locations
ouin: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.
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:
|
Ásia | Todos os locais na Ásia:in:asia-locations |
Grupos:
Valores:
|
Taiwan | Todos os locais em Taiwan:in:asia-east1-locations |
Valores:
|
Hong Kong | Todos os locais em Hong Kong:in:asia-east2-locations |
Valores:
|
Tóquio | Todos os locais em Tóquio:in:asia-northeast1-locations |
Valores:
|
Osaka | Todos os locais em Osaka:in:asia-northeast2-locations |
Valores:
|
Seul | Todos os locais em Seul:in:asia-northeast3-locations |
Valores:
|
Mumbai | Todos os locais em Mumbai:in:asia-south1-locations |
Valores:
|
Délhi | Todos os locais em Délhi:in:asia-south2-locations |
Valores:
|
Singapura | Todos os locais em Singapura:in:asia-southeast1-locations |
Valores:
|
Jacarta | Todos os locais em Jacarta:in:asia-southeast2-locations |
Valores:
|
Doha | Todos os locais em Doha:in:me-central1-locations |
Valores:
|
Damã | Todos os locais em Damã:in:me-central2-locations |
Valores:
|
Israel | Todos os locais em Israel:in:me-west1-locations |
Valores:
|
Austrália | Todos os locais na Austrália:in:australia-locations |
Grupos:
Valores:
|
Sydney | Todos os locais em Sydney:in:australia-southeast1-locations |
Valores:
|
Melbourne | Todos os locais em Melbourne:in:australia-southeast2-locations |
Valores:
|
AWS | Todos os locais da AWS:in:aws-locations |
Valores:
|
Azure | Todos os locais do Azure:in:azure-locations |
Valores:
|
União Europeia | Todos os locais na União Europeia:in:eu-locations |
Grupos:
Valores:
|
Varsóvia | Todos os locais em Varsóvia:in:europe-central2-locations |
Valores:
|
Finlândia | Todos os locais na Finlândia:in:europe-north1-locations |
Valores:
|
Madri | Todos os locais em Madri:in:europe-southwest1-locations |
Valores:
|
Bélgica | Todos os locais na Bélgica:in:europe-west1-locations |
Valores:
|
Berlim | Todos os locais em Berlim:in:europe-west10-locations |
Valores:
|
Turim | Todos os locais em Turim:in:europe-west12-locations |
Valores:
|
Frankfurt | Todos os locais em Frankfurt:in:europe-west3-locations |
Valores:
|
Holanda | Todos os locais na Holanda:in:europe-west4-locations |
Valores:
|
Milão | Todos os locais em Milão:in:europe-west8-locations |
Valores:
|
Paris | Todos os locais em Paris:in:europe-west9-locations |
Valores:
|
Europa | Todos os locais na Europa:in:europe-locations |
Grupos:
Valores:
|
Londres | Todos os locais em Londres:in:europe-west2-locations |
Valores:
|
Zurique | Todos os locais em Zurique:in:europe-west6-locations |
Valores:
|
Índia | Todos os locais na Índia:in:in-locations |
Grupos:
|
Japão | Todos os locais no Japão:in:jp-locations |
Grupos:
|
Locais com baixa emissão de carbono | Todos os locais com baixo impacto de carbono:in:low-carbon-locations |
Grupos:
|
Canadá com baixa emissão de carbono | Todos os locais no Canadá com baixo impacto de carbono:in:canada-low-carbon-locations |
Grupos:
|
Montreal | Todos os locais em Montreal:in:northamerica-northeast1-locations |
Valores:
|
Toronto | Todos os locais em Toronto:in:northamerica-northeast2-locations |
Valores:
|
União Europeia de baixo carbono | Todos os locais na União Europeia com baixo impacto de carbono:in:eu-low-carbon-locations |
Grupos:
|
Europa com baixa emissão de carbono | Todos os locais na Europa com baixo impacto de carbono:in:europe-low-carbon-locations |
Grupos:
|
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:
|
Iowa | Todos os locais em Iowa:in:us-central1-locations |
Valores:
|
Oregon | Todos os locais no Oregon:in:us-west1-locations |
Valores:
|
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:
|
São Paulo | Todos os locais em São Paulo:in:southamerica-east1-locations |
Valores:
|
Estados Unidos com baixo carbono | Todos os locais nos Estados Unidos com baixo impacto de carbono:in:us-low-carbon-locations |
Grupos:
|
América do Norte | Todos os locais na América do Norte:in:northamerica-locations |
Grupos:
Valores:
|
Canadá | Todos os locais no Canadá.in:canada-locations |
Grupos:
Valores:
|
Estados Unidos | Todos os locais nos Estados Unidos:in:us-locations |
Grupos:
Valores:
|
Oklahoma | Todos os locais em Oklahoma:in:us-central2-locations |
Valores:
|
Carolina do Sul | Todas as zonas na Carolina do Sul:in:us-east1-locations |
Valores:
|
Norte da Virgínia | Todos os locais na Virgínia do Norte:in:us-east4-locations |
Valores:
|
Columbus | Todos os locais em Columbus:in:us-east5-locations |
Valores:
|
Dallas | Todos os locais em Dallas:in:us-south1-locations |
Valores:
|
Los Angeles | Todos os locais em Los Angeles:in:us-west2-locations |
Valores:
|
Salt Lake City | Todos os locais em Salt Lake City:in:us-west3-locations |
Valores:
|
Las Vegas | Todos os locais em Las Vegas:in:us-west4-locations |
Valores:
|
América do Sul | Todos os locais na América do Sul:in:southamerica-locations |
Grupos:
|
Santiago | Todos os locais em Santiago:in:southamerica-west1-locations |
Valores:
|
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:
Acesse a página do OAuth 2.0 Playground.
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.
Na página Fazer login com o Google, selecione sua conta e faça o login.
Para fornecer acesso ao Google OAuth 2.0 Playground, clique em Permitir no prompt exibido.
Na Etapa 2, clique em Trocar código de autorização por tokens.
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.