Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Accéder aux données GCS en toute sécurité

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 :

  1. Vous créez un compte de service Google Cloud disposant des autorisations GCS appropriées
  2. Vous générez des clés HMAC pour ce compte de service
  3. Vous fournissez ces identifiants HMAC à ClickHouse Cloud
  4. 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

  1. Dans Google Cloud Console, accédez à IAM & Admin → Service Accounts
  1. Dans le menu de gauche, cliquez sur Service accounts, puis sur Create 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 buckets

Cliquez 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é)

  1. Accédez à Cloud StorageBuckets
  2. Cliquez sur le bucket auquel vous souhaitez accorder l’accès
  3. Ouvrez l’onglet Permissions
  4. Sous "Permissions", cliquez sur Grant access pour le principal créé aux étapes précédentes
  5. Dans le champ "New principals", saisissez l’adresse e-mail de votre compte de service
  6. 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
  1. Cliquez sur Save
  2. Répétez l’opération pour chaque bucket supplémentaire

Option 2 : accorder l’accès au niveau du projet

  1. Accédez à IAM & AdminIAM
  2. Cliquez sur Grant access
  3. Saisissez l’adresse e-mail de votre compte de service dans le champ New principals
  4. Sélectionnez Storage Object User (ou Storage Object Viewer pour un accès en lecture seule)
  5. Cliquez sur SAVE

Générer des clés HMAC pour le compte de service

Accédez à Cloud StorageSettingsInteroperability :

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: nFy6DFRr4sM9OnV6BG4FtWVPR25JfqpmcdZ6w9nV

Utiliser 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 :

  1. Sélectionnez Credentials dans Authentication method lors de la configuration du ClickPipe
  2. 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 bucket
  • storage.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.com
  • clickhouse-gcs-staging@project.iam.gserviceaccount.com
  • clickhouse-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 :

  1. Accédez à IAM & Admin → Audit Logs
  2. Recherchez Cloud Storage dans la liste
  3. Activez Admin Read, Data Read et Data Write logs
  4. Utilisez ces logs pour surveiller les modèles d’accès et détecter les anomalies
Navigation