# Conexão via Kubernetes

O DataDike PAM suporta integração com **Kubernetes** para gerenciamento seguro de acesso a clusters, com auditoria completa de operações em containers.

### Recursos Suportados

* **Detecção Automática:** Descobrir pods e services automaticamente
* **Acesso a Containers:** Exec em containers rodando (equivalente a kubectl exec)
* **Port-Forward:** Redirecionar portas locais para serviços no cluster
* **Log Streaming:** Ver logs de containers em tempo real
* **Auditoria Completa:** Todos os comandos executados em containers são registrados

### Pré-Requisitos

* Cluster Kubernetes cadastrado como ativo no PAM (tipo: Kubernetes)
* **Kubeconfig:** Arquivo de configuração do kubectl configurado no ativo
* **Autenticação:** Certificado, token ou credenciais configuradas
* **Namespace:** Escopo do acesso definido (todos ou específicos)
* Autorização (regra de acesso) vinculando o usuário ao cluster

### Acessar um Cluster Kubernetes

#### Via Interface Web (Recomendado)

1. Faça login no DataDike PAM.
2. Navegue até **Meus Dispositivos** e localize o cluster Kubernetes.
3. Clique no cluster para abrir a sessão.
4. Selecione a conta (credencial) autorizada.
5. Um terminal web será aberto com acesso ao cluster.
6. Execute comandos kubectl normalmente.

#### Via SSH (Terminal)

```
ssh -p 2222 UsuarioPAM@ContaK8s@NomeDoCluster@IPdoPAM
# Após conectar, você terá acesso ao kubectl
kubectl get pods
kubectl get services
kubectl exec -it pod-name -- /bin/bash
```

### Operações Comuns

| Operação          | Comando                                 | Descrição                       |
| ----------------- | --------------------------------------- | ------------------------------- |
| Listar pods       | `kubectl get pods`                      | Ver todos os pods no namespace  |
| Acessar container | `kubectl exec -it pod -- /bin/bash`     | Abrir shell dentro do container |
| Ver logs          | `kubectl logs pod`                      | Ver logs do container           |
| Port-forward      | `kubectl port-forward svc/nome 8080:80` | Redirecionar porta local        |
| Listar services   | `kubectl get svc`                       | Ver serviços no namespace       |
| Descrever pod     | `kubectl describe pod nome`             | Detalhes completos do pod       |

### Auditoria

* Todos os acessos ao cluster são registrados com timestamp e usuário
* Comandos executados dentro de containers são logados
* Sessões podem ser reproduzidas via Auditoria → Sessões
* Filtros de comando podem bloquear operações perigosas (ex: kubectl delete namespace)

### Troubleshooting

* **Conexão recusada:** Verifique se o kubeconfig está correto e o cluster acessível.
* **Permissão negada:** Confirme que a conta K8s tem RBAC adequado no cluster.
* **Pods não listados:** Verifique o namespace configurado na autorização.
