Integrar a validação de IaC com o Jenkins

Você pode usar o plug-in Google Analyze Code Security para Jenkins para validar a infraestrutura como código (IaC, na sigla em inglês) que faz parte do projeto do Jenkins. A validação da IaC permite determinar se as definições de recursos do Terraform violam as políticas atuais da organização e Detectores da Análise de integridade da segurança aplicados aos recursos do Google Cloud.

Para mais informações sobre a validação da IaC, consulte Validar a IaC em relação a documentação da organização do Google Cloud ..

A validação de IaC só funciona com o freestyle do Jenkins projetos.

Antes de começar

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

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

Verifique se o nível Premium ou Enterprise do Security Command Center é ativado no nível da organização.

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

Crie uma conta de serviço

Crie uma conta de serviço que você possa usar para o serviço Google Analyze Code Security plug-in para Jenkins.

  1. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Security Posture Shift-Left Validator role to the service account.

      To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  2. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

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

Defina suas políticas

Defina as políticas da organização e os detectores da Análise de integridade da segurança. Para definir usando uma postura de segurança, conclua as tarefas em Criar e implantar um de segurança.

Instalar e configurar o plug-in

  1. No console do Jenkins, clique em Manage Jenkins > Gerenciar plug-ins.
  2. Na guia Disponível, pesquise google-analyze-code-security.
  3. Conclua as etapas de instalação.
  4. Clique em Manage Jenkins > Configure o sistema.
  5. Na seção Google Analyze Code Security, clique em Add credentials.
  6. Em ID da organização, insira o ID da organização do Google Cloud. organização que inclua os recursos do Terraform que você quer criar ou modificar.
  7. Em Credencial do Security Command Center, adicione a chave da conta de serviço.
  8. Teste a conexão para verificar as credenciais da conta de serviço.
  9. Clique em Salvar.

crie seu arquivo JSON do plano do Terraform

  1. Crie seu código do Terraform. Para mais instruções, consulte Criar o arquivo do ou código-fonte.

  2. Instale o plug-in do Terraform para Jenkins.

  3. No console do Jenkins, no projeto de estilo livre do Jenkins, acesse a Configuração.

  4. Clique em Gerenciamento de código-fonte.

  5. Em URL do repositório, digite o URL do código do Terraform que você criou.

  6. Clique em Etapas de build.

  7. Adicione estas etapas:

    1. Inicialize o Terraform:

      terraform init
      
    2. Crie um arquivo do Terraform plan.

      terraform plan -out=TF_PLAN_FILE
      

      Substitua TF_PLAN_FILE pelo nome do Terraform plan. . Por exemplo, myplan.tfplan.

    3. Converta o arquivo do plano para o formato JSON:

      terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
      

      Substitua TF_PLAN_JSON_FILE pelo nome do arquivo no formato JSON. Por exemplo, mytfplan.json.

Adicionar o plug-in ao seu projeto do Jenkins

  1. No console do Jenkins, no projeto de estilo livre do Jenkins, acesse a Configuração.
  2. Em Etapas de criação, clique em Adicionar etapa de criação > Realizar a leitura de código durante Criação.
  3. Insira o ID da organização.
  4. Informe o caminho para seu arquivo de plano do Terraform no formato JSON.
  5. Opcional: defina os critérios de falha do build. Os critérios de falha são baseados o número de problemas críticos, de alta, média e baixa gravidade que a IaC e da verificação de validação encontra. É possível especificar quantos problemas de cada gravidade são permitidos e como os problemas são agregados (E ou OR).

    1. Clique em Falha na violação de recurso.

    2. Se você quiser que o build falhe somente se a contagem de problemas de todos se os níveis de gravidade forem atingidos, selecione E. Se você quiser que o build falhe Se a contagem de problemas de qualquer nível de gravidade for atingida, selecione OU. Por exemplo, se você quiser que o build falhe se encontrar um erro ou um problema de alta gravidade, defina o valor agregado como OU.

    3. Indique o número de problemas nos vários níveis de gravidade que você quer permitir antes que o build falhe.

    Se você não quiser especificar um critério de falha, selecione Ignorar recurso Violação.

  6. Clique em Salvar.

Agora é possível executar o build para validar seu arquivo de plano do Terraform.

Acessar o relatório de violação de IaC

  1. No console do Jenkins, clique no fluxo de trabalho mais recente do build.

  2. Clique em Status. Os seguintes arquivos HTML estão disponíveis como artefatos de versão:

    • Se o plug-in foi executado, a denúncia de violação (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

    O relatório agrupa as violações por gravidade. A seção de violação descreve qual regra não foi atendida e o ID do recurso do plano do Terraform que violou a regra.

    • Se o build falhar, um relatório de resumo de erros
  3. Resolva todas as violações no código do Terraform antes de aplicá-lo.

A seguir