Saltar para o conteúdo principal
Versão Next 🚧

Configuração do Ranger

O que é o Apache Ranger?

O Apache Ranger é um framework de segurança centralizado para plataformas de dados.

Em vez de cada serviço gerenciar suas próprias regras de acesso, o Ranger fornece um ponto único onde você define quem pode fazer o quê em qual recurso — e todos os serviços integrados consultam essas políticas em tempo real.

No TDP Kubernetes, o Ranger protege três serviços:

ServiçoO que o Ranger controla
Apache KafkaQuais usuários podem produzir ou consumir em quais tópicos
Apache NiFiAcesso a componentes e flows do NiFi
TrinoAcesso a catálogos, schemas e tabelas em queries SQL
Para saber mais

Consulte Apache Ranger — Conceitos para uma visão completa da ferramenta, seu modelo de plugins e funcionamento.

Como o Ranger funciona na prática

O modelo do Ranger é baseado em plugins: cada serviço integrado instala um plugin que intercepta as requisições de acesso e as valida contra as políticas definidas no Ranger Admin. Esse processo é transparente para o usuário final — ele simplesmente recebe uma permissão concedida ou negada.

O Ranger também registra todas as decisões de acesso em logs de auditoria, armazenados no Apache Solr (incluído como subchart do tdp-ranger).

Isso permite rastrear quem acessou o quê e quando — essencial para conformidade e investigação de incidentes.

O processo de integração

O chart tdp-ranger usa um configJob — um Kubernetes Job que aguarda o Ranger ficar disponível e então executa o registro dos plugins e das políticas padrão.

Esse job é controlado por rangerIntegrations.configJob.enabled e roda automaticamente após a instalação.

Visão geral

PropriedadeValor
Charttdp-ranger
Versão do Ranger2.7.0
Versão do Chart3.0.0
Registry (OCI)oci://registry.tecnisys.com.br/tdp/charts/tdp-ranger

Instalação (OCI)

Terminal input
helm install <release> oci://registry.tecnisys.com.br/tdp/charts/tdp-ranger -n <namespace> --create-namespace

Parâmetros principais

ParâmetroDescriçãoValor por omissão
tdp-ranger.enabledHabilitar o deploy do Rangertrue
tdp-ranger.clusterLabelLabel de clustertdp
tdp-ranger.ranger.adminUserUsuário admin Rangeradmin
tdp-ranger.ranger.adminPasswordSenha admin Rangernão definido
tdp-ranger.ranger.dbUserUsuário do bancoranger
tdp-ranger.ranger.dbPasswordSenha do banco""
tdp-ranger.ranger.existingSecretSecret existente para credenciais do DB<release>-ranger-database
tdp-ranger.ranger.existingSecretPasswordKeyChave da senha no Secretpassword
tdp-ranger.ranger.database.hostHost do banco<postgresql-service>.<namespace>.svc.cluster.local
tdp-ranger.ranger.database.portPorta do banco5432
TDPConfigurations.externalDatabase.enabledHabilitar Job de bootstrap do DB externo (db-create-job)false
TDPConfigurations.externalDatabase.recreateRecriar DB em install/upgradetrue
TDPConfigurations.externalDatabase.externalSecret.releaseNameNome do release PostgreSQLtdp-postgresql
TDPConfigurations.externalDatabase.externalSecret.areaSufixo da área (montagem do nome do Secret)project
rangerIntegrations.configJob.enabledHabilitar job de integraçõestrue
rangerIntegrations.configJob.imageImagem do jobpython:3.11-slim
rangerIntegrations.configJob.rangerReadyTimeoutTimeout de prontidão (s)600
rangerIntegrations.configJob.retryIntervalIntervalo de retry (s)10
rangerIntegrations.kafka.enabledIntegração Kafkafalse
rangerIntegrations.nifi.enabledIntegração NiFifalse
rangerIntegrations.trino.enabledIntegração Trinofalse
tdp-ranger.solr.persistence.enabledPersistência Solrtrue
tdp-ranger.solr.persistence.sizeTamanho do PVC Solr1Gi
tdp-ranger.solr.persistence.storageClassNameStorageClass Solr""

Lista completa: helm show values na versão instalada.

Banco de dados externo

Um Job (db-create-job) cria banco/usuário Ranger e grava credenciais em um Secret. O Job só é criado quando:

  • tdp-ranger.postgres.enabled=false, e
  • TDPConfigurations.externalDatabase.enabled=true

A senha admin do PostgreSQL usada pelo Job vem de um Secret existente cujo nome é <releaseName>-<area> e cuja chave esperada é postgres-password.

Desabilitar explicitamente o Job:

Terminal input
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/tdp-ranger \
-n <namespace> \
--set TDPConfigurations.externalDatabase.enabled=false

Integrações (Kafka, NiFi, Trino)

Configuração em rangerIntegrations. O mesmo esquema pode aparecer em rangerIntegrations.*, tdp-ranger.rangerIntegrations.* e global.rangerIntegrations.* (subcharts / global).

Cada integração suporta, entre outros: serviceName, serviceDisplayName, connection.*, credentials.*, defaultPolicies (lista de objetos de política).

Exemplo habilitando Kafka:

Terminal input
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/tdp-ranger \
-n <namespace> \
--set rangerIntegrations.kafka.enabled=true \
--set rangerIntegrations.kafka.connection.bootstrapServers=<kafka-bootstrap-servers> \
--set rangerIntegrations.kafka.connection.zookeeperConnect=<zookeeper-connect>

Mais exemplos em YAML: Integrações — Ranger.

Acesso

Depende do subchart upstream; serviços costumam ser listados com o instance do release:

Terminal input
kubectl -n <namespace> get svc -l app.kubernetes.io/instance=<release>

Resolução de Problemas

Terminal input
kubectl -n <namespace> get pods
kubectl -n <namespace> get jobs
kubectl -n <namespace> get events --sort-by=.lastTimestamp
kubectl -n <namespace> logs job/<job-name>

Desinstalação

Terminal input
helm uninstall <release> -n <namespace>