É possível proteger ainda mais os recursos do Compute Engine usando o VPC Service Controls.
O VPC Service Controls permite a definição de um perímetro de segurança para os recursos do Compute Engine. O perímetro de serviço limita a exportação e a importação de recursos e dados associados a eles dentro do perímetro definido.
Ao criar um perímetro de serviço, basta selecionar um ou mais projetos que serão protegidos pelo perímetro. As solicitações entre projetos dentro do mesmo perímetro não são afetadas. Todas as APIs existentes continuarão funcionando, desde que os recursos envolvidos estejam no mesmo perímetro de serviço. Observe que as políticas e os papéis do IAM ainda se aplicam em um perímetro de serviço.
Quando um serviço é protegido por um perímetro, as solicitações não podem ser feitas por dentro do perímetro a qualquer recurso fora dele. Isso inclui a exportação de recursos de dentro para fora do perímetro. É possível fazer solicitações de recursos protegidos fora de um perímetro se elas atenderem a certos critérios. Para mais informações, consulte Visão geral na documentação do VPC Service Controls.
Quando uma solicitação que viola o perímetro de serviço é feita, ela falha com o seguinte erro:
"code": 403, "message": "Request is prohibited by organization's policy."
Benefícios de segurança
O VPC Service Controls oferece os seguintes benefícios de segurança:
- O acesso a operações confidenciais da API Compute Engine, como a alteração de regras de firewall, pode ser restrito ao acesso privado de redes autorizadas ou para permitir endereços IP listados.
- Imagens personalizadas e snapshots do disco permanente do Compute Engine podem ser restritos a um perímetro.
- Os metadados da instância do Compute Engine funcionam como um sistema de armazenamento limitado. O acesso a metadados da instância por meio da API Compute Engine é limitado pela política de perímetro de serviço, reduzindo os riscos de exfiltração usando este canal.
Além disso, a API do Compute Engine agora pode ser acessada no IP virtual restrito (VIP, na sigla em inglês). Isso simplifica a configuração do Cloud DNS e de roteamento para clientes dentro do perímetro que precisam acessar essa API.
Limitações
- Firewalls hierárquicos não são afetados por perímetros de serviço.
- As operações de peering de VPC não impõem restrições de perímetro de serviço à VPC.
- O método da API
projects.ListXpnHosts
para a VPC compartilhada não impõe restrições de perímetro de serviço aos projetos retornados.
Permissões
Verifique se você tem os papéis adequados para administrar as configurações do perímetro do VPC Service Controls em sua organização.
Configurar um perímetro de serviço
Siga as instruções em Como criar um perímetro de serviço na documentação do VPC Service Controls para configurar um perímetro de serviço.
Se estiver configurando um perímetro de serviço usando a Google Cloud CLI, especifique
compute.googleapis.com
com a sinalização --restricted-services
para restringir
a API Compute Engine.
Como adicionar o Compute Engine como um serviço restrito a um perímetro atual
Se você tiver um perímetro de serviço existente e quiser adicionar o Compute Engine a ele, siga as instruções em Como atualizar um perímetro de serviço na documentação do VPC Service Controls.
Como criar uma VM com VPC Service Controls
Depois de configurar um perímetro de serviço, não é necessário alterar
as chamadas ou ferramentas de API atuais, desde que os recursos afetados nas
solicitações sejam incluídos no mesmo perímetro de serviço. Por exemplo, o comando
a seguir cria uma instância de VM com uma imagem de exemplo. Nesse caso, o
comando falhará se o IMAGE_PROJECT
estiver fora do perímetro
de serviço (e não houver
ponte do perímetro de serviço
entre os projetos).
gcloud compute instances create new-instance \
--image-family IMAGE_FAMILY --image-project IMAGE_PROJECT \
--zone us-central1-a --machine-type n1-standard-72
Se você estiver criando uma VM a partir de um modelo de instância, todos os recursos referenciados no modelo precisam pertencer ao mesmo perímetro de serviço em que você está executando o comando ou estar conectados por uma ponte do perímetro de serviço. A solicitação falhará se o modelo de instância se referir a um recurso fora do perímetro de serviço, mesmo que o próprio modelo esteja dentro dele.
Para ver um cenário de exemplo de um cliente do Compute Engine fora do perímetro, criando um disco do Compute Engine fora do perímetro usando uma chave do Cloud KMS dentro do perímetro, consulte Exemplos de solicitações de API permitidas pela combinação de regras de entrada e saída.
Projetos de imagens públicas
O Google fornece e mantém um conjunto de imagens públicas para suas instâncias. Esses projetos são implicitamente incluídos em todos os perímetros de segurança. Nenhuma outra ação é necessária para o uso destas imagens.
Veja a seguir uma lista de projetos que são incluídos automaticamente em todos os perímetros de segurança:
centos-cloud
cos-cloud
debian-cloud
fedora-cloud
fedora-coreos-cloud
rhel-cloud
rhel-sap-cloud
rocky-linux-cloud
opensuse-cloud
suse-cloud
suse-byos-cloud
suse-sap-cloud
ubuntu-os-cloud
ubuntu-os-pro-cloud
windows-cloud
windows-sql-cloud
Se você estiver usando um projeto de imagem que não está na lista e escolher não incluir o projeto diretamente no perímetro de segurança, recomendamos fazer uma cópia de todas as imagens que serão usadas em um projeto separado e depois incluí-lo no perímetro de segurança.
Como copiar imagens com o VPC Service Controls
É possível copiar imagens de um projeto para outro se os dois pertencerem ao
mesmo perímetro de serviço. Neste exemplo, DST_PROJECT
e
SRC_PROJECT
devem pertencer ao mesmo perímetro de serviço
para que a solicitação funcione.
gcloud compute images create --project DST_PROJECT IMAGE_NAME \
--source-image SOURCE_IMAGE --source-image-project SRC_PROJECT \
--family IMAGE_FAMILY --storage-location LOCATION
Se você decidir não incluir o projeto de imagem diretamente no perímetro de segurança, recomendamos que primeiro faça uma cópia de todas as imagens que serão usadas em um projeto separado e depois inclua esse projeto no perímetro de segurança.
VPC compartilhada com VPC Service Controls
Ao usar a VPC compartilhada, as restrições do perímetro de serviço se aplicam a todos os projetos envolvidos em uma determinada operação. Em outras palavras, recomendamos que você verifique se o projeto host e os projetos de serviço estão no mesmo perímetro de serviço quando uma operação envolve recursos distribuídos entre os projetos host e de serviço.
Peering de rede VPC
O peering de rede VPC permite que este processo seja feito entre duas organizações independentes. Como um perímetro de serviço é limitado a projetos dentro de uma organização, eles não afetam o peering de redes VPC.
Firewalls hierárquicos
Firewalls hierárquicos são firewalls configurados fora de um projeto, seja na pasta ou no nível da organização. As restrições do perímetro de serviço se aplicam a um conjunto de projetos dentro de um perímetro. Portanto, não se aplica a firewalls hierárquicos.
Grupos de instâncias gerenciadas
Os grupos de instâncias gerenciadas ajudam no gerenciamento de um grupo de instâncias de VM como uma única entidade. Os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) usam modelos de instância para criar VMs, e todas as restrições relacionadas a imagens ou redes e sub-redes de projetos se aplicam. Ou seja, ao usar imagens de outros projetos, verifique se eles pertencem ao mesmo perímetro ou copie as imagens necessárias para outro projeto e inclua esse projeto no perímetro de serviço. Os projetos de imagens públicas mantidos pelo Google são incluídos automaticamente em todos os perímetros de serviço.
Se você quiser usar grupos de instâncias com VPC compartilhada, verifique se seus projetos estão no mesmo perímetro de segurança.
A seguir
- Saiba mais sobre o VPC Service Controls.
- Saiba mais sobre os serviços compatíveis com os IPs virtuais restritos.
- Leia mais sobre etapas de configuração do perímetro de serviço.