Laboratorio 7: Seguridad, Gobernanza y Control de Acceso (IAM, Filas y Columnas)
Objetivos del Laboratorio
- Implementar seguridad a nivel de columna (CLS) utilizando taxonomías y etiquetas de políticas de Data Catalog para proteger datos sensibles de tipo PII.
- Implementar seguridad a nivel de fila (RLS) definiendo políticas de acceso condicional directo sobre el motor de almacenamiento analítico.
- Comprender el comportamiento del descarte de registros y mitigar el bloqueo accidental de los administradores declarando una política permisiva estructurada.
- Simular y auditar las restricciones de acceso geográfico alternando de forma segura el contexto de identidades locales con cuentas de servicio.
Herramientas y APIs Utilizadas
Data Catalog API: Servicio de gobernanza y metadatos que habilita el control de acceso fino a nivel de columna.BigQuery API: Motor que administra los permisos y valida en tiempo de ejecución las políticas condicionales de fila.gcloud CLI: Interfaz de comandos empleada para administrar cuentas de servicio, descargar claves criptográficas y alternar sesiones locales.
Estructura del Código Desarrollado
employees.csv: Datos de empleados que asocian identificadores con un número de seguro social protegido (ssn) y una región geográfica.main.tf: Configuración de Terraform que habilita servicios, crea la cuenta de servicioeu-analyst, la taxonomía de seguridad, la tabla de empleados y las políticas de fila.07_01_query_as_owner.sql: Consulta SQL de verificación ejecutada desde el rol de administrador del proyecto.07_02_query_as_analyst.sql: Consulta diseñada para auditar las exclusiones lógicas automáticas de la cuenta de servicio restringida.
Paso a Paso del Despliegue
Fase 1: Preparación de Datos y Estructuración
- Creación de los registros planos de empleados segmentando el volumen de datos por regiones geográficas de Estados Unidos y Europa.
- Configuración declarativa en Terraform de los recursos
google_data_catalog_taxonomyygoogle_data_catalog_policy_tag. - Vinculación de la etiqueta de política de seguridad directamente sobre el esquema físico de la columna
ssnen Terraform.
Fase 2: Implementación de Políticas de Fila
- Declaración de la directiva de seguridad de fila
google_bigquery_row_access_policyacotando el filtro aregion = 'EU'para la cuenta de servicio de analista de Europa. - Declaración de una política de acceso general para el propietario del proyecto con la expresión lógica
truepara asegurar la continuidad de accesos. - Aplicación física de la infraestructura de gobernanza y carga de datos iniciales utilizando la utilidad
bq load.
Fase 3: Auditoría y Emulación de Roles
- Ejecución de una consulta analítica inicial como administrador del proyecto para verificar el bloqueo inmediato de la columna protegida
ssn. - Generación y descarga de la clave criptográfica local de la cuenta de servicio restringida utilizando el comando
gcloud iam service-accounts keys create. - Activación y suplantación local del rol analista de Europa en la terminal mediante
gcloud auth activate-service-account. - Ejecución del script SQL de auditoría comprobando que BigQuery descarta en el motor de almacenamiento cualquier fila que no corresponda a la región
EU. - Restauración segura del contexto de autenticación local de vuelta a las credenciales de administrador del proyecto.