Configurar o VPC Service Controls para o Integration Connectors
O VPC Service Controls permite definir um perímetro de segurança em torno do serviço Integration Connectors do Google Cloud. Com o perímetro de segurança ao redor do seu 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
Neste documento, descrevemos 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
outros serviços ou usuários do Google Cloud podem acessar o serviço connectors.googleapis.com
.
Considerações
- Se sua conexão estiver se conectando a um recurso do Google Cloud, esse recurso precisará estar acessível dentro do perímetro do VPC Service Controls.
- Se você tiver conexões com um endpoint público, antes de configurar o perímetro do VPC Service Controls, verifique se essas conexões usam o anexo Private Service Connect para conectar os sistemas de back-end. Sem o anexo do PSC, as conexões atuais com um endpoint público vão falhar depois que você configurar o perímetro do VPC Service Controls.
- Se sua conexão estiver se conectando a um recurso que não seja do Google Cloud, o destino da conexão precisará ser um anexo PSC. As conexões criadas sem o ataque PSC vão falhar.
- Se você estiver configurando um perímetro do VPC Service Controls para seu projeto do Google Cloud, não será possível usar o recurso de assinatura de eventos no 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
ou 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
- Consiga o ID da política de acesso da sua organização usando 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
Nesse comando, POLICY_ID é o valor obtido na etapa anterior.
- Nas configurações globais do seu 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 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 dê 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 esse tempo, é possível executar outras tarefas em um novo terminal.
Se você quiser atualizar o nível de acesso e adicionar o serviçoconnectors.googleapis.com
a 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 criar o perímetro do VPC Service Controls.
É possível exibir o ID do 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 o projeto do Google Cloud do perímetro do VPC Service Controls, siga estas etapas:
- Nas configurações globais do seu 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 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
- Remova seu projeto do perímetro do VPC Service Controls.
gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME