Esta página não se aplica ao ClickHouse Cloud. O recurso documentado aqui não está disponível nos serviços do ClickHouse Cloud.
Consulte o guia Compatibilidade com Cloud do ClickHouse para mais informações.
A autenticação de usuário com SSL é compatível ao usar as interfaces
https, native, mysql e postgresql.Os nós do ClickHouse precisam ter <verificationMode>strict</verificationMode> definido para autenticação segura (embora relaxed funcione para fins de teste).Se você usar o AWS NLB com a interface MySQL, será necessário solicitar ao suporte da AWS que habilite a opção não documentada:
Gostaria de poder configurar o protocolo proxy v2 do nosso NLB como abaixo proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack.
1
Criar certificados SSL de usuário
Este exemplo usa certificados autoassinados com uma CA autoassinada. Para ambientes de produção, crie uma CSR e envie-a para sua equipe de PKI ou para o provedor de certificados a fim de obter um certificado adequado.
- Gere uma Certificate Signing Request (CSR) e uma chave. O formato básico é o seguinte:
Neste exemplo, usaremos isto para o domínio e o usuário que serão usados neste ambiente de exemplo:
O CN é arbitrário, e qualquer string pode ser usada como identificador do certificado. Ele é usado ao criar o usuário nas etapas a seguir.
- Gere e assine o novo certificado de usuário que será usado para autenticação. O formato básico é o seguinte:
Neste exemplo, usaremos isto para o domínio e o usuário que serão usados neste ambiente de exemplo:
2
Criar um usuário SQL e conceder permissões
Para obter detalhes sobre como habilitar usuários SQL e definir funções, consulte o guia Definindo usuários e funções SQL.
-
Crie um usuário SQL configurado para usar autenticação por certificado:
-
Conceda privilégios ao novo usuário com certificado:
Neste exercício, o usuário recebe privilégios administrativos completos apenas para fins de demonstração. Consulte a documentação de RBAC do ClickHouse para ver as configurações de permissões.
Recomendamos usar SQL para definir usuários e funções. No entanto, se você estiver definindo usuários e funções em arquivos de configuração, o usuário ficará assim:
3
Verificação
- Copie o certificado de usuário, a chave do usuário e o certificado da CA para um nó remoto.
-
Configure o OpenSSL na configuração do cliente do ClickHouse com o certificado e os caminhos.
-
Execute
clickhouse-client.
Observe que a senha fornecida ao clickhouse-client é ignorada quando um certificado é especificado na configuração.
4
Teste de HTTP
- Copie o certificado de usuário, a chave do usuário e o certificado da CA para um nó remoto.
-
Use
curlpara testar um comando SQL de exemplo. O formato básico é o seguinte:Por exemplo:A saída será semelhante à seguinte:
Observe que nenhuma senha foi especificada; o certificado é usado no lugar da senha e é assim que o ClickHouse autenticará o usuário.
Resumo
clickhouse-client ou qualquer cliente que ofereça suporte à interface https e no qual seja possível definir cabeçalhos HTTP. O certificado e a chave gerados devem ser mantidos em sigilo e com acesso limitado, já que o certificado é usado para autenticar e autorizar o usuário a realizar operações no banco de dados do ClickHouse. Trate o certificado e a chave como se fossem senhas.