Configura los Controles del servicio de VPC para Dataform

Los Controles del servicio de VPC son una función de Google Cloud que te permite configurar un perímetro para protegerte del 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 los servicios de Google Cloud, que es independiente de la protección que proporciona Identity and Access Management (IAM).

Consulta Descripción general de los Controles del servicio de VPC para obtener más información sobre estos.

Limitaciones

Dataform admite los Controles del servicio de VPC con las siguientes limitaciones:

Consideraciones de seguridad

Cuando configuras un perímetro de los Controles del servicio de VPC para Dataform, debes revisar los permisos otorgados a tus cuentas de servicio de Dataform y asegurarte de que coincidan con tu arquitectura de seguridad.

Según los permisos que otorgues a una cuenta de servicio de Dataform, esa cuenta de servicio puede tener acceso a los datos de BigQuery o Secret Manager, sin importar los Controles del servicio de VPC. En ese caso, restringir Dataform con un perímetro de Controles del servicio de VPC no bloquea la comunicación con BigQuery o 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. Si deseas obtener más información para 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. Si quieres obtener más información para 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 los repositorios remotos a fin de establecer la política de la organización dataform.restrictGitRemotes.

La política de la organización dataform.restrictGitRemotes es necesaria para garantizar que se apliquen las verificaciones de los Controles del servicio de VPC cuando se usa Dataform y que el acceso de terceros a los repositorios de Git de Dataform esté restringido.

Funciones obligatorias

Si quieres 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.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

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 Controles del servicio de VPC de las siguientes maneras:

  • Agregar Dataform a un perímetro de servicio existente que restrinja BigQuery
  • Crear un perímetro de servicio que restrinja tanto Dataform como 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 nuevo perímetro de servicio que restrinja tanto Dataform como BigQuery, sigue la guía Crea un perímetro de servicio en la documentación de los Controles del servicio de VPC.

Bloquea la comunicación con BigQuery (opcional)

La forma en que Dataform se comunica con BigQuery depende del tipo de cuenta de servicio que se usa en Dataform.

La cuenta de servicio predeterminada de Dataform usa el permiso bigquery.jobs.create para comunicarse con BigQuery. Otorgas los roles predeterminados de la cuenta de servicio de Dataform que contienen este permiso cuando otorgas los roles necesarios para que Dataform ejecute flujos de trabajo de SQL en BigQuery.

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, que se otorgaron a la cuenta de servicio predeterminada de Dataform. Para revocar roles, sigue la guía Administra el acceso a proyectos, carpetas y organizaciones.

Las cuentas de servicio personalizadas de Dataform usan los siguientes permisos y roles para comunicarse con BigQuery:

  • El permiso bigquery.jobs.create, que se otorga a la cuenta de servicio personalizada.
  • La función de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator), que se otorga a la cuenta de servicio predeterminada de Dataform en la cuenta de servicio personalizada

Puedes bloquear la comunicación entre una cuenta de servicio personalizada de Dataform y BigQuery de cualquiera de las siguientes maneras:

  • Revoca la función de creador de tokens de la cuenta de servicio (roles/iam.serviceAccountTokenCreator), otorgada a la cuenta de servicio predeterminada en la cuenta de servicio personalizada de Dataform seleccionada. Para revocar la función de creador de tokens de cuentas de servicio (roles/iam.serviceAccountTokenCreator), sigue la guía Administra el acceso a las cuentas de servicio.

  • Revoca todos los roles predefinidos y personalizados otorgados a nivel de proyecto a la cuenta de servicio personalizada que contenga el permiso bigquery.jobs.create. Para revocar roles, sigue la guía Administra el acceso a proyectos, carpetas y organizaciones.

El permiso bigquery.jobs.create se incluye en las siguientes funciones de IAM de BigQuery predefinidas que se deben revocar:

Opcional: Bloquea la comunicación con Secret Manager

Dataform usa el permiso secretmanager.versions.access para acceder a los secretos individuales de Secret Manager. Otorga este permiso a la cuenta de servicio predeterminada de Dataform en un Secret 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 desde 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 Administra el acceso a los secretos en la documentación de Secret Manager. Debes revocar todos los roles predefinidos y personalizados que contengan el permiso secretmanager.versions.access, otorgado a la cuenta de servicio predeterminada de Dataform en el secreto seleccionado.

El permiso secretmanager.versions.access se incluye en las siguientes funciones predefinidas de IAM de Secret Manager:

¿Qué sigue?