Segurança — Hive Metastore
No Hive Metastore, os cuidados de segurança se concentram nas credenciais usadas para PostgreSQL e S3, nos Secrets associados ao deploy e nos contextos de segurança aplicados aos pods e containers.
Configurações de autenticação de usuários, SSO, LDAP, Ranger e políticas de autorização ficam fora do escopo desta página.
Credenciais e Secrets
O Hive Metastore usa credenciais para acessar o PostgreSQL que armazena os metadados e, quando metastore.type: s3, para acessar o endpoint S3/S3A configurado no chart.
Não armazene senhas em arquivos values.yaml versionados. Use arquivos de valores privados, CI seguro ou mecanismo de gestão de Secrets do ambiente.
Credenciais PostgreSQL
Com postgres.enabled: true, o chart usa PostgreSQL interno. Defina a senha do usuário hive em tdp-hive-metastore.postgres.password:
tdp-hive-metastore:
postgres:
enabled: true
database: hive
username: hive
password: "<POSTGRES_PASSWORD>"
Se precisar conectar diretamente ao banco hive, recupere a senha gerada no Secret do release:
kubectl get secret -n <NAMESPACE> <RELEASE_NAME>-hive-database \
-o jsonpath="{.data.password}" | base64 --decode
Com PostgreSQL externo (postgres.enabled: false), os hooks de pré-instalação buscam a senha de administração no Secret associado ao release definido em TDP-Settings.externalDatabase.externalSecret.releaseName. Esse Secret deve conter a chave postgres-password no padrão TDP. Para os parâmetros de configuração do banco externo, consulte Configuração do Hive Metastore.
Credenciais S3
Para usar o warehouse em modo S3, configure metastore.type: s3 e informe as credenciais em tdp-hive-metastore.metastore.s3.accessKey e tdp-hive-metastore.metastore.s3.secretKey:
tdp-hive-metastore:
metastore:
type: s3
s3:
endpoint: "http://<S3_SERVICE>.<NAMESPACE>.svc.cluster.local:9000"
accessKey: "<S3_ACCESS_KEY>"
secretKey: "<S3_SECRET_KEY>"
Proteja esses valores por meio de arquivo de valores privado, CI seguro ou ferramenta de gestão de Secrets adotada no ambiente. Para configurar o modo s3, consulte a página de Configuração do Hive Metastore.
imagePullSecrets
Use tdp-hive-metastore.imagePullSecrets para baixar imagens a partir de registries privados:
tdp-hive-metastore:
imagePullSecrets:
- name: tdp-registry
O Secret referenciado deve existir no namespace em que o Hive Metastore será instalado. Em ambientes que usam política de cluster para injetar imagePullSecrets, alinhe este valor à estratégia adotada no cluster.
podSecurityContext e containerSecurityContext
Configure os contextos de segurança dos workloads e jobs auxiliares em podSecurityContext e containerSecurityContext:
tdp-hive-metastore:
podSecurityContext:
seccompProfile:
type: RuntimeDefault
containerSecurityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
seccompProfile:
type: RuntimeDefault
capabilities:
drop:
- ALL
Esses valores reduzem permissões do container e aplicam seccompProfile: RuntimeDefault. Preserve esses padrões, salvo quando houver exigência explícita do ambiente Kubernetes/OpenShift.
Solução de problemas
| Problema | Causa provável | Solução |
|---|---|---|
| Metastore não sobe (banco externo) | Secret com postgres-password ausente ou nome do release incorreto | Verificar externalSecret.releaseName |
| Falha nos hooks de pr é-instalação | PostgreSQL não acessível ou max_connections insuficiente | Verificar conectividade e SHOW max_connections |
| Autenticação negada | Credenciais incorretas no values | Rever postgres.username e postgres.password |
| Credenciais S3 não funcionam | accessKey, secretKey ou endpoint S3 incorretos | Conferir tdp-hive-metastore.metastore.s3.* e evitar credenciais em valores versionados |
| Pull de imagem falha | Secret de registry ausente ou nome incorreto | Verificar tdp-hive-metastore.imagePullSecrets e se o Secret existe no namespace |
| Pod bloqueado por política de segurança | podSecurityContext ou containerSecurityContext incompatível com a política do cluster | Conferir eventos do Pod e ajustar apenas conforme exigência do ambiente |
Para a lista completa de parâmetros, use helm show values na versão do chart que instalou.