Documentação atualizada para compatibilidade com a ultima versão do PAM (5.1.0)
For the complete documentation index, see llms.txt. This page is also available as Markdown.

A2A — Acesso a Credenciais por Aplicação

Guia A2A do DataDike PAM — como ferramentas e sistemas (scanners, CI/CD e contêineres) buscam credenciais no cofre de forma segura e auditada, sem armazenar a senha fora do cofre.

Este guia mostra como permitir que ferramentas e sistemas (em vez de pessoas) buscem credenciais no cofre do DataDike PAM de forma segura e auditada — sem nunca armazenar a senha fora do cofre.

Casos de uso típicos:

  • Scanners de vulnerabilidade (Tenable, Qualys) que precisam de credencial privilegiada para o authenticated scan.

  • Automação / CI / DevOps (pipelines, scripts) que precisam de uma senha na hora de executar.

  • Workloads em contêiner (Kubernetes, OpenShift, Rancher) que consomem segredos sem tê-los embutidos na imagem.

A funcionalidade fica no menu A2A do console: Aplicações e Kubernetes.


1. Conceitos

Conceito
O que é

Aplicação

A identidade da ferramenta/sistema (um "AppID"). Tem um token e regras de acesso.

Token

A chave secreta da aplicação. É exibido uma única vez ao criar/rotacionar — copie e guarde com segurança.

Escopo

Quais contas a aplicação pode buscar: todas ou uma lista de ativos específicos.

IPs de origem

Lista de IPs/redes (CIDR) de onde a aplicação pode chamar a API. De outros IPs, é recusada.

Cluster Kubernetes

(Para contêineres) um cluster cadastrado que autentica seus pods.

Role (Kubernetes)

Liga namespace + serviceaccount de um cluster a uma Aplicação.

Pré-requisito: o acesso ao PAM deve estar em HTTPS (o token trafega no cabeçalho da requisição). Use https://<endereço-do-seu-pam> em tudo abaixo.

