Controles del servicio de VPC es una Google Cloud función que te permite configurar un perímetro que ayuda a protegerte contra el robo de datos. En esta guía, se muestra cómo usar los Controles del servicio de VPC con Dataform para ayudar a que tus servicios sean más seguros.
Los Controles del servicio de VPC proporcionan una capa adicional de defensa para Google Cloud los servicios que es independiente de la protección que proporciona Identity and Access Management (IAM).
Para obtener más información sobre los Controles del servicio de VPC, consulta Descripción general de los Controles del servicio de VPC.
Limitaciones
Dataform admite los Controles del servicio de VPC con las siguientes limitaciones:
- Debes configurar el
dataform.restrictGitRemotesServicio de políticas de la organización. - Dataform y BigQuery deben estar restringidos por el mismo perímetro de servicio de los Controles del servicio de VPC.
- Para permitir que los usuarios se autentiquen con las credenciales de usuario de su Cuenta de Google cuando programen o activen ejecuciones de forma manual, debes agregar sus identidades de usuario a tus reglas de entrada. Para obtener más información, consulta Actualiza las políticas de entrada y salida de un perímetro de servicio y Referencia de reglas de entrada.
Consideraciones de seguridad
Cuando configures un perímetro de los Controles del servicio de VPC para Dataform, asegúrate de revisar los permisos otorgados a tus cuentas de servicio personalizadas para verificar que coincidan con tu arquitectura de seguridad.
Según los permisos que otorgues a la cuenta de servicio personalizada, es posible que esa cuenta de servicio tenga acceso a los datos de BigQuery o Secret Manager en el proyecto al que pertenece la cuenta de servicio, independientemente de los Controles del servicio de VPC. En ese caso, restringir Dataform con un perímetro de los Controles del servicio de VPC no bloquea la comunicación con BigQuery ni Secret Manager.
Debes bloquear la comunicación con BigQuery si no necesitas ejecutar ninguna invocación de flujo de trabajo que se origine en tus repositorios de Dataform. Para obtener más información sobre cómo bloquear la comunicación con BigQuery, consulta Bloquea la comunicación con BigQuery.
Debes 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 Bloquea la comunicación con Secret Manager.
Antes de comenzar
Antes de configurar un perímetro de servicio de los Controles del servicio de VPC para
Dataform, sigue la
guía Restringe repositorios remotos
para configurar la política de la organización dataform.restrictGitRemotes.
Se requiere la política de la organización dataform.restrictGitRemotes para garantizar que se apliquen las verificaciones de los Controles del servicio de VPC cuando se usa Dataform y 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 los Controles del servicio de VPC,
pídele a tu administrador que te otorgue el
rol de IAM Editor de Access Context Manager (roles/accesscontextmanager.policyEditor) en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para obtener más información sobre los permisos de los Controles del servicio de VPC, consulta Control de acceso con IAM.
Configurar los Controles del servicio de VPC
Puedes restringir Dataform con un perímetro de servicio de los Controles del servicio de VPC de las siguientes maneras:
- Agrega Dataform a un perímetro de servicio existente que restrinja BigQuery.
- Crea un perímetro de servicio que restrinja Dataform y BigQuery.
Para agregar Dataform a un perímetro de servicio que restrinja BigQuery, sigue la guía Actualiza un perímetro de servicio en la documentación de los Controles del servicio de VPC.
Para crear un perímetro de servicio nuevo que restrinja Dataform y BigQuery, sigue la guía Crea un perímetro de servicio en la documentación de los Controles del servicio de VPC.
Opcional: Bloquea la comunicación con BigQuery
Las cuentas de servicio personalizadas usan los siguientes permisos y roles para comunicarse con BigQuery:
- El permiso
bigquery.jobs.create, otorgado a la cuenta de servicio personalizada. - El
rol de creador de tokens de cuenta de servicio
(
roles/iam.serviceAccountTokenCreator), otorgado al agente de servicio predeterminado de Dataform en la cuenta de servicio personalizada.
Puedes bloquear la comunicación entre una cuenta de servicio personalizada y BigQuery de cualquiera de las siguientes maneras:
Revoca todos los roles predefinidos y personalizados otorgados a nivel del proyecto a la cuenta de servicio personalizada que contenga el permiso
bigquery.jobs.create. El permisobigquery.jobs.createse incluye en los siguientes roles de IAM predefinidos de BigQuery:- 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)
Para revocar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
- Administrador de BigQuery (
Revoca el rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator), otorgado al agente de servicio predeterminado de Dataform en la cuenta de servicio personalizada seleccionada. Para revocar el rol de creador de tokens de cuenta de servicio, consulta Administra el acceso a las cuentas de servicio.
Opcional: Bloquea la comunicación con Secret Manager
Dataform usa el permiso secretmanager.versions.access para acceder a secretos individuales de Secret Manager. Otorgas este permiso
al agente de servicio predeterminado 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 del agente de servicio predeterminado de Dataform.
Para revocar el acceso a un secreto de Secret Manager del
agente de servicio predeterminado de Dataform, sigue la
guía Administra el acceso a los objetos Secret
en la documentación de Secret Manager. Debes revocar todos los roles predefinidos y personalizados que contengan el permiso secretmanager.versions.access, otorgado al agente de servicio predeterminado de Dataform en el secreto seleccionado.
El permiso secretmanager.versions.access se incluye en los siguientes
roles de IAM
predefinidos de Secret Manager:
- Administrador de Secret Manager (
roles/secretmanager.admin) - Descriptor de acceso de secretos de Secret Manager (
roles/secretmanager.secretAccessor) - Administrador de versiones de secretos de Secret Manager (
roles/secretmanager.secretVersionManager)
¿Qué sigue?
- Para obtener más información sobre los Controles del servicio de VPC, consulta Descripción general de los Controles del servicio de VPC.
- Para obtener más información sobre la política de la organización, consulta Introducción al Servicio de políticas de la organización.
- Para obtener más información sobre las cuentas de servicio en Dataform, consulta Acerca de los agentes de servicio de Dataform y las cuentas de servicio personalizadas.