Saltar al contenido principal
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:
  1. Cree una cuenta de servicio de Google Cloud con los permisos de GCS adecuados
  2. Genere claves HMAC para esa cuenta de servicio
  3. Proporcione estas credenciales HMAC a ClickHouse Cloud
  4. 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

1

Crear una service account de Google Cloud

  1. En la Google Cloud Console, ve a IAM & Admin → Service Accounts
  1. Haz clic en Service accounts en el menú de la izquierda y, a continuación, en Create 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 buckets
Haz clic en Create and continueAsigna a la cuenta de servicio el rol Storage Object User:Este rol proporciona acceso de lectura y escritura a los objetos de GCS
Para acceso de solo lectura, usa Storage Object Viewer Para un control más granular, puedes crear un rol personalizado
Haz clic en Continue y luego en DoneToma nota de la dirección de correo electrónico de la cuenta de servicio:
2

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)

  1. Vaya a Cloud StorageBuckets
  2. Haga clic en el bucket al que quiere conceder acceso
  3. Vaya a la pestaña Permissions
  4. En “Permissions”, haga clic en Grant access para el principal creado en los pasos anteriores
  5. En el campo “New principals”, introduzca el correo electrónico de su cuenta de servicio
  6. Seleccione el rol adecuado:
  • Storage Object User para acceso de lectura y escritura
  • Storage Object Viewer para acceso de solo lectura
  1. Haga clic en Save
  2. Repita el proceso con cualquier bucket adicional

Opción 2: Conceder acceso a nivel de proyecto

  1. Vaya a IAM & AdminIAM
  2. Haga clic en Grant access
  3. Introduzca el correo electrónico de su cuenta de servicio en el campo New principals
  4. Seleccione Storage Object User (o Storage Object Viewer para acceso de solo lectura)
  5. Haga clic en SAVE
Buena práctica de seguridadConceda acceso solo a los buckets específicos a los que ClickHouse necesita acceder, en lugar de otorgar permisos para todo el proyecto.
3

Genera claves HMAC para la cuenta de servicio

Ve a Cloud StorageSettingsInteroperability:Si no ves una sección de “Access keys”, haz clic en Enable interoperability accessEn “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: nFy6DFRr4sM9OnV6BG4FtWVPR25JfqpmcdZ6w9nV
ImportanteAlmacena estas credenciales de forma segura. El secreto no se puede recuperar una vez que cierres esta pantalla. Tendrás que generar nuevas claves si pierdes el secreto.

Usa 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:
  1. Selecciona Credentials en Authentication method durante la configuración del ClickPipe
  2. Proporciona las credenciales HMAC obtenidas en los pasos anteriores
La autenticación mediante cuentas de servicio aún no es compatible; debes usar claves HMAC La URL del bucket de GCS debe tener el formato: https://storage.googleapis.com/<bucket>/<path> (no gs://)
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 bucket
  • storage.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.com
  • clickhouse-gcs-staging@project.iam.gserviceaccount.com
  • clickhouse-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
Google Cloud no exige el vencimiento de las claves HMAC, por lo que debe implementar su propia política de rotación.

Monitoree el acceso con Cloud Audit Logs

Habilite y monitoree Cloud Audit Logs para Cloud Storage:
  1. Vaya a IAM & Admin → Audit Logs
  2. Busque Cloud Storage en la lista
  3. Habilite Admin Read, Data Read y Data Write logs
  4. Use estos registros para monitorear los patrones de acceso y detectar anomalías
Última modificación el 10 de junio de 2026