O VPC Service Controls é um recurso Google Cloud que permite configurar um perímetro para evitar a exfiltração de dados. Neste guia, mostramos como usar o VPC Service Controls com o Dataform para aumentar a segurança dos seus serviços.
O VPC Service Controls oferece uma camada extra de defesa para Google Cloud serviços independentes da proteção fornecida pelo gerenciamento de identidade e acesso (IAM).
Para saber mais sobre o VPC Service Controls, consulte a Visão geral do VPC Service Controls.
Limitações
O Dataform oferece suporte ao VPC Service Controls com as seguintes limitações:
É necessário definir a política da organização
dataform.restrictGitRemotes
.O Dataform e o BigQuery precisam ser restritos pelo mesmo perímetro de serviço do VPC Service Controls.
Considerações sobre segurança
Ao configurar um perímetro do VPC Service Controls para o Dataform, revise as permissões concedidas às suas contas de serviço do Dataform e verifique se elas correspondem à sua arquitetura de segurança.
Dependendo das permissões concedidas a uma conta de serviço do Dataform, ela pode ter acesso aos dados do BigQuery ou do Secret Manager no projeto a que pertence, independentemente dos controles de serviço da VPC. Nesse caso, restringir o Dataform com um perímetro do VPC Service Controls não bloqueia a comunicação com o BigQuery ou o Secret Manager.
Bloqueie a comunicação com o BigQuery se você não precisar executar invocações de fluxo de trabalho originadas dos repositórios do Dataform. Para mais informações sobre como bloquear a comunicação com o BigQuery, consulte Bloquear a comunicação com o BigQuery.
Bloqueie a comunicação com o Secret Manager se nenhum dos seus repositórios do Dataform se conectar a um repositório Git de terceiros. Para mais informações sobre como bloquear a comunicação com o Secret Manager, consulte Bloquear a comunicação com o Secret Manager.
Antes de começar
Antes de configurar um perímetro de serviço do VPC Service Controls para o
Dataform, siga o guia
Restringir repositórios remotos
para definir a política da organização dataform.restrictGitRemotes
.
A política da organização dataform.restrictGitRemotes
é necessária para garantir
que as verificações do VPC Service Controls sejam aplicadas ao usar
o Dataform e que o acesso de terceiros aos repositórios do Dataform Git
seja restrito.
Funções exigidas
Para conseguir as permissões necessárias para configurar um perímetro de serviço do VPC Service Controls,
peça ao administrador para conceder a você o
papel do IAM de editor do gerenciador de contexto de acesso (roles/accesscontextmanager.policyEditor
) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Para mais informações sobre as permissões do VPC Service Controls, consulte Controle de acesso com o IAM.
Configurar o VPC Service Controls
É possível restringir o Dataform com um perímetro de serviço do VPC Service Controls das seguintes maneiras:
- Adicione o Dataform a um perímetro de serviço que restrinja o BigQuery.
- Crie um perímetro de serviço que restrinja o Dataform e o BigQuery.
Para adicionar o Dataform a um perímetro de serviço que restringe o BigQuery, siga o guia Atualizar um perímetro de serviço na documentação do VPC Service Controls.
Para criar um novo perímetro de serviço que restrinja o Dataform e o BigQuery, siga o guia Criar um perímetro de serviço na documentação do VPC Service Controls.
Opcional: bloquear a comunicação com o BigQuery
A forma como o Dataform se comunica com o BigQuery depende do tipo de conta de serviço usada no Dataform.
A conta de serviço padrão do Dataform usa a permissão bigquery.jobs.create
para se comunicar com o BigQuery. Você concede os papéis padrão da conta de serviço do Dataform que contêm essa permissão quando concede os papéis necessários para que o Dataform execute fluxos de trabalho SQL no BigQuery.
Para bloquear a comunicação entre a conta de serviço padrão do Dataform e o BigQuery, é necessário revogar todos os papéis predefinidos e personalizados que contêm a permissão bigquery.jobs.create
concedida à conta de serviço padrão do Dataform. Para revogar papéis, siga o guia
Gerenciar o acesso a projetos, pastas e organizações.
As contas de serviço personalizadas do Dataform usam as seguintes permissões e funções para se comunicar com o BigQuery:
- A permissão
bigquery.jobs.create
, concedida à conta de serviço personalizada. - O papel "Criador de token da conta de serviço" (
roles/iam.serviceAccountTokenCreator
), concedido à conta de serviço padrão do Dataform na conta de serviço personalizada.
É possível bloquear a comunicação entre uma conta de serviço do Dataform personalizado e o BigQuery das seguintes maneiras:
Revogue o papel Criador de token da conta de serviço (
roles/iam.serviceAccountTokenCreator
), concedido à conta de serviço padrão na conta de serviço personalizada do Dataform selecionada. Para revogar o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator
), siga o guia Gerenciar acesso a contas de serviço.Revoga todos os papéis predefinidos e personalizados concedidos no nível do projeto à conta de serviço personalizada que contém a permissão
bigquery.jobs.create
. Para revogar papéis, siga o guia Gerenciar o acesso a projetos, pastas e organizações.
A permissão bigquery.jobs.create
está incluída nos seguintes
papéis predefinidos do IAM do BigQuery
que precisam ser revogados:
- Administrador do BigQuery (
roles/bigquery.admin
) - Usuário de jobs do BigQuery(
roles/bigquery.jobUser
) - Usuário do BigQuery (
roles/bigquery.user
) - Administrador do BigQuery Studio (
roles/bigquery.studioAdmin
) - Usuário do BigQuery Studio(
roles/bigquery.studioUser
)
Opcional: bloquear a comunicação com o Secret Manager
O Dataform usa a permissão secretmanager.versions.access
para
acessar secrets individuais do Secret Manager. Você concede essa permissão
à conta de serviço padrão do Dataform em um secret
do Secret Manager selecionado quando você
conecta um repositório do Dataform a um repositório de terceiros.
Para bloquear a comunicação entre o Dataform e o Secret Manager, é necessário revogar o acesso a todos os segredos da conta de serviço padrão do Dataform.
Para revogar o acesso a um secret do Secret Manager da conta de serviço padrão do Dataform, siga o guia Gerenciar acesso a secrets na documentação do Secret Manager. É necessário revogar todos os papéis predefinidos e personalizados que contêm a permissão secretmanager.versions.access
concedida à conta de serviço padrão do Dataform no secret selecionado.
A permissão secretmanager.versions.access
está incluída nos seguintes
papéis predefinidos do IAM do Secret Manager:
- Administrador do Secret Manager (
roles/secretmanager.admin
) - Acessador de secrets do Secret Manager (
roles/secretmanager.secretAccessor
) - Gerenciador de versões de secret do Secret Manager (
roles/secretmanager.secretVersionManager
)
A seguir
- Para saber mais sobre o VPC Service Controls, consulte a Visão geral do VPC Service Controls.
- Para saber mais sobre a política da organização, consulte Introdução ao serviço de políticas da organização.
- Para saber mais sobre contas de serviço no Dataform, consulte Sobre as contas de serviço no Dataform.