Introdução
- 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
Pré-requisitos
- 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
1
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:
Create and continueConceda à conta de serviço o papel Storage Object User:Esse papel fornece acesso de leitura e gravação aos objetos do GCSClique em Continue e, em seguida, em DoneAnote o endereço de e-mail da conta de serviço:2
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
3
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 accessEm “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:Use 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: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
No momento, a autenticação com conta de serviço não é compatível - você deve usar chaves HMAC
A URL do bucket do GCS deve usar o formato:
https://storage.googleapis.com/<bucket>/<path> (não gs://)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
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
Aplique o princípio do menor privilégio
- 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
- 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
- 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