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 los servicios deGoogle Cloud que es independiente de la protección que brinda la administración de identidades y accesos (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:
Debes configurar la política de la organización
dataform.restrictGitRemotes
.Dataform y BigQuery deben estar restringidos por el mismo perímetro de servicio de los Controles del servicio de VPC.
Consideraciones de seguridad
Cuando configures un perímetro de 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, esta podría tener acceso a los datos de BigQuery o Secret Manager en el proyecto al que pertenece, independientemente de los Controles del servicio de VPC. En ese caso, la restricción de 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 invocaciones de flujos de trabajo que provengan de tus repositorios de Dataform. Para obtener más información sobre cómo bloquear la comunicación con BigQuery, consulta Cómo bloquear 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 Cómo bloquear 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
Cómo restringir repositorios remotos
para establecer la política de la organización dataform.restrictGitRemotes
.
La política de la organización dataform.restrictGitRemotes
es obligatoria 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 GitHub de Dataform.
Roles obligatorios
Para obtener los permisos que necesitas para configurar un perímetro de servicio de Controles del servicio de VPC, pídele a tu administrador que te otorgue el rol de IAM de Editor del Administrador de contexto de acceso (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 mediante 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 Controles del servicio de VPC.
Para crear un nuevo perímetro de servicio que restrinja Dataform y BigQuery, sigue la guía Crea un perímetro de servicio en la documentación de Controles del servicio de VPC.
Opcional: Bloquea la comunicación con BigQuery
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. Otorga 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 otorgó a la cuenta de servicio predeterminada de Dataform. Para revocar roles, sigue las instrucciones de la guía Administra 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
, que se otorga a la cuenta de servicio personalizada - El rol 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 de Dataform personalizada y BigQuery de las siguientes maneras:
Revoca el rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) otorgado a la cuenta de servicio predeterminada en la cuenta de servicio personalizada de Dataform seleccionada. Para revocar el rol de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator
), sigue las instrucciones de la guía Administra el acceso a las cuentas de servicio.Revoca todos los roles predefinidos y personalizados otorgados a nivel del proyecto a la cuenta de servicio personalizada que contiene el permiso
bigquery.jobs.create
. Para revocar roles, sigue las instrucciones de la guía Administra el acceso a proyectos, carpetas y organizaciones.
El permiso bigquery.jobs.create
se incluye en los siguientes roles de IAM de BigQuery predefinidos que se deben revocar:
- 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: Bloquea la comunicación con Secret Manager
Dataform usa el permiso secretmanager.versions.access
para acceder a 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 Cómo administrar 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 los siguientes roles de IAM de Secret Manager predefinidos:
- 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?
- Consulta Descripción general de los Controles del servicio de VPC para obtener más información sobre estos.
- 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 las cuentas de servicio en Dataform.