Este documento descreve exemplos de utilização comuns para a troca de dados segura e exemplos de configurações para permitir o acesso entre clientes e recursos separados por perímetros de serviço.
Para uma vista geral das regras de entrada e saída, consulte o artigo Regras de entrada e saída.
Para ver instruções sobre como configurar políticas de regras de entrada e saída, consulte o artigo Configurar políticas de entrada e saída.
Exemplos de configuração de exemplos de utilização da troca de dados segura
Esta secção contém exemplos de utilização sobre a troca de dados em segurança entre perímetros de serviço.
- Aceder a um Trusted Cloud by S3NS recurso fora do perímetro
- Partilhe dados através do Pub/Sub entre duas organizações que usam os VPC Service Controls
- Partilhe dados de IPI anonimizados com a organização parceira
- Conceda acesso a uma imagem de disco do Compute Engine de terceiros
- Ler um conjunto de dados do BigQuery permitindo o acesso privado a partir de uma rede VPC fora do perímetro
- Carregar para um contentor do Cloud Storage (escrever) permitindo o acesso privado a partir de uma rede VPC fora do perímetro
- Partilhe registos num perímetro separado permitindo que projetos de vários perímetros partilhem registos
Aceder a um Trusted Cloud by S3NS recurso fora do perímetro
O diagrama seguinte mostra um recurso do Compute Engine dentro de um perímetro de serviço que requer acesso a um recurso do Cloud Storage, que está fora do perímetro:
Suponhamos que definiu o seguinte perímetro:
name: accessPolicies/222/servicePerimeters/Example status: resources: - projects/111 restrictedServices: - bigquery.googleapis.com - containerregistry.googleapis.com - storage.googleapis.com title: Example
Tem de conceder acesso de leitura a um contentor do Cloud Storage em project 999
, que se encontra numa organização diferente. Em seguida, defina a seguinte regra de saída num ficheiro
e guarde o ficheiro como gcs.yaml
:
echo """ - egressTo: operations: - serviceName: storage.googleapis.com methodSelectors: - method: google.storage.objects.get resources: - projects/999 egressFrom: identityType: ANY_IDENTITY """ > gcs.yaml
Aplique a regra de saída executando o seguinte comando:
gcloud beta access-context-manager perimeters update Example --set-egress-policies=gcs.yaml
Para mais informações sobre o comando gcloud access-context-manager perimeters update
, consulte o artigo gcloud access-context-manager perimeters update.
Partilhe dados através do Pub/Sub entre duas organizações que usam os VPC Service Controls
O diagrama seguinte mostra duas organizações, Org1
e Org2
, que usam os VPC Service Controls e partilham dados através de um tópico do Pub/Sub:
Suponhamos que definiu os seguintes perímetros:
# Org 1 Perimeter Definition name: accessPolicies/222/servicePerimeters/Example1 status: resources: - projects/111 restrictedServices: - pubsub.googleapis.com title: Example1
# Org 2 Perimeter Definition name: accessPolicies/333/servicePerimeters/Example2 status: resources: - projects/222 restrictedServices: - pubsub.googleapis.com title: Example2
Para ativar a troca de dados, Org1
tem de definir a seguinte regra de saída que permite
a subscrição e guardar o ficheiro como org1egress.yaml
:
# Org1: Org1's perimeter must allow a Pub/Sub subscription to project 222. echo """ - egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: Subscriber.CreateSubscription resources: - projects/222 egressFrom: identityType: ANY_IDENTITY """ > org1egress.yaml
Org2
tem de definir uma regra de entrada correspondente que permita a subscrição e guardar o ficheiro como org2ingress.yaml
.
# Org 2: Org2's perimeter must allow a Pub/Sub subscription from network project 111 in Org1. echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - resource: projects/111 ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: Subscriber.CreateSubscription resources: - \"*\" """ > org2ingress.yaml
Aplique as regras de entrada e saída executando os seguintes comandos:
gcloud beta access-context-manager perimeters update Example2 1--set-egress-policies=org1egress.yaml
gcloud beta access-context-manager perimeters update Example1 1--set-ingress-policies=org2ingress.yaml
Partilhe dados de IPH anónimos com uma organização parceira
O diagrama seguinte mostra um perímetro em torno de um segmento de dados de informações de saúde protegidas (PHI), um segundo perímetro em torno de um segmento de dados anónimo e uma organização parceira separada. O segmento de IPH é capaz de manipular os dados no segmento de dados anonimizados e os dados do segmento de dados anonimizados são partilhados com a organização parceira.
Quer definir regras de entrada e saída que permitam a partilha de dados anónimos com a organização parceira e permitir que o seu segmento de IPH manipule os dados no segmento de dados anónimos.
Suponhamos que definiu os seguintes perímetros:
# PhiPerimeter name: accessPolicies/222/servicePerimeters/PhiPerimeter status: resources: - projects/111 restrictedServices: - storage.googleapis.com - bigquery.googleapis.com vpcAccessibleServices: enableRestriction: true allowedServices: - RESTRICTED_SERVICES title: PhiPerimeter
# AnonPerimeter name: accessPolicies/222/servicePerimeters/AnonPerimeter status: resources: - projects/222 restrictedServices: - storage.googleapis.com vpcAccessibleServices: enableRestriction: true allowedServices: - RESTRICTED_SERVICES title: AnonPerimeter
Também pode assumir que o projeto da organização parceira é 999. Pode definir as seguintes regras de entrada e saída:
# Anon Perimeter echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - resource: projects/111 ingressTo: operations: - serviceName: storage.googleapis.com methodSelectors: - method: google.storage.Write - method: google.storage.objects.create resources: - \"*\" """ > anoningress.yaml
echo """ - egressTo: operations: - serviceName: storage.googleapis.com methodSelectors: - method: google.storage.Write - method: google.storage.objects.create resources: - projects/999 egressFrom: identityType: ANY_IDENTITY """ > anonegress.yaml
# PHI Perimeter echo """ - egressTo: operations: - serviceName: storage.googleapis.com methodSelectors: - method: \"*\" resources: - projects/222 egressFrom: identityType: ANY_IDENTITY """ > phiegress.yaml
Aplique as regras de entrada e saída executando os seguintes comandos:
gcloud beta access-context-manager perimeters update AnonPerimeter --set-ingress-policies=anoningress.yaml --set-egress-policies=anonegress.yaml
gcloud beta access-context-manager perimeters update PhiPerimeter --set-egress-policies=phiegress.yaml
Conceda acesso a uma imagem de disco do Compute Engine de terceiros
O diagrama seguinte mostra um recurso do Compute Engine num perímetro de serviço que requer acesso a uma imagem de disco do Compute Engine num projeto de imagem de terceiros que está fora do perímetro:
Suponhamos que definiu o seguinte perímetro:
name: accessPolicies/222/servicePerimeters/Example status: resources: - projects/111 - projects/222 restrictedServices: - compute.googleapis.com - containerregistry.googleapis.com title: Example
Agora, tem de conceder acesso de leitura a imagens de disco em project 999
, que se encontra numa organização diferente. Em seguida, defina a seguinte regra de saída num ficheiro e
guarde o ficheiro como compute.yaml
:
echo """ - egressTo: operations: - serviceName: compute.googleapis.com methodSelectors: - method: InstancesService.Insert resources: - projects/999 egressFrom: identityType: ANY_IDENTITY """ > compute.yaml
Aplique a regra de saída executando o seguinte comando:
gcloud beta access-context-manager perimeters update Example --set-egress-policies=compute.yaml
Ler um conjunto de dados do BigQuery permitindo o acesso privado a partir de uma rede VPC fora do perímetro
O diagrama seguinte mostra várias redes VPC de parceiros fora do perímetro que precisam de ler a partir de um recurso do BigQuery dentro de um perímetro:
Pode presumir que usa o mesmo perímetro que no exemplo 1:
name: accessPolicies/222/servicePerimeters/Example status: resources: - projects/111 restrictedServices: - bigquery.googleapis.com - containerregistry.googleapis.com title: Example
O seu objetivo é permitir o acesso de leitura a partir de uma rede VPC fora do perímetro de vários parceiros. Defina a seguinte regra de entrada num ficheiro e guarde o ficheiro como partneringress.yaml
:
echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - resource: projects/888 - resource: projects/999 ingressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - permission: bigquery.datasets.get - permission: bigquery.tables.list - permission: bigquery.tables.get - permission: bigquery.tables.getData - permission: bigquery.jobs.create resources: - \"*\" """ > partneringress.yaml
Aplique a regra de entrada executando o seguinte comando:
gcloud beta access-context-manager perimeters update Example --set-ingress-policies=partneringress.yaml
Para maior flexibilidade e controlo, o BigQuery usa o - permission:
methodSelectors
em vez do - method:
methodSelectors
usado pela maioria dos serviços. Um único método do BigQuery (RunQuery) pode funcionar de diferentes formas em vários recursos diferentes, e o alinhamento com o modelo de autorizações permite maior flexibilidade e controlo.
Carregar para um contentor do Cloud Storage (escrita) permitindo o acesso privado a partir de uma rede VPC fora do perímetro
Pode presumir que usa o mesmo perímetro que no exemplo 1:
name: accessPolicies/222/servicePerimeters/Example status: resources: - projects/111 restrictedServices: - storage.googleapis.com - containerregistry.googleapis.com title: Example
O seu objetivo é permitir o acesso a partir de uma rede VPC fora do perímetro para
permitir que um parceiro escreva dados no contentor dentro do perímetro. Defina uma regra de entrada e guarde o ficheiro como partneringress.yaml
:
echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - resource: projects/222 ingressTo: operations: - serviceName: storage.googleapis.com methodSelectors: - method: google.storage.objects.create resources: - \"*\" """ > partneringress.yaml
Aplique a regra de entrada executando o seguinte comando:
gcloud beta access-context-manager perimeters update Example --set-ingress-policies=partneringress.yaml
Partilhe registos num perímetro separado permitindo que projetos de vários perímetros partilhem registos
Neste exemplo de utilização, vamos assumir que uma empresa tem um projeto partilhado para a recolha de dados de registo de toda a sua Trusted Cloud implementação. A empresa tem de poder registar dados de vários perímetros diferentes do VPC Service Controls no projeto de registos partilhados, que está no seu próprio perímetro. O projeto de registos não deve aceder a recursos que não sejam os registos.
Suponhamos que definiu os seguintes três perímetros:
# Sensitive 1 name: accessPolicies/222/servicePerimeters/Sensitive1 status: resources: - projects/111 restrictedServices: - bigquery.googleapis.com - containerregistry.googleapis.com - logging.googleapis.com vpcAccessibleServices: enableRestriction: true allowedServices: - RESTRICTED_SERVICES title: Sensitive Data 1
# Sensitive 2 name: accessPolicies/222/servicePerimeters/Sensitive2 status: resources: - projects/222 restrictedServices: - bigquery.googleapis.com - containerregistry.googleapis.com - logging.googleapis.com vpcAccessibleServices: enableRestriction: true allowedServices: - RESTRICTED_SERVICES title: Sensitive Data 2
#Logs name: accessPolicies/222/servicePerimeters/Logs status: resources: - projects/777 restrictedServices: - logging.googleapis.com vpcAccessibleServices: enableRestriction: true allowedServices: - RESTRICTED_SERVICES title: Logs Perimeter
Para permitir que Sensitive1
e Sensitive2
escrevam registos no perímetro de registos, defina a seguinte regra de saída num ficheiro e guarde-o como logsegress.yaml
:
echo """ - egressTo: operations: - serviceName: logging.googleapis.com methodSelectors: - method: LoggingServiceV2.WriteLogEntries - method: LoggingService.WriteLogEntries resources: - projects/777 egressFrom: identityType: ANY_IDENTITY """ > logsegress.yaml
Aplique as regras de saída executando os seguintes comandos:
gcloud beta access-context-manager perimeters update Sensitive1 --set-egress-policies=logsegress.yaml
gcloud beta access-context-manager perimeters update Sensitive2 --set-egress-policies=logsegress.yaml
Pode especificar uma configuração semelhante para qualquer outro perímetro de dados sensíveis que precise de escrever no perímetro de registos.
O que se segue?
- Configurar políticas de entrada e saída
- Acesso sensível ao contexto com regras de entrada
- Regras de entrada e saída