Ganhos:
- Capacidade de compreender o conceito IaC e o ciclo de trabalho do Terraform (init, plan, apply, state, module) e fazer com que a inteligência artificial produza rascunhos HCL seguros
- Capacidade de verificar cada alteração com um plano antes de aplicar e detectar linhas inesperadas de destruição/substituição
- Capacidade de aplicar os princípios de manter segredos fora do código, manter o estado seguro e minimizar as permissões do IAM
Antigamente, configurar um servidor era uma questão de clicar em um painel da nuvem: criar uma máquina virtual, configurar a rede, adicionar a regra de segurança. Esse método era lento, sujeito a erros e irrepetível — era quase impossível configurar o mesmo ambiente uma segunda vez. Hoje, a infraestrutura é gerenciada como código. IaC (Infraestrutura como Código) é uma abordagem para descrever recursos de nuvem, como servidores, redes e bancos de dados em arquivos de texto, em vez de manualmente. Esses arquivos ficam no controle de versão (Git); Você pode ver quem mudou o quê, quando e o quê; Você pode configurar a mesma infraestrutura muitas vezes, exatamente da mesma maneira, com um único comando.
A ferramenta IaC mais comum é o Terraform. O Terraform pega as definições que você escreve em uma linguagem legível chamada HCL (HashiCorp Configuration Language — linguagem de configuração do Terraform), traduz-as na API do provedor de nuvem (AWS, Azure, GCP) e cria os recursos. A IA conhece muito bem a HCL e produz blocos complexos rapidamente. Mas no IaC, o custo de um erro é alto: uma definição errada pode destruir todo um banco de dados de produção. É por isso que a regra de ouro no Terraform é ver cada mudança com um “plano” antes de implementá-la.
Tempo de execução do Terraform
O Terraform funciona com três comandos básicos – conhecê-los é um pré-requisito para controlar a saída de IA:
- `terraform init`: Inicia o projeto, baixa os plugins do provedor necessários.
- `terraform plan`: Compara a situação atual com a situação desejada e mostra o que adicionar, o que alterar, o que excluir. Não implementa nada. É a etapa de segurança mais crítica.
- `terraform apply`: Na verdade aplica o Plano, criando/modificando recursos.
Além disso, dois conceitos são vitais. State (arquivo de estado): É o arquivo onde o Terraform mantém o estado atual dos recursos que gerencia; Geralmente é armazenado em um armazém remoto e trancado para que duas pessoas não possam alterá-lo ou destruí-lo ao mesmo tempo. Módulo: Pacote de configuração reutilizável; Por exemplo, você pode usar o módulo “configurar uma rede” em muitos projetos.
Dica: O sinal mais perigoso em uma saída do Terraform são as linhas destruir ou -/+ (substituir) na saída do plano. Isso significa que o recurso será excluído. Se você perceber uma destruição inesperada em um plano, nunca aplique, primeiro entenda por que ela apareceu.
Passo a passo: Escrevendo IaC com IA
- Esclareça a infraestrutura desejada. Seja concreto como "um VPC, duas sub-redes, um grupo de segurança e um t3.micro EC2 no eu-central-1".
- Especifique o provedor e a versão. Qual nuvem, qual Terraform e versão do provedor? Se você não especificar uma versão, a IA poderá retornar uma sintaxe desatualizada/incompatível.
- Produza o rascunho da HCL. Solicite também variáveis e saídas.
- Retire o segredo. Valores como senhas e chaves devem ir para o cofre variável e secreto, e não para o código.
- Execute `init` + `plan`. Leia o resultado do plano linha por linha; Verifique se há exclusões inesperadas.
- Comece pequeno, implemente gradualmente. Aplique-o primeiro em uma conta/ambiente de teste isolado.
Segurança: riscos específicos do IaC
IaC é tão arriscado quanto poderoso. Três pontos críticos:
- Há um segredo no arquivo do estado. O estado do Terraform às vezes mantém valores confidenciais, como senhas de banco de dados, em texto simples. Nunca coloque o State em um repositório público; Use um back-end remoto criptografado e de acesso restrito.
- Não incorpore segredos na HCL. Linhas como password="prod123" são gravadas permanentemente no histórico do Git. Em vez disso, use uma variável e forneça o valor em tempo de execução da variável de ambiente (TF_VAR_...) ou do cofre secreto.
- Permissão IAM muito ampla. A IA às vezes produz blocos como Action: "*" (permitir tudo) para "fazer funcionar". Esta é uma vulnerabilidade; restringir a permissão ao mínimo necessário.
Atenção: Depois que um segredo entra no histórico do Git, ele permanece no passado e pode ser comprometido, mesmo se você excluir o arquivo. Se você cometer um erro, cancele e alterne imediatamente o segredo; Apenas excluir não é suficiente.
Tabela de sinais de plano arriscado
Impressão do plano
Significado
o que fazer
+criar
Novo recurso será adicionado
Geralmente seguro, revise embora
~ atualização no local
A fonte mudará no site
Verifique o impacto (haverá uma interrupção?)
-/+ substituir
Será excluído e recriado
CUIDADO: pode ocorrer perda de dados
- destruir
O recurso será destruído
PARE: nunca se inscreva se não estiver esperando
três mini cases
Caso 1 — 2 dias de trabalho em 3 horas. Uma equipe iria escrever o Terraform para configurar um novo ambiente de teste (VPC, sub-redes, banco de dados RDS, cluster ECS), mas eles tinham acabado de migrar para HCL. Eles descreveram a arquitetura e as versões da IA e produziram um projeto modular. Eles verificaram cada módulo com o plano e o colocaram em funcionamento em 3 horas; Eles levariam dois dias de tentativa e erro manual.
Caso 2 – o plano foi excluído. Um engenheiro executou um plano sem aplicar um código de atualização gerado por IA. A saída continha -/+ substituir para o banco de dados de produção — a IA tentou substituir um campo não substituível, o que significava excluir e recriar o banco de dados. O engenheiro parou de aplicar e mudou a mudança para o método seguro. O hábito de planejar evitou um desastre.
Caso 3 – vazamento secreto enterrado. Um júnior, YZ emitiu db_password = "S3cret!" Ele cometeu a linha como está e a empurrou. Pego na revisão de código; A senha foi imediatamente cancelada e alterada, o valor foi movido para uma variável e alimentado no cofre secreto. Lição: Nunca existem segredos de texto simples na HCL.
Quatro modelos copiáveis
1) Geração de projeto de infraestrutura:
Escreva a seguinte infraestrutura em [CLOUD: AWS] com Terraform (versão ~> 1.7): [SOURCE LIST]. Região [X]. Regras:- Torne todos os valores confidenciais variáveis, não os incorpore na HCL.- Corrija a versão do provedor (required_providers).- Minimize as permissões do IAM, não use "*".- Retorne [X, Y] como saída. Forneça o código de forma modular e com explicações.
2) Interpretação do resultado do plano:
Analise a saída do 'plano de terraform' abaixo. Liste-me:(1) quais recursos foram adicionados/alterados/EXCLUÍDOS,(2) linhas com risco de perda ou interrupção de dados,(3) 3 perguntas que devo fazer antes de aplicar.Plano: [SAÍDA]
3) Examine a HCL existente quanto à segurança:
Verifique a segurança do seguinte código Terraform: segredo incorporado, permissão IAM excessivamente ampla, regra de rede aberta (0.0.0.0/0), armazenamento não criptografado? Escreva cada descoberta em ordem de importância e correção. Código: [HCL]
4) Converta o código repetitivo em módulo:
Converta o seguinte código repetitivo do Terraform em um módulo reutilizável: quais valores devem ser variáveis, qual deve ser a interface do módulo? Mostre também um exemplo de uso. Código: [HCL]
Alerta fraco / Alerta forte
Fraco: "Crie um banco de dados com Terraform."
Resultado: não está claro qual nuvem, qual mecanismo, qual versão, criptografada ou não; Com a sintaxe legada, a IA pode fornecer um exemplo publicamente disponível que incorpora a senha ao código.
Forte: "Crie uma instância RDS PostgreSQL 15 na AWS com Terraform ~> 1.7. Torne a senha variável, não a incorpore no código. O armazenamento é criptografado, acessível apenas a partir de uma sub-rede privada, não pública. Corrija a versão do provedor. Retorne o endpoint como saída."
Diferença: o segundo prompt fornece o mecanismo, a versão, a criptografia, a restrição de rede e a regra secreta — a saída é segura e próxima do produto.
Erros comuns
- `Candidatar-se` sem fazer um `plano`. O erro mais caro do IaC; sempre planeje primeiro.
- Incorporando segredo na HCL. Cria vazamento permanente no histórico do Git.
- Armazenar o Estado inseguro. Um estado público não criptografado e desbloqueado é um desastre.
- Não corrigindo a versão. Usar o provedor sem especificar uma versão levará a falhas repentinas no futuro.
- *`Ação: Permissão ampla como ""`.** Viola o princípio do privilégio mínimo.
- Ignorando a `destruição` inesperada. Aplicando as linhas de exclusão do Plano sem questionar.
Em resumo
A IaC transforma a infraestrutura em código repetível, versionável e auditável; A ferramenta mais comum é o Terraform. A IA produz rapidamente stubs HCL, mas você deve fornecer a versão, detalhes específicos da nuvem e regras de segurança. A regra infalível no Terraform: ver cada mudança com um plano, consultar exclusões inesperadas, manter segredos longe do código e manter o estado seguro. As linhas destruir e substituir em uma saída de plano são os locais que devem ser lidos com mais atenção.
Tarefa de aplicativo
Faça com que a IA gere uma pequena infraestrutura (por exemplo, um balde de armazenamento e uma política de acesso) usando o modelo “Gerar esboço de infraestrutura” acima. Então: (1) faça com que o modelo de "avaliação" verifique as permissões secretas ou * incorporadas no código; (2) se possível, execute init + plan em uma conta de teste e leia a saída do plano com o modelo “interpretação do plano”; (3) observe quaisquer exclusões/alterações inesperadas.
lista de verificação
- [] Adicionei nuvem, versão do Terraform/provedor e restrições de criptografia/rede ao meu prompt.
- [] Não há segredo de texto simples no código; variável de valores de precisão.
- [] Reduzi IAM/permissões para permissões mínimas, * não usei.
- [] Executei o plano antes de aplicar e li a saída linha por linha.
- [ ] Verifiquei que não há destruição/substituição inesperada no Plano.
- [] Tenho certeza de que o estado é mantido em um back-end criptografado, bloqueado e restrito.