Ce guide explique comment vous authentifier de manière sécurisée à Google Cloud Storage (GCS) et accéder à vos données depuis ClickHouse Cloud.
Introduction
ClickHouse Cloud se connecte à GCS à l’aide de clés HMAC (Hash-based Message Authentication Code) associées à un compte de service Google Cloud. Cette approche permet d’accéder de manière sécurisée à vos buckets GCS sans intégrer directement d’identifiants dans vos requêtes.
Comment cela fonctionne :
- Vous créez un compte de service Google Cloud disposant des autorisations GCS appropriées
- Vous générez des clés HMAC pour ce compte de service
- Vous fournissez ces identifiants HMAC à ClickHouse Cloud
- ClickHouse Cloud utilise ces identifiants pour accéder à vos buckets GCS
Cette approche vous permet de gérer l’ensemble des accès aux buckets GCS via des stratégies IAM appliquées au compte de service, ce qui facilite l’octroi ou la révocation des accès sans avoir à modifier les stratégies propres à chaque bucket.
Prérequis
Pour suivre ce guide, vous aurez besoin de :
- D'un service ClickHouse Cloud actif
- D'un projet Google Cloud avec Cloud Storage activé
- Des autorisations nécessaires pour créer des comptes de service et générer des clés HMAC dans votre projet GCP
Configuration
Créer un compte de service Google Cloud
- Dans Google Cloud Console, accédez à IAM & Admin → Service Accounts

- Dans le menu de gauche, cliquez sur
Service accounts, puis surCreate service account:

Saisissez un nom et une description pour votre compte de service, par exemple :
Service account name: clickhouse-gcs-access (or your preferred name)
Service account description: Service account for ClickHouse Cloud to access GCS bucketsCliquez sur Create and continue

Attribuez au compte de service le rôle Storage Object User :

Ce rôle accorde un accès en lecture et en écriture aux objets GCS
Cliquez sur Continue, puis sur Done
Notez l’adresse e-mail du compte de service :

Accorder au compte de service l’accès au bucket
Vous pouvez accorder l’accès soit au niveau du projet, soit au niveau de chaque bucket.
Option 1 : accorder l’accès à des buckets spécifiques (recommandé)
- Accédez à
Cloud Storage→Buckets - Cliquez sur le bucket auquel vous souhaitez accorder l’accès
- Ouvrez l’onglet
Permissions - Sous "Permissions", cliquez sur
Grant accesspour le principal créé aux étapes précédentes - Dans le champ "New principals", saisissez l’adresse e-mail de votre compte de service
- Sélectionnez le rôle approprié :
- Storage Object User pour un accès en lecture/écriture
- Storage Object Viewer pour un accès en lecture seule
- Cliquez sur
Save - Répétez l’opération pour chaque bucket supplémentaire
Option 2 : accorder l’accès au niveau du projet
- Accédez à
IAM & Admin→IAM - Cliquez sur
Grant access - Saisissez l’adresse e-mail de votre compte de service dans le champ
New principals - Sélectionnez Storage Object User (ou Storage Object Viewer pour un accès en lecture seule)
- Cliquez sur SAVE
Générer des clés HMAC pour le compte de service
Accédez à Cloud Storage → Settings → Interoperability :

Si vous ne voyez pas de section "Access keys", cliquez sur Enable interoperability access
Sous "Access keys for service accounts", cliquez sur Create a key for a service account :

Sélectionnez le compte de service que vous avez créé précédemment (par exemple, clickhouse-gcs-access@your-project.iam.gserviceaccount.com)
Cliquez sur Create key :

La clé HMAC s'affichera. Enregistrez immédiatement l'Access Key et le Secret : vous ne pourrez plus afficher le secret ensuite.
Des exemples de clés sont affichés ci-dessous :
Access Key: GOOG1EF4YBJVNFQ2YGCP3SLV4Y7CMFHW7HPC6EO7RITLJDDQ75639JK56SQVD
Secret: nFy6DFRr4sM9OnV6BG4FtWVPR25JfqpmcdZ6w9nVUtiliser des clés HMAC avec ClickHouse Cloud
Vous pouvez maintenant utiliser les identifiants HMAC pour accéder à GCS depuis ClickHouse Cloud. Pour cela, utilisez la fonction table GCS :
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/epidemiology.csv',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'CSVWithNames'
);Utilisez des caractères génériques pour plusieurs fichiers :
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/*.parquet',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'Parquet'
);Authentification HMAC dans ClickPipes for GCS
ClickPipes utilise des clés HMAC (Hash-based Message Authentication Code) pour s'authentifier auprès de Google Cloud Storage.
Lors de la configuration d'un ClickPipe GCS :
- Sélectionnez
CredentialsdansAuthentication methodlors de la configuration du ClickPipe - Renseignez les identifiants HMAC obtenus aux étapes précédentes

Les clés HMAC doivent être associées à un service account disposant du rôle roles/storage.objectViewer, qui inclut :
storage.objects.list: pour lister les objets du bucketstorage.objects.get: pour récupérer/lire les objets
Bonnes pratiques
Utilisez des comptes de service distincts pour chaque environnement
Créez des comptes de service distincts pour les environnements de développement, de staging et de production. Par exemple :
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
Vous pourrez ainsi révoquer facilement l'accès d'un environnement spécifique sans affecter les autres.
Appliquer le principe du moindre privilège
N’accordez que les permissions strictement nécessaires :
- Utilisez Storage Object Viewer pour un accès en lecture seule
- Accordez l’accès à des buckets spécifiques plutôt qu’à l’ensemble du projet
- Envisagez d’utiliser des conditions au niveau du bucket pour restreindre l’accès à des paths spécifiques
Effectuez régulièrement une rotation des clés HMAC
Définissez un calendrier de rotation des clés :
- Générez de nouvelles clés HMAC
- Mettez à jour les configurations ClickHouse avec les nouvelles clés
- Vérifiez le bon fonctionnement avec les nouvelles clés
- Supprimez les anciennes clés HMAC
Surveiller les accès avec Cloud Audit Logs
Activez et surveillez les Cloud Audit Logs pour Cloud Storage :
- Accédez à IAM & Admin → Audit Logs
- Recherchez Cloud Storage dans la liste
- Activez
Admin Read,Data ReadetData Write logs - Utilisez ces logs pour surveiller les modèles d’accès et détecter les anomalies