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

Neste documento, descrevemos como validar sua infraestrutura como código (IaC) com as políticas da organização e os detectores da Análise de integridade da segurança definidos na sua organização Google Cloud . Com a IaC, é possível criar e gerenciar seus recursos de nuvem usando linguagens como o Terraform para implantar os recursos usando um fluxo de trabalho de desenvolvimento. O recurso de validação da IaC aceita apenas 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 recursosGoogle Cloud (por exemplo, cluster, bucket ou instância). É possível definir essas políticas usando posturas de segurança, mas o recurso de validação de IaC analisa o código e o compara com as políticas efetivas 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 de IaC é compatível com arquivos de plano do Terraform. É possível validar seu 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.

Ativar o Security Command Center ativa as APIs securityposture.googleapis.com e securitycentermanagement.googleapis.com.

Configurar permissões

    Verifique se você tem os seguintes papéis na organização: Validador Shift-Left do Security Posture

    Verificar os papéis

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

      Acessar IAM
    2. Selecione a 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 console do Google Cloud , acesse a página IAM.

      Acessar IAM
    2. Selecione a 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, adicione-os clicando em Adicionar outro papel.
    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 console do Google Cloud , ative o Cloud Shell.

Ativar o Cloud Shell

Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

Para configurar a gcloud CLI 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.

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 recursos Google Cloud que você quer criar ou modificar.

Considere o seguinte:

  • Preencha o atributo pai (projeto, pasta ou organização) de cada recurso ou ativo na configuração do Terraform.
  • Modifique recursos e políticas separadamente. A API não oferece suporte à validação de arquivos de plano do Terraform que modificam recursos e políticas ao mesmo tempo.
  • Use apenas tipos de recursos e políticas compatíveis. Para conferir uma lista de tipos de recursos e políticas compatíveis, consulte Tipos de recursos e políticas compatíveis com a validação de IaC.
  • Revise as limitações da validação de 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, eles serão removidos.

Depois de criar o código do Terraform, você pode executar o relatório de validação de IaC. Você pode 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 de IaC

Para criar um relatório de validação de 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 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: a organização Google Cloud em que o relatório de validação de 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 de IaC que você quer validar.

    Por exemplo, para criar um relatório de validação de IaC na organização organizations/3589215982/locations/global com um plano de 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 de IAC. Para mais informações sobre a operação, consulte Ver informações sobre uma operação de implantação de postura.

A seguir