Validar o IaC com as políticas da sua organização do Google Cloud

Este documento descreve como validar sua infraestrutura como código (IaC) com base nas políticas da organização e nos detectores de Análise de integridade de segurança definidos na sua organização do Google Cloud. Com a IaC, é possível criar e gerenciar recursos de nuvem usando linguagens como o Terraform para implantar os recursos usando um fluxo de trabalho de desenvolvimento. O recurso de validação de IaC é compatível apenas com políticas da organização e detectores da Análise de integridade da segurança.

A validação do IaC permite determinar se as definições de recursos novas ou modificadas violam as políticas atuais aplicadas aos seus 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 seu código em relação a todas as políticas na organização do Google Cloud. A validação de IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na configuração de recursos ou ativos de IaC antes que eles sejam aplicados ao ambiente do Google Cloud.

O recurso de validação de IaC oferece suporte a 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 de IaC.

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

Verifique se o nível Premium ou Enterprise do Security Command Center 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

  1. Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

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

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

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

    Configurar a Google Cloud CLI

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    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 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 os fluxos de trabalho e as ferramentas de 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 todos os recursos ou ativos na configuração do Terraform.
    • Modifique os recursos e as 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 os tipos de recursos e as 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 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 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 do 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 de IaC

    Para criar um relatório de validação de IaC, siga estas etapas:

    1. Na CLI gcloud, execute terraform init.

      Verifique se você está usando 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: 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 saber mais sobre a operação, consulte Conferir informações sobre uma operação de implantação de postura.

    A seguir