Validar a IaC em relação às políticas da organização do Google Cloud

Neste documento, descrevemos como validar sua infraestrutura como código (IaC, na sigla em inglês) em relação às políticas da organização e aos detectores de Análise de integridade da segurança que você definiu na sua organização do Google Cloud. A IaC permite criar e gerenciar 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 de IaC oferece suporte apenas a detectores de políticas da organização e de 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 recursos do Google 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 em relação a todas as políticas na sua organização do Google Cloud. A validação da IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na configuração de recursos ou IaC antes de aplicá-los ao ambiente do Google Cloud.

O recurso de validação da IaC oferece suporte aos 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 seu fluxo de trabalho do desenvolvedor do Jenkins ou GitHub Actions.

Antes de começar

Conclua estas tarefas para começar a usar a validação de IaC.

Ative o nível Premium ou Enterprise do Security Command Center

Verifique se os níveis Premium ou Enterprise do Security Command Center estão ativados no nível da organização.

Configurar permissões

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

    Verificar os papéis

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

      Acessar IAM
    2. Selecionar uma organização.
    3. Na coluna Principal, encontre a linha que contém seu endereço de e-mail.

      Caso seu endereço de e-mail não esteja nessa coluna, isso significa que você não tem papéis.

    4. Na coluna Papel da linha com seu endereço de e-mail, verifique se a lista de papéis inclui os papéis necessários.

    Conceder os papéis

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

      Acesse o IAM
    2. Selecionar uma organização.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos participantes, digite seu endereço de e-mail.
    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Save.

Para saber mais sobre permissões de validação de IaC, consulte IAM para ativações no nível da organização.

Configurar a Google Cloud CLI

É possível usar as amostras da CLI do gcloud nesta página de um dos seguintes ambientes de desenvolvimento:

  • Cloud Shell: para usar um terminal on-line com a CLI gcloud já configurada, ative o Cloud Shell.

    Na parte de baixo desta página, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. A inicialização da sessão pode levar alguns segundos.

  • Shell local: para usar a CLI da gcloud em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud.

Para configurar a CLI da gcloud para usar a representação da 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

Para mais informações, consulte Representação da conta de serviço.

Ativar APIs

Ative as APIs Security posture service and Security Command Center management.

Ative as APIs

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

crie seu código do Terraform

Use os fluxos de trabalho e as ferramentas do desenvolvedor para criar um arquivo do Terraform que inclua os recursos do Google Cloud 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 recurso na configuração do Terraform.
  • Modifique recursos e políticas separadamente. A API não oferece suporte à validação de arquivos do Terraform plan, que modificam os recursos e as políticas ao mesmo tempo.
  • Use apenas políticas e tipos de recursos compatíveis. Para uma lista de tipos de recursos e políticas compatíveis, consulte Tipos de recursos e políticas compatíveis para validação de IaC.
  • Analise 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 confidenciais nas alterações de recurso, eles serão removidos.

Depois de criar o código do Terraform, execute o relatório de validação de IaC. É possível usar a Google Cloud CLI, 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 o provedor Terraform versão 5.5 ou posterior. Se necessário, faça upgrade para a versão mais recente do provedor do Google:

    terraform init -upgrade
    
  2. Converta o arquivo do Terraform plan 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 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
    

    Substitua:

    • PARENT: a organização do 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 do IAC. Para informações sobre a operação, consulte Ver informações sobre uma operação de implantação de postura.

A seguir