Controles de Servicio de VPC es una Google Cloud función que te permite configurar un perímetro para protegerte frente a la filtración de datos. En esta guía se muestra cómo usar Controles de Servicio de VPC con Dataform para proteger tus servicios.
Controles de Servicio de VPC proporciona una capa adicional de defensa para los servicios deGoogle Cloud , que es independiente de la protección que ofrece Gestión de Identidades y Accesos (IAM).
Para obtener más información sobre Controles de Servicio de VPC, consulta la información general sobre Controles de Servicio de VPC.
Limitaciones
Dataform admite Controles de Servicio de VPC con las siguientes limitaciones:
Debes definir la
dataform.restrictGitRemotes
política de organización.Dataform y BigQuery deben estar restringidos por el mismo perímetro de servicio de Controles de Servicio de VPC.
Para permitir que determinados usuarios se autentiquen con sus credenciales de cuenta de Google al programar ejecuciones, activar ejecuciones manualmente o ejecutar canalizaciones con los controles del servicio de VPC configurados, debes añadir sus identidades de usuario a tus reglas de entrada. Para obtener más información, consulta Actualizar las políticas de entrada y salida de un perímetro de servicio y Referencia de reglas de entrada.
Cuestiones sobre seguridad
Cuando configures un perímetro de Controles de Servicio de VPC para Dataform, debes revisar los permisos concedidos a tus cuentas de servicio de Dataform y asegurarte de que coinciden con tu arquitectura de seguridad.
En función de los permisos que concedas a una cuenta de servicio de Dataform, es posible que esa cuenta de servicio tenga acceso a los datos de BigQuery o Secret Manager del proyecto al que pertenezca, independientemente de Controles de Servicio de VPC. En ese caso, restringir Dataform con un perímetro de Controles de Servicio de VPC no bloquea la comunicación con BigQuery ni con Secret Manager.
Deberías bloquear la comunicación con BigQuery si no necesitas ejecutar ninguna invocación de flujo de trabajo procedente de tus repositorios de Dataform. Para obtener más información sobre cómo bloquear la comunicación con BigQuery, consulta Bloquear la comunicación con BigQuery.
Deberías bloquear la comunicación con Secret Manager si ninguno de tus repositorios de Dataform se conecta a un repositorio de Git de terceros. Para obtener más información sobre cómo bloquear la comunicación con Secret Manager, consulta el artículo Bloquear la comunicación con Secret Manager.
Antes de empezar
Antes de configurar un perímetro de servicio de Controles de Servicio de VPC para Dataform, sigue la guía Restringir repositorios remotos para definir la política de organización dataform.restrictGitRemotes
.
La política de organización dataform.restrictGitRemotes
es obligatoria para asegurarse de que se apliquen las comprobaciones de Controles de Servicio de VPC al usar Dataform y de que se restrinja el acceso de terceros a los repositorios de Git de Dataform.
Roles obligatorios
Para obtener los permisos que necesitas para configurar un perímetro de servicio de Controles de Servicio de VPC, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Access Context Manager (roles/accesscontextmanager.policyEditor
) en el proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Para obtener más información sobre los permisos de Controles de Servicio de VPC, consulta el artículo sobre el control de acceso con gestión de identidades y accesos.
Configurar Controles de Servicio de VPC
Puedes restringir Dataform con un perímetro de servicio de Controles de Servicio de VPC de las siguientes formas:
- Añade Dataform a un perímetro de servicio que restrinja BigQuery.
- Crea un perímetro de servicio que restrinja tanto Dataform como BigQuery.
Para añadir Dataform a un perímetro de servicio que restrinja BigQuery, sigue la guía Actualizar un perímetro de servicio de la documentación de Controles de Servicio de VPC.
Para crear un perímetro de servicio que restrinja tanto Dataform como BigQuery, sigue la guía Crear un perímetro de servicio de la documentación de Controles de Servicio de VPC.
Opcional: Bloquear la comunicación con BigQuery
La forma en que Dataform se comunica con BigQuery depende del tipo de cuenta de servicio que se use en Dataform.
La cuenta de servicio predeterminada de Dataform usa el permiso bigquery.jobs.create
para comunicarse con BigQuery. Cuando asignas los roles necesarios para que Dataform ejecute flujos de trabajo en BigQuery, otorgas a la cuenta de servicio predeterminada de Dataform roles que contienen este permiso.
Para bloquear la comunicación entre la cuenta de servicio predeterminada de Dataform y BigQuery, debes revocar todos los roles predefinidos y personalizados que contengan el permiso bigquery.jobs.create
y que se hayan concedido a la cuenta de servicio predeterminada de Dataform. Para revocar roles, sigue la guía Gestionar el acceso a proyectos, carpetas y organizaciones.
Las cuentas de servicio de Dataform personalizadas usan los siguientes permisos y roles para comunicarse con BigQuery:
- El permiso
bigquery.jobs.create
, concedido a la cuenta de servicio personalizada. - El rol Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
), asignado a la cuenta de servicio predeterminada de Dataform en la cuenta de servicio personalizada.
Puedes bloquear la comunicación entre una cuenta de servicio de Dataform personalizada y BigQuery de cualquiera de las siguientes formas:
Revoca el rol Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) asignado a la cuenta de servicio predeterminada en la cuenta de servicio de Dataform personalizada seleccionada. Para revocar el rol Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator
), sigue la guía Gestionar el acceso a cuentas de servicio.Revoca todos los roles predefinidos y personalizados concedidos a nivel de proyecto a la cuenta de servicio personalizada que contenga el permiso
bigquery.jobs.create
. Para revocar roles, sigue la guía Gestionar el acceso a proyectos, carpetas y organizaciones.
El permiso bigquery.jobs.create
está incluido en los siguientes roles de gestión de identidades y accesos de BigQuery predefinidos, que deben revocarse:
- Administrador de BigQuery (
roles/bigquery.admin
) - Usuario de trabajo de BigQuery (
roles/bigquery.jobUser
) - Usuario de BigQuery (
roles/bigquery.user
) - Administrador de BigQuery Studio (
roles/bigquery.studioAdmin
) - Usuario de BigQuery Studio (
roles/bigquery.studioUser
)
Opcional: Bloquear la comunicación con Secret Manager
Dataform usa el permiso secretmanager.versions.access
para acceder a secretos individuales de Secret Manager. Concedes este permiso a la cuenta de servicio predeterminada de Dataform en un secreto de Secret Manager seleccionado cuando conectas un repositorio de Dataform a un repositorio de terceros.
Para bloquear la comunicación entre Dataform y Secret Manager, debes revocar el acceso a todos los secretos de la cuenta de servicio predeterminada de Dataform.
Para revocar el acceso a un secreto de Secret Manager desde la cuenta de servicio predeterminada de Dataform, sigue la guía Gestionar el acceso a los secretos de la documentación de Secret Manager. Debes revocar todos los roles predefinidos y personalizados que contengan el permiso secretmanager.versions.access
, concedido a la cuenta de servicio predeterminada de Dataform en el secreto seleccionado.
El permiso secretmanager.versions.access
está incluido en los siguientes roles de gestión de identidades y accesos de Secret Manager predefinidos:
- Administrador de Secret Manager (
roles/secretmanager.admin
) - Lector de recursos de Secret Manager (
roles/secretmanager.secretAccessor
) - Gestor de versiones de secretos de Secret Manager (
roles/secretmanager.secretVersionManager
)
Siguientes pasos
- Para obtener más información sobre Controles de Servicio de VPC, consulta la información general sobre Controles de Servicio de VPC.
- Para obtener más información sobre la política de organización, consulta el artículo Introducción al servicio de políticas de organización.
- Para obtener más información sobre las cuentas de servicio en Dataform, consulta el artículo Acerca de las cuentas de servicio en Dataform.