Share
Embed
Terraform com IA: Explorando Práticas de DevSecOps com Prompt Engineering no GitHub Copilot Chat
Em um cenário global conectado com IA, a segurança está cada vez mais importante no processo de Infraestrutura como Código (IaC), a Inteligência Artificial e DevSecOps estão transformando a forma como times de plataforma constroem ambientes seguros e escaláveis. Nesta talk, vou explorar como o GitHub Copilot Chat pode ser um verdadeiro agente no seu fluxo com Terraform
Amaury Borges Souza
December 10, 2025
Transcript
43 slides
-
© HASHICORP 2 Hashicorp Ambassador Hashicorp User Group Leader he/him/his
@amaurybsouza Amaury Borges Souza -
© HASHICORP 3 Terraform com IA Explorando Práticas de DevSecOps
com Prompt Engineering no GitHub Copilot. -
© HASHICORP 4 Lista de Tópicos • Por que Importa?
• Por que IA + IaC + DevSecOps? • Ambiente Preparado • Prompt Engineering • Validação DevSecOps • GitHub Copilot • Terraform + IA Walkthrough -
© HASHICORP 6 • 75% representam o aumento nos incidentes
na nuvem entre 2023 e 2024 (Crowdstrike). • 74% de todas as violações envolvem um elemento humano, problemas atribuídos a erros, uso indevido de privilégios ou credenciais roubadas, entre outros problemas (Verizon). • IA acelera revisão, correção e onboarding • DevSecOps = entregar rápido + seguro -
© HASHICORP 8 • Terraform com Documentação (CLI Básico) ◦
HCL + terraform plan/apply local • Módulos e Registry ◦ Reuso e versionamento de componentes • Utilização de Agentes com IA ◦ LLM gera, revisa e corrige HCL via prompt • Pipelines Autônomos ◦ Agentes que propõem recursos, testam, aplicam com guard-rails -
© HASHICORP 10 • IaC = código ⇒ riscos •
Escala da Infra > revisão humana • IA = pair 24/7 • DevSecOps = Shift Left contínuo • Segurança embutida, não colada -
© HASHICORP 11 • Segundo a RedHat, ”DevSecOps é uma
abordagem para cultura, automação e design de plataforma que integra a segurança como responsabilidade compartilhada ao longo de toda o ciclo de SDLC”. • Com o tempo DevSecOps evoluiu como uma resposta às limitações de DevOps. • Permite às organizações reduzir o risco de vulnerabilidades de segurança. -
© HASHICORP 12 DevSecOps (Infracode) Exemplo • Liberdade de selecionar
as ferramentas e o local exato onde deseja implementá-las. • Implementar uma solução centralizada de gerenciamento de vulnerabilidades pode ajudar a ter uma boa visão geral da segurança. dev.to -
© HASHICORP 14 • Plan Seguro ◦ Copilot Chat gera
HCL com criptografia (KMS), tags obrigatórias e SG restritivo já embutidos. • Policy as Code ◦ Checkov, TFLint, Sentinel e OPA/Rego aplicam regras de compliance versionadas no repositório. • Security as Code ◦ Resultados SARIF vão para Code Scanning; Copilot Review explica falhas e sugere patches diretamente no PR. -
© HASHICORP 15 SAST (Static Application Security Testing) Análise estática
do código antes do deploy. Para IaC, é a inspeção de arquivos “.tf”, .”yaml”, CloudFormation, Ansible, etc. • Permissões IAM excessivas • SGs abertos • Más práticas de naming/tagging • Feedback instantâneo; o dev corrige antes de commitar • Impede que o código inseguro chegue ao repositório -
© HASHICORP 16 Instalando a extensão TFSEC para o VSCODE
tfsec adota uma abordagem que prioriza o desenvolvedor para escanear seus modelos Terraform; usando análise estática Garante que problemas de segurança possam ser detectados antes que suas alterações de infraestrutura entrem em vigor. -
© HASHICORP 17 Scanner de vulnerabilidade com TFSEC Como você
pode ver, minhas configurações do Terraform foram verificadas e me notificou sobre os problemas presentes no código. A classificação da severidade como crítica, também foi enviado as orientações sobre como corrigir essa vulnerabilidade. -
© HASHICORP 18 SCA (Software Composition Analysis) Análise de componentes
de software de terceiros (bibliotecas, dependências). Para IaC, ajuda a identificar pacotes vulneráveis em imagens, módulos e containers. • Dependências inseguras de módulos Terraform • Recursos que utilizam imagens de containers com CVEs • Referências a provedores ou registries • Problemas de configuração em templates de infraestrutura como código (Terraform, Kubernetes, CloudFormation, Azure Resource Manager). -
© HASHICORP 19 Instalando a extensão do Snyk para o
VSCODE A extensão Snyk Visual Studio Code permite que você analise seu código, dependências de código aberto e configurações de Infraestrutura como Código (IaC). Com insights práticos diretamente na IDE do VSCode, você pode resolver problemas conforme eles surgem. -
© HASHICORP 21 • Extensões instaladas: Terraform, TFSec, GitHub Copilot
Chat with GPT-4.1 (ask mode). • Diretório vazio terraform-aws-demo/. • Terraform & scanners instalados (terraform, tfsec, checkov, snyk) • AWS CLI instalado • Optei pelo VSCode como IDE -
© HASHICORP 23 IA e ML ajudam a desempenhar um
papel transformador em DevSecOps. Essas tecnologias podem ser usadas para automatizar tarefas de segurança, identificar ameaças emergentes e prever vulnerabilidades. Ferramentas com tecnologia de IA podem analisar confirmações de código para identificar potenciais riscos de segurança e recomendar estratégias de correção. -
© HASHICORP 24 “Desenvolva uma funcionalidade para criar uma máquina
virtual na AWS.” Prompt vago: -
© HASHICORP 25 “Você é um especialista em Cloud Security.
Analise todos os arquivos .tf deste repositório e: Identifique non-compliances segundo Checkov e CIS AWS Foundations. Classifique cada achado em HIGH / MEDIUM / LOW. Explique, em até 2 linhas, por que o recurso está incorreto. Proponha um snippet HCL corrigido. Responda em Markdown com uma tabela (Colunas: Severidade • Recurso • Regra • Explicação • Fix). Ignore itens triviais ou já justificáveis.” Prompt detalhado: -
© HASHICORP 27 • Subcampo do Machine Learning • Não
é sobre apenas fazer perguntas • Quanto mais detalhes, melhor • O LLM precisa que você seja claro • Embute tags, KMS, logs no prompt -
© HASHICORP 28 • Ferramenta de IA generativa baseada em
nuvem • Transforma prompts de linguagem natural em sugestões de codificação • Explica código e erros • Treinado em bilhões de linhas de código • Pair programmer 24×7 -
© HASHICORP 29 Ferramenta de Programação utilizando IA Porcentagem GitHub
Copilot 54,77% Tabnine 12,88% Amazon CodeWhisperer 5,14% Snyk Code 1,33% Codeium 1,25% Wispr AI 1,13% Replit Ghostwriter 0,83% Mintlify 0,52% Adrenaline 0,43% Rubberduck AI 0,37% Livro Programação Utilizando IA - Tom Taulli -
© HASHICORP 31 Segurança e Privacidade Soluções ✅ Estar atento
à segurança e privacidade ✅ Evite informações sensíveis ou pessoal ✅ Nunca adicione segredos (passwords, chaves de API Exemplo: ⚠Prompt com informação sensível. # main.tf - EXEMPLO INSEGURO E A SER EVITADO! resource "aws_instance" "minha_vm" { ami = "ami-0abcdef1234567890" # Exemplo de AMI instance_type = "t2.micro" # ❌ ATENÇÃO NUNCA COLOQUE SUA CHAVE PRIVADA AQUI! key_name = "minha-chave-ssh-secreta-que-esta-hardcoded-aqui" tags = { Name = "VMTeste-Insegura" } } -
© HASHICORP 32 Segurança e Privacidade Soluções ✅ O Terraform
tem a capacidade de referenciar valores de forma segura. ✅ Para senhas de banco de dados e outros segredos críticos HashiCorp Vault) ✅ Sua infraestrutura como código segura e as informações com o devido cuidado. Exemplo: ✅Prompt com Boas Práticas Seguro e Recomendado) # main.tf - EXEMPLO SEGURO E RECOMENDADO! # Use variáveis para referenciar a chave SSH, que será fornecida de forma segura. resource "aws_instance" "minha_vm_segura" { ami = "ami-0abcdef1234567890" instance_type = "t2.micro" # ✅ Use uma variável. O valor da chave virá de um método seguro (ex: CLI, Vault). key_name = var.ssh_key_name tags = { Name = "VMTeste-Segura" } } -
© HASHICORP 34 Iniciando com o VSCode + Copilot Como
você pode ver, eu criei o arquivo “main.tf” vazio para começar a demonstração com a IA. O GitHub Copilot também fornece um recurso chamado “inline chat”, onde você pode inserir o prompt direto na console do VSCode. -
© HASHICORP 35 Copilot Criando o Código HCL Como você
pode ver, O Copilot já criou o “main.tf” completo com os principais recursos que foram pedidos. Usei um prompt simples de exemplo. Ele criou o provider, recursos de redes, security groups, e o recurso de instância, tudo dentro do padrão HCL. -
© HASHICORP 36 Usando Copilot Chat para HCL Aqui neste
exemplo temos um prompt mais detalhado, onde o Copilot Chat já entende o arquivo que eu estou usando para o código. Foi criado o arquivo de “variables.tf” com todas as entradas necessárias do “main.tf”. Veja que ele acelera o desenvolvimento da infraestrutura, mas a análise técnica nós precisamos fazer. -
© HASHICORP 37 Explorando Recursos do Copilot Aqui neste exemplo
podemos demonstrar o uso de recursos adicionais do Copilot, como o “Explain”. Veja que ele cria uma breve explicação do código diretamente via chat, ele faz as observações sobre os recursos criados com detalhes. -
© HASHICORP 38 Documentação do Código com Copilot Chat Podemos
entrar com um prompt sobre a documentação do código, onde ele escreve de forma detalhada cada recurso do Terraform. Isso possibilita mais entendimento do que estamos criando e para outros profissionais entenderem de forma mais fácil. -
© HASHICORP 39 Uso do Copilot Chat para buscar bugs
Outro prompt que também é válido, é a busca de bugs no código, melhorias de qualidade e segurança. Veja que ele pegou no meu código alguns pontos de security group, onde está (0.0.0.0/0), expondo o risco de manter essa configuração. -
[email protected] | learn.hashicorp.com | discuss.hashicorp.com Thank you github.com/amaurybsouza amaurybsouza.github.io/portfolio/ linkedin.com/in/amaurybsouza
meetup.com/pt-BR/campinas-hashicorp-user-group/ -
© HASHICORP 42 Pontos Importantes • Passe todos os detalhes
e contexto do sua arquitetura • Trano • Explica código e erros • Treinado em bilhões de linhas de código • Pair programmer 24×7 -
© HASHICORP 43 DAST (Dynamic Application Security Testing) Testes após
o provisionamento, contra a infraestrutura de fato. • Varredura de portas/serviços (Nmap, Nessus) • Ferramentas cloud-native (AWS Inspector, Azure Defender) • Testes de corrosão de autenticação (ZAP, Burp) nos endpoints expostos • Permite encontrar falhas que estão visíveis apenas após o app estar sendo utilizado pelo seus usuários (pronto) • Não é recomendável que seja usado para substituir o penetration test (Pentest)