Introduction
- 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
Prérequis
- 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
1
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:
Create and continueAttribuez au compte de service le rôle Storage Object User :Ce rôle accorde un accès en lecture et en écriture aux objets GCSCliquez sur Continue, puis sur DoneNotez l’adresse e-mail du compte de service :2
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
3
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 accessSous “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 :ImportantConservez ces identifiants en lieu sûr.
Le secret ne pourra plus être récupéré une fois cet écran fermé.
Vous devrez générer de nouvelles clés si vous perdez le secret.
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 :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
L’authentification par service account n’est actuellement pas prise en charge : vous devez utiliser des clés HMAC
L’URL du bucket GCS doit respecter le format suivant :
https://storage.googleapis.com/<bucket>/<path> (et non gs://)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
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
Appliquer le principe du moindre privilège
- 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
- 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
- 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