Ao longo do guia, troque <PAM> pelo endereço do seu PAM (ex.: https://pam.suaempresa.com.br).


2. Criar uma Aplicação (token)

  1. Console → A2A → Aplicações → botão Nova aplicação.

  2. Preencha:

    • Nome: identifique o consumidor (ex.: tenable-scanner-prod).

    • Escopo:

      • Ligue Todas as contas para acesso amplo, ou

      • Deixe desligado e liste em Ativos permitidos os nomes ou endereços dos ativos que essa aplicação pode acessar (recomendado).

    • IPs de origem permitidos (recomendado): informe o(s) IP(s) da ferramenta (ex.: 10.20.0.15/32). Vazio = qualquer IP.

    • Expira em (opcional): data de validade.

  3. Confirmar. Um modal mostra o token uma única vez. Clique em Copiar e guarde-o no lugar seguro da ferramenta que vai consumi-lo.

Perdeu o token? Não dá para vê-lo de novo. Use a ação Regerar token na aplicação (isso invalida o token anterior).

Na aba Conexão da aplicação você encontra, prontas para copiar, as URLs e o cabeçalho a usar.


3. Usar o token (genérico)

Há duas APIs equivalentes. Use a que sua ferramenta suportar.

3.1 API compatível com HashiCorp Vault (KV v2) — recomendada p/ Tenable/Qualys

Resposta:

Exemplo:

  • datadike é o "mount" (pode usar esse valor).

  • <ativo> é o nome ou o endereço/IP do ativo cadastrado no PAM.

  • <usuario> é o nome da conta naquele ativo.

3.2 API nativa — simples para scripts

3.3 Códigos de resposta

Código
Significado

200

OK, credencial retornada

401 / 403

Token inválido/inativo, IP não permitido, ou ativo fora do escopo

404

Ativo ou conta não encontrados no PAM


4. Configurar no Tenable

Tenable (Nessus / Vulnerability Management) → Credentials → escolha o tipo (SSH, Windows, etc.) → em Authentication method selecione HashiCorp Vault:

Campo
Valor

Vault host / URL

<PAM>/api/v1/appsecrets/vault

Port

443

Authentication type

Token

Token

(o token da sua Aplicação)

KV version

v2

Secret engine mount

datadike

Path / Secret name

<ativo>/<usuario>

Username key / source

username

Password key / source

password

A versão do Tenable monta a chamada …/v1/<mount>/data/<path> automaticamente. Se o campo de URL pedir incluir ou não o /v1, lembre que a base do PAM termina em /appsecrets/vault e o conector acrescenta /v1/....

Faça um teste de credencial no Tenable para validar antes de agendar o scan.


5. Configurar no Qualys

Qualys VMDR → Authentication VaultsNew → HashiCorp Vault:

Campo
Valor

Vault URL

<PAM>/api/v1/appsecrets/vault

Authentication

Token

Token

(o token da sua Aplicação)

Secret Engine

KV v2

Mount point

datadike

Depois, no Authentication Record (Unix/Windows), aponte o segredo para o caminho <ativo>/<usuario> e mapeie as chaves username / password.


6. Kubernetes / OpenShift / Rancher

Aqui os pods se autenticam pela própria identidade (ServiceAccount), sem token fixo embutido na imagem. O PAM se comporta como um HashiCorp Vault, então as ferramentas oficiais (Vault Agent Injector e Secrets Store CSI Driver) funcionam.

Passo 1 — Cadastrar o cluster no PAM

Console → A2A → KubernetesNovo cluster. Escolha o modo:

  • TokenReview (online): o PAM consulta o cluster para validar o pod. Informe:

    • Kubernetes host (API server, ex.: https://10.0.0.1:6443)

    • CA do cluster (PEM)

    • Token reviewer JWT: o token de um ServiceAccount com a permissão system:auth-delegator.

  • JWKS (offline): o PAM valida a assinatura do token sem falar com o cluster. Informe:

    • Issuer (OIDC do cluster)

    • JWKS JSON: a saída de kubectl get --raw /openid/v1/jwks

Passo 2 — Criar um Role

Selecione o cluster na lista → painel da direita → aba RolesAdicionar role:

  • Nome (ex.: scanner) — é o role usado no login.

  • Aplicação: a Aplicação (do item 2) cujo escopo/credenciais o pod poderá usar.

  • Namespaces permitidos e ServiceAccounts permitidos (use * para liberar todos — não recomendado em produção).

  • TTL do token: validade do token temporário emitido a cada login (ex.: 900s).

Passo 3a — Vault Agent Injector (injeta o segredo no pod)

Instale o injetor oficial apontando o endereço do "Vault" para o PAM (<PAM>/api/v1/appsecrets/vault) e anote o seu deployment:

O segredo aparece em /vault/secrets/db dentro do pod.

Passo 3b — Secrets Store CSI Driver (segredo como arquivo em volume)

Crie um SecretProviderClass (provider vault) com vaultAddress: <PAM>/api/v1/appsecrets/vault, roleName: scanner e os objetos apontando para datadike/data/<ativo>/<usuario>.

Manifests de exemplo prontos: pasta k8s-secrets/ do pacote de implantação (example-deployment-agent.yaml, secretproviderclass-csi.yaml, vault-agent-injector-values.yaml).

OpenShift e Rancher usam exatamente o mesmo procedimento (são Kubernetes).


7. Docker / scripts / pipelines de CI

Use o helper portátil (k8s-secrets/datadike-fetch.sh) ou um curl direto:

Passe o token como variável de ambiente/segredo do seu CI, nunca commitado.


8. Rotação e revogação

  • Rotacionar token (Aplicação): ação Regerar token → gera um novo e invalida o anterior na hora. Atualize a ferramenta com o novo token.

  • Revogar acesso: Desativar a Aplicação (ou definir Expira em) corta o acesso imediatamente. Reative quando quiser.

  • Trocar a senha real do ativo: use a função de troca de senha do PAM; na próxima busca, a aplicação já recebe a senha nova (sempre lê o valor vigente no cofre).

  • Kubernetes: os tokens dos pods são temporários (expiram pelo TTL do role). Desativar o role ou a Aplicação corta o acesso.


9. Auditoria

Toda recuperação de credencial é registrada no log de operações do PAM (qual aplicação, qual conta, IP de origem e horário). Acesse em Auditoria → Logs de operação. Na página da Aplicação, a aba Auditoria leva direto ao log.


10. Solução de problemas

Sintoma
Provável causa
O que fazer

401 / 403 ao buscar

Token errado/expirado, IP não permitido, ou ativo fora do escopo

Confira o token; verifique IPs de origem e Escopo na Aplicação

404

Nome/endereço do ativo ou usuário não batem com o cadastro

Use exatamente o nome ou endereço do ativo e o usuário da conta como estão no PAM

Conector Tenable/Qualys não conecta

URL base incorreta ou sem HTTPS

Use <PAM>/api/v1/appsecrets/vault; garanta certificado válido/confiável

Pod K8s não autentica

Role não casa namespace/serviceaccount, ou modo de validação mal configurado

Revise o Role (namespaces/SAs) e os dados do Cluster

Health para teste

GET <PAM>/api/v1/appsecrets/vault/v1/sys/health deve responder {"initialized":true,...}


11. API de administração (provisionamento e automação)

Além da busca de credenciais por aplicações (seções anteriores), o DataDike PAM expõe uma API REST de administração para automatizar o provisionamento e a gestão do próprio PAM, permitindo operações CRUD (criar, consultar, atualizar e remover) sobre os principais objetos:

Objeto
Operações

Usuários

criação, consulta, atualização, ativação/desativação e remoção de usuários do PAM

Contas / credenciais

cadastro, consulta, atualização e exclusão de contas privilegiadas (logins) e seus segredos

Grupos e perfis

criação e manutenção de grupos, associação/desassociação de usuários e atribuição de perfis

Ativos

cadastro, atualização e remoção de ativos (assets) e seus protocolos

Características:

  • Autenticação por token sobre HTTPS, com escopo e permissões controlados por RBAC.

  • Auditoria: toda operação administrativa via API é registrada na trilha de auditoria (autor, objeto, ação e horário).

  • Casos de uso: onboarding/offboarding em massa, sincronização com ITSM/IGA e integração com pipelines de automação.

A referência detalhada de endpoints (rotas, parâmetros e exemplos) é disponibilizada com o produto e junto ao seu Partner DataDike.


12. Perguntas frequentes

A senha fica armazenada na ferramenta (Tenable/Qualys)? Não. A ferramenta busca a senha no PAM no momento do uso. O cofre continua sendo a única fonte.

Preciso instalar algo no meu ambiente? Para API/scanners, não — basta configurar o conector. Para Kubernetes, usa-se o Vault Agent Injector ou o CSI Driver oficiais (componentes padrão do ecossistema).

Posso restringir uma aplicação a poucos ativos? Sim — desligue "Todas as contas" e liste os Ativos permitidos. Combine com a allowlist de IPs de origem para defesa em camadas.

O token expira sozinho? Só se você definir Expira em. Caso contrário vale até ser rotacionado ou a Aplicação ser desativada. (No Kubernetes, os tokens de pod sempre têm TTL.)

Vários scanners/sistemas podem usar a mesma funcionalidade? Sim. Crie uma Aplicação por sistema — assim cada um tem token, escopo, IPs e auditoria próprios.

Atualizado

Isto foi útil?