Esta guía explica cómo autenticarse de forma segura en Google Cloud Storage (GCS) y acceder a tus datos desde ClickHouse Cloud.
Introducción
ClickHouse Cloud se conecta a GCS mediante claves HMAC (Hash-based Message Authentication Code) asociadas a una cuenta de servicio de Google Cloud. Este enfoque proporciona acceso seguro a sus buckets de GCS sin incrustar credenciales directamente en sus consultas.
Cómo funciona:
- Cree una cuenta de servicio de Google Cloud con los permisos de GCS adecuados
- Genere claves HMAC para esa cuenta de servicio
- Proporcione estas credenciales HMAC a ClickHouse Cloud
- ClickHouse Cloud usa estas credenciales para acceder a sus buckets de GCS
Este enfoque le permite gestionar todo el acceso a los buckets de GCS mediante políticas de IAM en la cuenta de servicio, lo que facilita conceder o revocar acceso sin modificar las políticas de cada bucket.
Requisitos previos
Para seguir esta guía, necesitarás:
- Un servicio activo de ClickHouse Cloud
- Un proyecto de Google Cloud con Cloud Storage habilitado
- Permisos para crear cuentas de servicio y generar claves HMAC en tu proyecto de GCP
Configuración
Crear una service account de Google Cloud
- En la Google Cloud Console, ve a IAM & Admin → Service Accounts

- Haz clic en
Service accountsen el menú de la izquierda y, a continuación, enCreate service account:

Introduce un nombre y una descripción para la service account; por ejemplo:
Service account name: clickhouse-gcs-access (or your preferred name)
Service account description: Service account for ClickHouse Cloud to access GCS bucketsHaz clic en Create and continue

Asigna a la cuenta de servicio el rol Storage Object User:

Este rol proporciona acceso de lectura y escritura a los objetos de GCS
Haz clic en Continue y luego en Done
Toma nota de la dirección de correo electrónico de la cuenta de servicio:

Conceder acceso al bucket a la cuenta de servicio
Puede conceder acceso tanto a nivel de proyecto como a nivel de bucket individual.
Opción 1: Conceder acceso a buckets específicos (recomendado)
- Vaya a
Cloud Storage→Buckets - Haga clic en el bucket al que quiere conceder acceso
- Vaya a la pestaña
Permissions - En "Permissions", haga clic en
Grant accesspara el principal creado en los pasos anteriores - En el campo "New principals", introduzca el correo electrónico de su cuenta de servicio
- Seleccione el rol adecuado:
- Storage Object User para acceso de lectura y escritura
- Storage Object Viewer para acceso de solo lectura
- Haga clic en
Save - Repita el proceso con cualquier bucket adicional
Opción 2: Conceder acceso a nivel de proyecto
- Vaya a
IAM & Admin→IAM - Haga clic en
Grant access - Introduzca el correo electrónico de su cuenta de servicio en el campo
New principals - Seleccione Storage Object User (o Storage Object Viewer para acceso de solo lectura)
- Haga clic en SAVE
Genera claves HMAC para la cuenta de servicio
Ve a Cloud Storage → Settings → Interoperability:

Si no ves una sección de "Access keys", haz clic en Enable interoperability access
En "Access keys for service accounts", haz clic en Create a key for a service account:

Selecciona la cuenta de servicio que creaste antes (p. ej., clickhouse-gcs-access@your-project.iam.gserviceaccount.com)
Haz clic en Create key:

Se mostrará la clave HMAC. Guarda tanto la Access Key como el Secret de inmediato; no podrás volver a ver el Secret.
A continuación se muestran claves de ejemplo:
Access Key: GOOG1EF4YBJVNFQ2YGCP3SLV4Y7CMFHW7HPC6EO7RITLJDDQ75639JK56SQVD
Secret: nFy6DFRr4sM9OnV6BG4FtWVPR25JfqpmcdZ6w9nVUsa claves HMAC con ClickHouse Cloud
Ahora puedes usar las credenciales HMAC para acceder a GCS desde ClickHouse Cloud. Para ello, usa la función de tabla de GCS:
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/epidemiology.csv',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'CSVWithNames'
);Usa comodines para varios archivos:
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/*.parquet',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'Parquet'
);Autenticación HMAC en ClickPipes para GCS
ClickPipes usa claves HMAC (Hash-based Message Authentication Code) para autenticarse con Google Cloud Storage.
Al configurar un ClickPipe de GCS:
- Selecciona
CredentialsenAuthentication methoddurante la configuración del ClickPipe - Proporciona las credenciales HMAC obtenidas en los pasos anteriores

Las claves HMAC deben estar asociadas a una cuenta de servicio que tenga el rol roles/storage.objectViewer, que incluye:
storage.objects.list: para listar objetos en el bucketstorage.objects.get: para obtener/leer objetos
Prácticas recomendadas
Usa cuentas de servicio independientes para distintos entornos
Crea cuentas de servicio independientes para los entornos de desarrollo, staging y producción. Por ejemplo:
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
Esto permite revocar fácilmente el acceso a un entorno específico sin afectar a los demás.
Aplique el principio de mínimo privilegio
Conceda solo los permisos mínimos necesarios:
- Use Storage Object Viewer para acceso de solo lectura
- Conceda acceso a buckets específicos en lugar de a todo el proyecto
- Considere usar condiciones a nivel de bucket para restringir el acceso a rutas específicas
Rote las claves HMAC con regularidad
Implemente un plan de rotación de claves:
- Genere nuevas claves HMAC
- Actualice la configuración de ClickHouse con las nuevas claves
- Verifique el funcionamiento con las nuevas claves
- Elimine las claves HMAC antiguas
Monitoree el acceso con Cloud Audit Logs
Habilite y monitoree Cloud Audit Logs para Cloud Storage:
- Vaya a IAM & Admin → Audit Logs
- Busque Cloud Storage en la lista
- Habilite
Admin Read,Data ReadyData Write logs - Use estos registros para monitorear los patrones de acceso y detectar anomalías