Validar a IaC em relação às políticas da 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. A IaC permite criar e gerenciar seus recursos de nuvem usando linguagens como o Terraform para que seja 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. Validação de IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na IaC dos recursos antes de aplicá-los ao seu ambiente do Google Cloud.

O recurso de validação da IaC oferece suporte aos arquivos de plano do Terraform. É possível validar suas plano do Terraform usando a Google Cloud CLI ou integre a validação do Cloud Build, Jenkins ou GitHub Actions de desenvolvimento de software.

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 o nível Premium ou Enterprise do Security Command Center está ativado no nível da organização.

Ativar o Security Command Center ativa os securityposture.googleapis.com e APIs do 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 permissões de validação de IaC, consulte IAM para nível de organização ativações.

    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.

    Defina suas políticas

    Defina seu políticas da organização e 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 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 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 políticas e tipos de recursos compatíveis. Para uma lista de dispositivos com suporte tipos de recursos e políticas, consulte Tipos de recursos e políticas compatíveis com a validação de IaC.
    • Analise as limitações da validação de IaC.
    • Não inclua informações sensíveis, como senhas ou outros informações identificáveis no arquivo do Terraform plan. Se a validação encontrar campos marcados como confidenciais nas alterações de recurso, o são removidos.

    Depois de criar o código do Terraform, execute o relatório de validação de 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, 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 contém 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 no para criar o relatório de validação de IaC. 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 a validação do IAC relatório. Para informações sobre a operação, consulte Conferir informações sobre uma operação de implantação de postura.

    A seguir