Saltar para o conteúdo principal
Versão 3.0

Segurança — ClickHouse

ChartVersion3.0.1TypeapplicationAppVersion25.8.11.66
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+

Esta página concentra os aspectos de segurança e controle de acesso do tdp-clickhouse: senhas, usuário default, usuário TDP, perfis adicionais e autenticação LDAP.

Para configurações de integração com S3/MinIO e políticas de armazenamento, consulte Integrações — ClickHouse.

Pré-requisitos

  • Servidor LDAP acessível a partir do cluster Kubernetes, quando LDAP for usado.
  • Bloco tdp-clickhouse.clickhouse.extraConfig preparado com <ldap_servers> e <user_directories>, quando LDAP for habilitado.
  • Planejamento das roles e grants do ClickHouse para usuários autenticados via LDAP.

Gestão de senhas locais

Usuário default

Configure tdp-clickhouse.clickhouse.defaultUser.password apenas quando precisar definir a senha do usuário default. Se não houver essa necessidade, mantenha o valor vazio.

tdp-clickhouse:
clickhouse:
defaultUser:
password: "<PASSWORD>"

Usuário TDP (opcional)

Quando tdpUser.enabled: true, o chart cria um Secret (tdp-clickhouse-tdp-user) e executa um Job pós-instalação/atualização para aplicar grants. O Job aguarda os endpoints do serviço ClickHouse e executa os comandos em um pod backend disponível.

tdp-clickhouse:
clickhouse:
tdpUser:
enabled: true
password: "<PASSWORD>"

Perfis e usuários adicionais (extraUsers)

Use tdp-clickhouse.clickhouse.extraUsers para configuração XML adicional de usuários e perfis do ClickHouse. Nesta página, o campo aparece no contexto de controle de acesso de rede, conforme o exemplo a seguir.

Controle de acesso de rede

Por padrão, o ClickHouse aceita conexões apenas de 127.0.0.1/::1. Para permitir que outras redes (como o Ingress Controller ou outros pods) acessem o ClickHouse, configure o bloco <networks> em extraUsers:

tdp-clickhouse:
clickhouse:
extraUsers: |
<yandex>
<profiles>
<default>
<query_cache_system_table_handling>ignore</query_cache_system_table_handling>
</default>
</profiles>
<users>
<default>
<networks>
<ip>::/0</ip>
</networks>
</default>
</users>
</yandex>

LDAP

O chart suporta autenticação LDAP via extraConfig (XML nativo do ClickHouse). Por padrão, o LDAP fica desabilitado.

Configuração via extraConfig

Ative o LDAP descomentando e preenchendo o bloco extraConfig (e, opcionalmente, ldapRoleInit) em um arquivo de valores separado:

tdp-clickhouse:
clickhouse:
extraConfig: |
<yandex>
<user_directories>
<ldap>
<server>tdp_ldap</server>
<roles>
<tdp_ldap_role />
</roles>
</ldap>
<local_directory>
<path>/var/lib/clickhouse/access/</path>
</local_directory>
<users_xml>
<path>users.xml</path>
</users_xml>
</user_directories>
<ldap_servers>
<tdp_ldap>
<host>ldap.example.com</host>
<port>389</port>
<auth_dn_prefix>uid=</auth_dn_prefix>
<auth_dn_suffix>,cn=users,cn=accounts,dc=example,dc=com</auth_dn_suffix>
<base_dn>cn=users,cn=accounts,dc=example,dc=com</base_dn>
<user_filter>(uid={user})</user_filter>
<enable_tls>0</enable_tls>
</tdp_ldap>
</ldap_servers>
</yandex>

Ajuste host, port, auth_dn_prefix, auth_dn_suffix, base_dn e user_filter ao seu ambiente. O método auth_dn_prefix/auth_dn_suffix constrói o DN de bind diretamente do UID do usuário, sem necessidade de conta de serviço.

Atenção ao TLS do LDAP

No exemplo acima, enable_tls: 0 representa apenas um ponto de partida. Se o seu servidor LDAP suportar TLS, prefira ativá-lo em produção e trate certificados conforme a política da sua organização.

Criação automática da role LDAP (ldapRoleInit)

O chart pode criar a role LDAP automaticamente quando ldapRoleInit.enabled: true. Bases de dados e GRANTs continuam a ser geridos manualmente após o deploy:

-- Opcional se ldapRoleInit.enabled=true
CREATE ROLE IF NOT EXISTS tdp_ldap_role;

-- Grants opcionais: aplique apenas o acesso necessário
-- GRANT ALL ON tdp.* TO tdp_ldap_role;
-- GRANT SELECT ON default.* TO tdp_ldap_role;
-- GRANT SELECT ON system.* TO tdp_ldap_role;

Parâmetros LDAP

ParâmetroDescrição
tdp-clickhouse.clickhouse.extraConfigXML com <ldap_servers> e <user_directories>
tdp-clickhouse.clickhouse.ldapRoleInit.enabledCria a role LDAP automaticamente no pós-install
Arquivo de valores separado

Coloque blocos LDAP num arquivo separado, por exemplo values-ldap.yaml, para evitar expor configurações sensíveis no repositório principal.