🚨 Cuidado! Se você já possui uma conta na Azure, esse lab pode aumentar o seu custo, não faça isso no seu ambiente produtivo nem da Azure nem do Datadog.
O Datadog é Saas é então você precisa apenas criar uma conta e não precisa de cartão de crédito.
Existe um template pronto para utilizarmos não iremos reinventar a roda vamos usar esse mesmo para analisar os eventos nele.
Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using an ARM template
Primeiro você precisa criar o seu cluster K8S se conectar nele e instalar o agente. Na console do Datadog em Integration > Agent > Kubernetes tem um exemplo de como instalar, nesse link tem o arquivo completo do agent para você habilitar os modulos
O cluster já está criado e o agente já está instalado. Agora iremos fazer o deploy de uma segunda aplicação.
Execute o comando:
kubectl apply -f aks-net.yaml
Vamos ver o ip externo:
kubectl get svc
Você pode utilizar o Postman para gerar eventos, ele tem uma versão na web o link está aqui
Insira o endereço no método get e você verá o resultado.
Na console do Datadog em APM > Trace Explorer podemos ver os eventos
Agora que já fizemos o deploy do nosso serviço podemos configurar um monitor.
Você pode começar por aqui Monitors > Templates
Relacionado a segurança, as flags abaixo precisam estar habilitadas. Dessa forma iremos analisar as atividades do cluster Kubernetes.
securityAgent:
runtime:
enabled: true
compliance:
enabled: true
sbom:
containerImage:
enabled: true
host:
enabled: true
Com essas flags habilitaddas iremos analisar vulnerabilidades no cluster, atividades suspeitas e melhores práticas de segurança.
Vamos criar um arquivo chamado shell-demo.yaml, o documento de referência esta aqui
apiVersion: v1
kind: Pod
metadata:
name: shell-demo
spec:
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
hostNetwork: true
dnsPolicy: Default
Depois de criarmos o arquivo precisamos executa-lo e acessar o pod em modo interativo.
kubectl apply -f shell-demo.yaml
kubectl exec --stdin --tty shell-demo -- /bin/bash
Na console do Datadog em Security > Cloud Security Management > Signals Explorer iremos ver o evento.
Outro comando que podemos executar é curl no IMDS, ainda dentro do container execute o comando:
curl http://169.254.169.254/metadata/identity/oauth2/token?api-version=*
Para termos um pouco mais de emoção podemos utilizar o Nikto (scan de vulnerabilidade). Não execute scans sem autorização é crime!
nikto -h http://meu-ip
Em Security > Application Security > Signal Explorer vamos ver o evento abaixo do nosso scan
A ideia do repositório é compartilhar os códigos para que você possa replicar quando necessário, a Observabilidade e Segurança são importantes para entregar o melhor para nossos clientes.