Os VPC Service Controls são uma Google Cloud funcionalidade
que lhe permite configurar um perímetro seguro para proteção contra a exfiltração de dados.
Tanto o URL run.app
predefinido como os domínios personalizados estão sujeitos aos VPC Service Controls.
Este guia mostra como usar os VPC Service Controls com o Cloud Run para adicionar
segurança adicional aos seus serviços.
Limitações e avisos
Para o Artifact Registry ou o Container Registry:
- O registo onde armazena o seu contentor tem de estar no mesmo perímetro de serviço do VPC Service Controls que o projeto para o qual está a fazer a implementação.
- O código que está a ser criado tem de estar no mesmo perímetro que o registo para o qual o contentor está a ser enviado.
A funcionalidade de implementação contínua não está disponível para projetos dentro de um perímetro dos VPC Service Controls.
Quando os serviços do Cloud Run são invocados, a aplicação de políticas dos VPC Service Controls não usa as informações de autenticação da IAM do cliente. Esses pedidos têm as seguintes limitações:
- As regras da política de entrada dos VPC Service Controls que usam os principais do IAM não são suportadas.
- Os níveis de acesso para perímetros dos VPC Service Controls que usam os principais do IAM não são suportados.
Configure a sua organização para suportar o VPC Service Controls
Para usar os VPC Service Controls com o Cloud Run, pode configurar um perímetro de serviço ao nível da organização. Ao configurar políticas da organização adequadas, pode garantir que as verificações dos VPC Service Controls são aplicadas quando usa o Cloud Run e que os programadores só podem implementar serviços em conformidade com os VPC Service Controls. Saiba mais acerca da herança e das violações quando define uma política organizacional.
Se estiver a implementar funções do Cloud Run com o gcloud functions
, tem de conceder acesso à conta de serviço do Cloud Build no perímetro do VPC Service Controls, ou o seu administrador tem de o fazer. Consulte a Vista geral do processo de criação
para mais informações.
Configure um perímetro do VPC Service Controls
Os passos seguintes mostram como configurar um perímetro do VPC Service Controls.
Certifique-se de que tem as funções necessárias para administrar os VPC Service Controls.
Na Google Cloud consola, aceda à página VPC Service Controls.
Se lhe for pedido, selecione a sua organização.
Clique em Gerir políticas de acesso. Selecione uma política de acesso ou crie uma. A política de acesso tem de incluir todos os projetos que quer adicionar ao perímetro.
Clique em Novo perímetro. Escreva um nome para o perímetro.
Selecione os projetos que quer manter seguros dentro do perímetro.
Clique em Projetos.
Na janela Adicionar projetos, selecione os projetos que quer adicionar.
Se estiver a usar a VPC partilhada, certifique-se de que adiciona o projeto anfitrião e os projetos de serviço.
Clique no botão Adicionar projetos.
Selecione o Cloud Run como o serviço que quer proteger no perímetro.
Clique em Serviços restritos.
Clique em Adicionar serviços.
Pesquise "Cloud Run". Em seguida, selecione API Admin do Cloud Run. (Selecione API Cloud Functions V2 se usou
gcloud functions
.)Clique em Adicionar API Admin do Cloud Run (ou API Cloud Functions V2 se usou o
gcloud functions
).
Ative o acesso para programadores.
A ativação do VPC Service Controls para o Cloud Run impede todo o acesso a partir do exterior do perímetro, incluindo a visualização e a implementação de serviços a partir de máquinas que não se encontram no perímetro, como portáteis da empresa. Para que os programadores e os operadores de aplicações possam ver e implementar recursos no perímetro, tem de configurar a política de entrada do perímetro:
Clique em Ingress Policy.
Especifique a Origem, a Identidade, o Projeto e os Serviços.
Clique em Adicionar regra.
Se a sua organização usar o Gestor de acesso sensível ao contexto, também pode ativar o acesso para programadores definindo níveis de acesso.
Clique em Criar perímetro.
Depois de concluir estes passos, todas as chamadas à API Cloud Run Admin são verificadas para garantir que têm origem no mesmo perímetro.
Configure políticas da organização
Para gerir políticas de organização, precisa da função
Administrador de políticas de organização
(roles/orgpolicy.policyAdmin
).
Para agir em conformidade com os VPC Service Controls e proteger contra a exfiltração de dados, configure as seguintes políticas da organização que controlam as definições de entrada e saída permitidas para o Cloud Run no perímetro de serviço.
Restrinja as definições de entrada permitidas
A política organizacional run.allowedIngress
controla as
definições de entrada
que os programadores podem usar para o Cloud Run. Defina esta política de organização para exigir que os programadores usem o valor internal
se quiser permitir apenas pedidos internos ou internal-and-cloud-load-balancing
se quiser permitir pedidos através de um Application Load Balancer externo, com os controlos de acesso geridos pelo Cloud Load Balancing.
Para mais informações sobre estas definições, consulte o artigo Restringir a entrada para o Cloud Run
Consola
Aceda à página da política Definições de entrada permitidas (Cloud Run) na Google Cloud consola:
Clique em Edit.
Na página Editar, selecione Personalizar.
Em Aplicação de políticas, selecione Substituir.
Em Valores da política, selecione Personalizado.
Em Tipo de política, selecione Permitir.
Em Valores personalizados, introduza
internal
. Se também quiser permitir o tráfego do Cloud Load Balancing, clique em Novo valor da política e introduzainternal-and-cloud-load-balancing
.Clique em Guardar.
gcloud
Use o comando gcloud resource-manager org-policies allow
:
gcloud resource-manager org-policies allow \ run.allowedIngress internal \ --organization ORGANIZATION_ID
em que ORGANIZATION_ID
é o ID da sua organização.
Se também quiser permitir o tráfego do Cloud Load Balancing, substitua run.allowedIngress internal
por run.allowedIngress internal-and-cloud-load-balancing
.
Depois de esta política de organização estar em vigor, todos os serviços têm de usar valores permitidos para as respetivas definições de entrada. Isto significa que os serviços do Cloud Run só podem aceitar tráfego proveniente de uma rede VPC dentro do perímetro de serviço. As tentativas de definir a entrada para um valor diferente são bloqueadas pela política da organização.
Restrinja as definições de saída da VPC permitidas
A política da organização run.allowedVPCEgress
controla as definições de saída que os programadores podem usar para o Cloud Run. Defina esta política da organização para permitir apenas o valor all-traffic
:
Consola
Aceda à página da política Definições de saída da VPC permitidas (Cloud Run) na Google Cloud consola:
Clique em Edit.
Na página Editar, selecione Personalizar.
Em Aplicação de políticas, selecione Substituir.
Em Valores da política, selecione Personalizado.
Em Tipo de política, selecione Permitir.
Em Valores personalizados, introduza
all-traffic
.Clique em Guardar.
gcloud
Use o comando gcloud resource-manager org-policies allow
:
gcloud resource-manager org-policies allow \ run.allowedVPCEgress all-traffic \ --organization ORGANIZATION_ID
em que ORGANIZATION_ID
é o ID da sua organização.
Comportamento após a definição da política da organização
Após a implementação da política da organização, todas as novas revisões têm de usar a saída do VPC direta ou um conetor do Acesso a VPC sem servidor e têm de usar o valor all-traffic
para as respetivas definições de saída. Esta combinação
encaminha todo o tráfego de saída destas revisões através de uma rede VPC, sujeitando este tráfego às regras de firewall e a outras definições da rede VPC. As novas implementações de revisões que especificam um valor diferente são bloqueadas pela política da organização.
Política da organização e migrações de tráfego
Para os serviços existentes antes da definição da política da organização, pode continuar a migrar tráfego para revisões não conformes até que todas as revisões que publicam tráfego se tornem conformes.
Este comportamento permite-lhe testar e implementar gradualmente novas revisões que estejam em conformidade com a política. Depois de todas as revisões que publicam tráfego estarem em conformidade com a política, qualquer tentativa de mover tráfego para revisões não conformes é bloqueada pela política da organização.
Configure o seu projeto para suportar o VPC Service Controls
Para projetos individuais dentro do perímetro de serviço, tem de fazer uma configuração adicional para usar os VPC Service Controls.
Configure redes VPC
Esta secção mostra como configurar a sua rede VPC para que os pedidos enviados para os domínios googleapis.com
normais sejam automaticamente encaminhados para o intervalo de IP virtual (VIP) restrito, 199.36.153.4/30
(restricted.googleapis.com
) onde o seu serviço do Cloud Run está a ser publicado. Não são necessárias alterações ao código.
Para cada rede VPC num projeto, siga estes passos para bloquear o tráfego de saída, exceto o tráfego para o intervalo de VIPs restrito:
Ative o acesso privado à Google nas sub-redes que alojam os recursos da sua rede VPC.
Configure regras de firewall para impedir que os dados saiam da rede de VPC:
Crie uma regra de negação de saída que bloqueie todo o tráfego de saída.
Crie uma regra de saída que permita o tráfego para
199.36.153.4/30
na porta TCP 443. Certifique-se de que tem uma prioridade antes da regra de saída de negação que acabou de criar. Isto permite a saída apenas para o intervalo de IPs virtuais restrito.
Crie uma política de resposta do Cloud DNS.
gcloud dns response-policies create RESPONSE_POLICY \ --networks=NETWORK \ --description=DESCRIPTION
Substitua o seguinte:
RESPONSE_POLICY
: um nome para a sua política de resposta.NETWORK
: o nome da rede a associar a esta política. Para especificar várias redes, separe os nomes de cada rede por vírgulas, por exemplo:network1,network2
.DESCRIPTION
: uma descrição da política de resposta, comoCloud Run VPC Service Controls response policy
Adicione uma regra à política de resposta para resolver
*.googleapis.com
pararestricted.googleapis.com
. O intervalo de endereços IP pararestricted.googleapis.com
é199.36.153.4/30
.gcloud dns response-policies rules create RESPONSE_POLICY_RULE \ --response-policy=RESPONSE_POLICY \ --dns-name="*.googleapis.com." \ --local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
Substitua o seguinte:
RESPONSE_POLICY_RULE
: um nome para a regra da política de respostas.RESPONSE_POLICY
: o nome da política de resposta que criou no passo anterior, entre aspas.
Adicione uma regra à política de resposta para resolver
*.run.app
(ou*.cloudfunctions.net
, se criou a sua função comgcloud functions deploy
) pararestricted.googleapis.com
. O intervalo de endereços IP pararestricted.googleapis.com
é199.36.153.4/30
.gcloud dns response-policies rules create RESPONSE_POLICY_RULE \ --response-policy=RESPONSE_POLICY \ --dns-name="*.run.app." \ --local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
Substitua o seguinte:
RESPONSE_POLICY_RULE
: um nome para a regra da política de respostas.RESPONSE_POLICY
: o nome da política de resposta que especificou no passo anterior, entre aspas.
Neste ponto, os pedidos originados na rede VPC:
- Não podem sair da rede VPC, impedindo a saída fora do perímetro de serviço.
- Só podem alcançar as APIs e os serviços Google que verificam os VPC Service Controls, impedindo a exfiltração através das APIs Google.
Implemente serviços e trabalhos do Cloud Run em conformidade com os VPC Service Controls
Depois de configurar o VPC Service Controls para o Cloud Run, certifique-se de que todos os serviços e tarefas do Cloud Run implementados no perímetro de serviço ativam o VPC Service Controls. Isto requer o seguinte:
- Os serviços e as tarefas do Cloud Run têm de usar a saída da VPC direta ou um conetor do Acesso a VPC sem servidor. Consulte o artigo Estabelecer ligação a uma rede VPC para mais informações.
- Os serviços e as tarefas do Cloud Run têm de encaminhar todo o tráfego de saída através da rede da VPC. Consulte o artigo Definições de saída para mais informações.
- Os serviços do Cloud Run têm de permitir tráfego apenas de origens internas. Consulte as Definições de entrada para mais informações. A definição da entrada como "tudo" desativa a aplicação dos VPC Service Controls.
Audite os serviços existentes para verificar a conformidade com os VPC Service Controls
Após configurar os VPC Service Controls, os novos serviços criados em projetos dentro do perímetro de serviço são verificados automaticamente quanto à conformidade. No entanto, para evitar a interrupção das cargas de trabalho existentes, os serviços existentes continuam a funcionar e podem não estar em conformidade com as políticas da organização.
A Google recomenda que audite periodicamente os seus serviços para se certificar de que as definições de entrada e saída estão em conformidade com os requisitos e atualize ou volte a implementar os serviços conforme necessário. Por exemplo, pode criar um script que use a API Cloud Run Admin para listar os seus serviços e realçar os que não especificam as definições de rede adequadas.