Este guia mostra como se autenticar com segurança no Google Cloud Storage (GCS) e acessar seus dados no ClickHouse Cloud.
Introdução
O ClickHouse Cloud se conecta ao GCS usando chaves HMAC (Hash-based Message Authentication Code) associadas a uma conta de serviço do Google Cloud. Essa abordagem fornece acesso seguro aos seus buckets do GCS sem incorporar credenciais diretamente nas consultas.
Como funciona:
- Você cria uma conta de serviço do Google Cloud com as permissões apropriadas no GCS
- Você gera chaves HMAC para essa conta de serviço
- Você fornece essas credenciais HMAC ao ClickHouse Cloud
- O ClickHouse Cloud usa essas credenciais para acessar seus buckets do GCS
Essa abordagem permite gerenciar todo o acesso aos buckets do GCS por meio de políticas do IAM na conta de serviço, facilitando conceder ou revogar acesso sem modificar políticas individuais de bucket.
Pré-requisitos
Para seguir este guia, você precisará de:
- Um serviço do ClickHouse Cloud ativo
- Um projeto do Google Cloud com o Cloud Storage ativado
- Permissões para criar contas de serviço e gerar chaves HMAC no seu projeto do GCP
Setup
Criar uma conta de serviço do Google Cloud
- No Google Cloud Console, navegue até IAM & Admin → Service Accounts

- No menu à esquerda, clique em
Service accountse depois emCreate service account:

Insira um nome e uma descrição para sua conta de serviço, por exemplo:
Service account name: clickhouse-gcs-access (or your preferred name)
Service account description: Service account for ClickHouse Cloud to access GCS bucketsClique em Create and continue

Conceda à conta de serviço o papel Storage Object User:

Esse papel fornece acesso de leitura e gravação aos objetos do GCS
Clique em Continue e, em seguida, em Done
Anote o endereço de e-mail da conta de serviço:

Conceda à conta de serviço acesso ao bucket
Você pode conceder acesso no nível do projeto ou no nível de buckets individuais.
Opção 1: Conceder acesso a buckets específicos (recomendado)
- Navegue até
Cloud Storage→Buckets - Clique no bucket ao qual você deseja conceder acesso
- Vá para a guia
Permissions - Em "Permissions", clique em
Grant accesspara o principal criado nas etapas anteriores - No campo "New principals", insira o e-mail da sua conta de serviço
- Selecione a Role apropriada:
- Storage Object User para acesso de leitura/gravação
- Storage Object Viewer para acesso somente leitura
- Clique em
Save - Repita o processo para quaisquer buckets adicionais
Opção 2: Conceder acesso no nível do projeto
- Navegue até
IAM & Admin→IAM - Clique em
Grant access - Insira o e-mail da sua conta de serviço no campo
New principals - Selecione Storage Object User (ou Storage Object Viewer para acesso somente leitura)
- Clique em SAVE
Gere chaves HMAC para a conta de serviço
Navegue até Cloud Storage → Settings → Interoperability:

Se você não vir uma seção "Access keys", clique em Enable interoperability access
Em "Access keys for service accounts", clique em Create a key for a service account:

Selecione a conta de serviço que você criou anteriormente (por exemplo, clickhouse-gcs-access@your-project.iam.gserviceaccount.com)
Clique em Create key:

A chave HMAC será exibida. Salve imediatamente a Access Key e a Secret — você não poderá visualizar a secret novamente.
Exemplos de chaves são mostrados abaixo:
Access Key: GOOG1EF4YBJVNFQ2YGCP3SLV4Y7CMFHW7HPC6EO7RITLJDDQ75639JK56SQVD
Secret: nFy6DFRr4sM9OnV6BG4FtWVPR25JfqpmcdZ6w9nVUse chaves HMAC com ClickHouse Cloud
Agora você pode usar as credenciais HMAC para acessar o GCS no ClickHouse Cloud. Para isso, use a função de tabela do GCS:
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/epidemiology.csv',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'CSVWithNames'
);Use curingas para vários arquivos:
SELECT *
FROM gcs(
'https://storage.googleapis.com/clickhouse-docs-example-bucket/*.parquet',
'GOOG1E...YOUR_ACCESS_KEY',
'YOUR_SECRET_KEY',
'Parquet'
);Autenticação HMAC no ClickPipes para GCS
O ClickPipes usa chaves HMAC (Hash-based Message Authentication Code) para se autenticar no Google Cloud Storage.
Ao configurar um ClickPipe do GCS:
- Selecione
CredentialsemAuthentication methoddurante a configuração do ClickPipe - Informe as credenciais HMAC obtidas nas etapas anteriores

As chaves HMAC devem estar associadas a uma conta de serviço que tenha o papel roles/storage.objectViewer, que inclui:
storage.objects.list: para listar objetos no bucketstorage.objects.get: para recuperar/ler objetos
Boas práticas
Use contas de serviço separadas para ambientes diferentes
Crie contas de serviço separadas para os ambientes de desenvolvimento, staging e produção. Por exemplo:
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
Isso permite revogar com facilidade o acesso de um ambiente específico sem afetar os demais.
Aplique o princípio do menor privilégio
Conceda apenas as permissões mínimas necessárias:
- Use Storage Object Viewer para acesso somente leitura
- Conceda acesso a buckets específicos em vez de ao projeto inteiro
- Considere usar condições no nível do bucket para restringir o acesso a caminhos específicos
Faça a rotação regular das chaves HMAC
Implemente um cronograma de rotação de chaves:
- Gere novas chaves HMAC
- Atualize as configurações do ClickHouse com as novas chaves
- Verifique o funcionamento com as novas chaves
- Exclua as chaves HMAC antigas
Monitore o acesso com os Cloud Audit Logs
Ative e monitore os Cloud Audit Logs do Cloud Storage:
- Acesse IAM & Admin → Audit Logs
- Encontre Cloud Storage na lista
- Ative
Admin Read,Data ReadeData Write logs - Use esses logs para monitorar padrões de acesso e detectar anomalias