Configurar o VPC Service Controls para conectores de integração
O VPC Service Controls permite definir um perímetro de segurança em torno dos conectores de integração do Google Cloud. Com o perímetro de segurança ao redor do serviço, é possível restringir os dados em um perímetro do VPC Service Controls e reduzir os riscos de exfiltração de dados. Se você ainda não conhece o VPC Service Controls, é recomendável ler as seguintes informações:
- Visão geral do VPC Service Controls
- Detalhes e configuração de perímetro de serviço
- Conceder acesso ao VPC Service Controls
Este documento descreve como restringir o acesso ao serviço Integration Connectors (connectors.googleapis.com
)
usando o perímetro do VPC Service Controls. Depois de configurar o perímetro,
é possível configurar políticas que determinam quais outras
Os serviços ou usuários do Google Cloud podem acessar o serviço connectors.googleapis.com
.
Considerações
- Se a conexão estiver se conectando a um recurso do Google Cloud, ele precisará ser acessível dentro do perímetro do VPC Service Controls.
- Se você tiver conexões com um endpoint público, antes de configurar o do VPC Service Controls, verifique se essas conexões usam o PSC (Private Service Connect) para conectar os sistemas de back-end. Sem o anexo do PSC, as conexões atuais a um endpoint público vão falhar depois que você configurar o perímetro do VPC Service Controls.
- Se a conexão estiver se conectando a um recurso que não é do Google Cloud, o destino da conexão precisará ser um anexo do PSC. As conexões criadas sem o anexo do PSC vão falhar.
- Se você estiver configurando um perímetro de VPC Service Controls para seu projeto do Google Cloud, não será possível usar o recurso de inscrição em eventos para o projeto.
Antes de começar
Verifique se você tem as permissões necessárias para configurar os perímetros do VPC Service Controls. Para conferir uma lista de papéis do IAM necessários para configurar o VPC Service Controls, consulte Controle de acesso com o IAM na documentação do VPC Service Controls.Criar um perímetro do VPC Service Controls
Para criar um perímetro do VPC Service Controls, use o comando Google Cloud console
,
gcloud
ou a API accessPolicies.servicePerimeters.create.
Para mais informações, consulte Criar um perímetro de serviço.
As etapas a seguir mostram como criar um perímetro do VPC Service Controls com um acesso de usuário ativado usando
os comandos gcloud
.
- Crie um arquivo
access.yaml
com os detalhes do usuário que tem permissão para acessar o perímetro. Exemplo:- members: - user:USER_EMAIL
- Para conferir o ID da política de acesso da sua organização, use o seguinte comando:
- Crie um nível de acesso para o usuário.
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title "CUSTOM_TITLE" \ --basic-level-spec access.yaml \ --policy=POLICY_ID
Neste comando, POLICY_ID é o valor que você recebeu na etapa anterior.
- Nas configurações globais do projeto do Google Cloud, defina o valor do atributo
vpcsc
comotrue
.curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"vpcsc": true}' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings
Esse comando retorna um ID de operação e inicia uma operação de longa duração (LRO, na sigla em inglês), que pode levar algum tempo para ser concluída. Aguarde a conclusão da LRO. É possível acompanhar o progresso da operação usando o seguinte comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
- Crie o perímetro do VPC Service Controls e forneça acesso ao usuário.
gcloud access-context-manager perimeters create PERIMETER_NAME \ --title="PERIMETER_TITLE" \ --resources=projects/PROJECT_ID \ --restricted-services=connectors.googleapis.com \ --access_levels=ACCESS_LEVEL_NAME
Esse comando leva algum tempo para ser concluído, durante o qual você pode executar outras tarefas em um novo terminal.
Se quiser atualizar o nível de acesso, adicione o serviçoconnectors.googleapis.com
ao um perímetro atual, execute o seguinte comando:gcloud access-context-manager perimeters update PERIMETER_NAME \ --add-restricted-services="connectors.googleapis.com" \ --add-access-levels=ACCESS_LEVEL_NAME \ --policy=POLICY_ID
gcloud access-context-manager policies list --organization=ORGANIZATION_ID
Esse comando lista todas as políticas da organização. Na lista, selecione a política para a qual você quer criar o perímetro do VPC Service Controls.
É possível conferir o ID de recurso da sua organização usando o console do Google Cloud. Para mais informações, consulte Como conseguir o ID do recurso da organização.
Verificar o perímetro
Para verificar o perímetro, use o comando gcloud access-context-manager perimeters describe PERIMETER_NAME. Exemplo:
gcloud access-context-manager perimeters describe PERIMETER_NAME
Para mais informações, consulte Como gerenciar perímetros de serviço.
Remover um projeto do perímetro do VPC Service Controls
Para remover seu projeto do Google Cloud do perímetro do VPC Service Controls, siga estas etapas:
- Nas configurações globais do projeto do Google Cloud, defina o valor do atributo
vpcsc
comofalse
.curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"vpcsc": false}' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings
Esse comando retorna um ID de operação e inicia uma operação de longa duração (LRO, na sigla em inglês) que pode levar algum tempo. Aguarde a conclusão da LRO. É possível acompanhar o progresso da operação usando o seguinte comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
- Remova o projeto do perímetro do VPC Service Controls.
gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME