Segurança — Spark
O chart tdp-spark acessa armazenamento S3/MinIO via protocolo S3A. As credenciais de acesso são configuradas como placeholders no values.yaml e devem ser fornecidas através de arquivos de valores privados ou mecanismos de gestão de Secrets do seu ambiente.
Credenciais S3/S3A
As credenciais de acesso ao S3/MinIO são injetadas via spark.sparkConf ou hadoopConfig:
spark:
sparkConf:
"spark.hadoop.fs.s3a.access.key": "<ACCESS_KEY>"
"spark.hadoop.fs.s3a.secret.key": "<SECRET_KEY>"
"spark.hadoop.fs.s3a.endpoint": "http://<s3-endpoint>:<porta>"
"spark.hadoop.fs.s3a.path.style.access": "true"
"spark.hadoop.fs.s3a.connection.ssl.enabled": "false"
Alternativamente, as mesmas propriedades podem ser definidas em hadoopConfig (renderizado como core-site.xml):
hadoopConfig:
"fs.s3a.access.key": "<ACCESS_KEY>"
"fs.s3a.secret.key": "<SECRET_KEY>"
"fs.s3a.endpoint": "http://<s3-endpoint>:<porta>"
"fs.s3a.path.style.access": "true"
Ou via customSparkConfig.properties (renderizado como spark-defaults.conf):
customSparkConfig:
properties: |
spark.hadoop.fs.s3a.access.key=<ACCESS_KEY>
spark.hadoop.fs.s3a.secret.key=<SECRET_KEY>
spark.hadoop.fs.s3a.endpoint=http://<s3-endpoint>:<porta>
spark.hadoop.fs.s3a.path.style.access=true
Integração com Ozone (TDP)
Para o Ozone instalado junto ao TDP, o endpoint interno do S3 Gateway segue o padrão:
http://<release>-s3g-rest.<namespace>.svc.cluster.local:9878
As credenciais devem corresponder ao Secret ozone-s3-credentials configurado no Ozone. Consulte Segurança — Apache Ozone para detalhes sobre o Secret.
Integração com Jupyter e Airflow
O chart renderiza arquivos de configuração específicos para integração com outros serviços:
integration.jupyter.sparkConfig→spark-defaults.confpara o ambiente JupyterLabintegration.airflow.sparkConfig→ configurações padrão para submissão via Airflow
Essas configurações também herdam as propriedades S3A definidas acima quando presentes.
Boas práticas
| Aspecto | Recomendação |
|---|---|
| Credenciais | Não versionar access.key e secret.key em repositório Git |
| Separação por ambiente | Usar arquivos de valores distintos para dev e produção |
| Rotação | Atualizar o values e fazer helm upgrade para aplicar novas credenciais |
Resolução de Problemas
| Problema | Causa provável | Solução |
|---|---|---|
| Jobs Spark falham com erro de acesso S3 | Credenciais ausentes ou endpoint incorreto | Verificar spark.hadoop.fs.s3a.* nos valores aplicados |
Connection refused ao S3 | Endereço do serviço S3 incorreto | Verificar nome e namespace do serviço Ozone no cluster |
AccessDeniedException | Credenciais sem permissão no bucket | Rever permissões no MinIO/Ozone para o usuário configurado |
Para a lista completa de parâmetros, use helm show values na versão do chart que instalou.