Saltar para o conteúdo principal
Versão 3.0

Segurança — Hive Metastore

ChartVersion3.0.1TypeapplicationAppVersion4.0.0
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Suporte a recursosS3suportadoExternal DBsuportado

No Hive Metastore, os cuidados de segurança concentram-se 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 aceder à base de dados PostgreSQL que armazena os metadados e, quando metastore.type: s3, para aceder ao endpoint S3/S3A configurado no chart.

Não armazene palavras-passe em ficheiros values.yaml versionados. Use ficheiros 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 palavra-passe 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 de conectar directamente à base de dados hive, recupere a palavra-passe 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 procuram a palavra-passe 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 da base de dados externa, 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 estes valores por meio de ficheiro 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

ProblemaCausa provávelSolução
Metastore não inicia (base de dados externa)Secret com postgres-password ausente ou nome do release incorrectoVerificar externalSecret.releaseName
Falha nos hooks de pré-instalaçãoPostgreSQL não acessível ou max_connections insuficienteVerificar conectividade e SHOW max_connections
Autenticação negadaCredenciais incorrectas nos valuesRever postgres.username e postgres.password
Credenciais S3 não funcionamaccessKey, secretKey ou endpoint S3 incorrectosConferir tdp-hive-metastore.metastore.s3.* e evitar credenciais em valores versionados
Pull de imagem falhaSecret de registry ausente ou nome incorrectoVerificar tdp-hive-metastore.imagePullSecrets e se o Secret existe no namespace
Pod bloqueado por política de segurançapodSecurityContext ou containerSecurityContext incompatível com a política do clusterConferir eventos do Pod e ajustar apenas conforme exigência do ambiente

Para a lista completa de parâmetros, utilize helm show values na versão do chart que instalou.