Valide seu IaC com base nas políticas da organização Google Cloud

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

    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

    1. No Google Cloud console, acesse a página IAM.

      Acessar IAM
    2. Selecione uma organização.
    3. 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.

    4. 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.

    Conceder os papéis

    1. No Google Cloud console, acesse a página IAM.

      Acessar IAM
    2. Selecione uma organização.
    3. Clique em Conceder acesso.
    4. No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Clique em Selecionar um papel e pesquise o papel.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Salvar.

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.

Ativar 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.

Ativar as APIs

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:

  1. 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 -upgrade
    
  2. Converta 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.
  3. 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/global com um plano da IaC incluído em planFile.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