Este documento descreve como validar sua infraestrutura como código (IaC) em relação às políticas da organização e aos detectores da Análise de integridade da segurança definidos na sua Google Cloud organização. A IaC permite criar e gerenciar seus recursos de nuvem usando linguagens como o Terraform para que você possa implantar os recursos usando um fluxo de trabalho de desenvolvimento. O recurso de validação da IaC oferece suporte apenas a políticas da organização e detectores da Análise de integridade da segurança.
A validação da IaC permite determinar se as definições de recursos novas ou modificadas violam as políticas atuais aplicadas aos Google Cloud recursos (por exemplo, cluster, bucket ou instância). É possível definir essas políticas usando posturas de segurança, mas o recurso de validação da IaC analisa o código e o compara com todas as políticas eficazes definidas em posturas implantadas na sua Google Cloud organização. A validação de IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na configuração de IaC de recursos ou ativos antes que eles sejam aplicados ao seu Google Cloud ambiente.
O recurso de validação da IaC oferece suporte a arquivos de plano do Terraform. É possível validar o plano do Terraform usando a Google Cloud CLI ou integrar o processo de validação ao fluxo de trabalho de desenvolvedor do Cloud Build, Jenkins ou GitHub Actions.
Antes de começar
Conclua estas tarefas para começar a usar a validação da IaC.
Ativar o nível Security Command Center Premium ou Enterprise
Verifique se o nível Security Command Center Premium ou Enterprise está ativado no nível da organização.
Configurar permissões
-
No Google Cloud console, acesse a página IAM.
Acessar IAM - Selecione uma organização.
-
Na coluna Principal, encontre todas as linhas que identificam você ou um grupo no qual você está incluído. Para saber em quais grupos você está incluído, entre em contato com o administrador.
- Em todas as linhas que especificam ou incluem você, verifique a coluna Papel para ver se a lista de papéis inclui os papéis necessários.
-
No Google Cloud console, acesse a página IAM.
Acessar IAM - Selecione uma organização.
- Clique em Conceder acesso.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Clique em Selecionar um papel e pesquise o papel.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
Verifique se você tem os seguintes papéis na organização: Validador de mudança de postura de segurança à esquerda
Verificar os papéis
Conceder os papéis
Para mais informações sobre permissões de validação da IaC, consulte IAM para ativações no nível da organização.
Configurar a Google Cloud CLI
No Google Cloud console, ative o Cloud Shell.
Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Para configurar a CLI gcloud e usar a identidade temporária de conta de serviço para autenticação nas APIs do Google, em vez de suas credenciais de usuário, execute o seguinte comando:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Saiba mais em Identidade temporária de conta de serviço.
Ativar APIs
Ative as APIs Security Posture e Security Center Management.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você
criou o projeto, provavelmente já tem essa permissão com o
papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo
papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin).
Saiba como conceder papéis.
Definir suas políticas
Defina as políticas da organização e os detectores da Análise de integridade da segurança. Para definir essas políticas usando uma postura de segurança, conclua as tarefas em Criar e implantar uma postura.
Criar seu código do Terraform
Use seus fluxos de trabalho e ferramentas de desenvolvedor para criar um arquivo do Terraform que inclua os Google Cloud ativos que você quer criar ou modificar.
Considere o seguinte:
- Preencha o atributo pai (o projeto, a pasta ou a organização) de cada recurso ou ativo na configuração do Terraform.
- Modifique ativos e políticas separadamente. A API não oferece suporte à validação de arquivos de plano do Terraform que modificam ativos e políticas ao mesmo tempo.
- Use apenas tipos de ativos e políticas compatíveis. Para uma lista de tipos de ativos e políticas compatíveis, consulte Tipos de ativos e políticas compatíveis para validação da IaC.
- Analise as limitações da validação da IaC.
- Não inclua informações sensíveis, como senhas ou outras informações de identificação pessoal, no arquivo de plano do Terraform. Se o recurso de validação encontrar campos marcados como sensíveis nas mudanças de recursos, os campos serão removidos.
Depois de criar o código do Terraform, você pode executar o relatório de validação da IaC. É possível usar a CLI gcloud, o Cloud Build, o Jenkins, ou o GitHub Actions.
Usar a CLI do Google Cloud para criar um relatório de validação da IaC
Para criar um relatório de validação da IaC, faça o seguinte:
Na CLI gcloud, execute
terraform init.Verifique se você está executando a versão v5.5 ou mais recente do provedor do Terraform. Se necessário, faça upgrade para a versão mais recente do provedor do Google:
terraform init -upgradeConverta o arquivo de plano do Terraform para o formato JSON:
terraform plan -out TF_PLAN_FILENAME terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
Substitua:
TF_PLAN_FILENAME: o nome do arquivo de plano do Terraform.TF_PLAN_JSON_FILENAME: o nome do arquivo que vai conter o plano do Terraform no formato JSON.
Crie o relatório de validação de IaC:
gcloud scc iac-validation-reports create PARENT \ --tf-plan-file=TF_PLAN_JSON_FILENAME.json
Substitua:
PARENT: Google Cloud a organização em que o relatório de validação da IaC será criado. O formato éorganizations/ORGANIZATION_ID/locations/LOCATION.LOCATIONéglobal.TF_PLAN_JSON_FILENAME: o caminho para o arquivo JSON que contém o plano da IaC que você quer validar.
Por exemplo, para criar um relatório de validação da IaC na organização
organizations/3589215982/locations/globalcom um plano da IaC incluído emplanFile.json, execute o seguinte comando:gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
Esse comando retorna os detalhes da operação para criar o relatório de validação da IAC. Para mais informações sobre a operação, consulte Conferir informações sobre uma operação de implantação de postura.
A seguir
- Revise o tutorial de exemplo.
- Integre a validação da IaC ao fluxo de trabalho do Cloud Build.
- Integre a validação da IaC ao seu projeto do GitHub Actions ou ao seu projeto do Jenkins.
- Gerencie sua postura de segurança.