Segurança — Delta Lake
O chart tdp-deltalake executa jobs de manutenção (VACUUM, OPTIMIZE) no armazenamento S3/MinIO. As credenciais de acesso ao bucket são fornecidas via Secret Kubernetes s3-credentials, lido pelos CronJobs via env.secretKeyRef.
Secret de credenciais S3
Crie o Secret no namespace antes do deploy:
kubectl -n <namespace> create secret generic s3-credentials \
--from-literal=access-key="<ACCESS_KEY>" \
--from-literal=secret-key="<SECRET_KEY>"
| Chave | Descrição |
|---|---|
access-key | Chave de acesso ao bucket S3/MinIO |
secret-key | Chave secreta para autenticação S3 |
O nome do Secret deve ser exatamente s3-credentials. Os CronJobs do chart referenciam esse nome diretamente.
Configuração do endpoint S3
O endpoint do S3/MinIO é configurado no bloco maintenance.spark.config:
maintenance:
spark:
config:
"spark.hadoop.fs.s3a.endpoint": "http://<s3-endpoint>:<porta>"
"spark.hadoop.fs.s3a.path.style.access": "true"
Substitua <s3-endpoint> pelo endereço interno do serviço S3 no cluster. Para o Ozone instalado junto ao TDP, o endereço padrão segue o padrão:
http://<release>-s3g-rest.<namespace>.svc.cluster.local:9878
Boas práticas
| Aspecto | Recomendação |
|---|---|
| Credenciais | Não versionar access-key e secret-key em repositório Git |
| Rotação | Recriar o Secret e aguardar o próximo ciclo de execução dos CronJobs |
| Acesso mínimo | Configurar credenciais com permissão apenas nos buckets usados pelos jobs de manutenção |
Resolução de Problemas
| Problema | Causa provável | Solução |
|---|---|---|
| CronJob falha com erro de autenticação | Secret ausente ou chaves com nome incorreto | Verificar Secret s3-credentials no namespace |
| Endpoint S3 inacessível | URL ou porta incorretos | Testar conectividade com kubectl exec dentro do namespace |
| Permissão negada no bucket | Credenciais sem acesso ao path configurado | Revisar permissões no MinIO/Ozone |
Para a lista completa de parâmetros, use helm show values na versão do chart que instalou.