Integra la validación de IaC con Jenkins

Puedes usar el complemento Google Analyze Code Security para Jenkins para validar la infraestructura como código (IaC) que forma parte de tu proyecto de Jenkins. La validación de la IaC te permite determinar si tus definiciones de recursos de Terraform violan las políticas de la organización existentes y los detectores de Security Health Analytics que se aplican a tus recursos de Google Cloud.

Para obtener más información sobre la validación de la IaC, consulta Cómo validar tu IaC en función de las políticas de tu organización de Google Cloud.

La validación de IaC solo funciona con proyectos de Jenkins Freestyle.

Antes de comenzar

Completa estas tareas para comenzar a usar la validación de IaC con Jenkins.

Activa el nivel Premium o Enterprise de Security Command Center

Verifica que el nivel Premium o Enterprise de Security Command Center esté activado a nivel de la organización.

Si activas Security Command Center, se habilitan las APIs de securityposture.googleapis.com y securitycentermanagement.googleapis.com.

Cree una cuenta de servicio

Crea una cuenta de servicio que puedas usar para el complemento Google Analyze Code Security de 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 obtener más información sobre los permisos de validación de IaC, consulta IAM para activaciones a nivel de la organización.

Define tus políticas

Define las políticas de tu organización y los detectores de Security Health Analytics. Para definir estas políticas con una postura de seguridad, completa las tareas que se indican en Crea y, luego, implementa una postura.

Instala y configura el complemento

  1. En la consola de Jenkins, haz clic en Manage Jenkins > Manage Plugins.
  2. En la pestaña Disponible, busca google-analyze-code-security.
  3. Completa los pasos de instalación.
  4. Haz clic en Administrar Jenkins > Configurar sistema.
  5. En la sección Google Analyze Code Security, haz clic en Agregar credencial.
  6. En ID de la organización, ingresa el ID de la organización de Google Cloud que incluye los recursos de Terraform que deseas crear o modificar.
  7. En Credencial de Security Command Center, agrega la clave de la cuenta de servicio.
  8. Prueba la conexión para verificar las credenciales de la cuenta de servicio.
  9. Haz clic en Guardar.

Crea el archivo JSON de tu plan de Terraform

  1. Crea tu código de Terraform. Para obtener instrucciones, consulta Crea tu código de Terraform.

  2. Instala el complemento Terraform para Jenkins.

  3. En la consola de Jenkins, en tu proyecto de estilo libre de Jenkins, ve a la página Configuration.

  4. Haz clic en Administración de código fuente.

  5. En URL del repositorio, ingresa la URL del código de Terraform que creaste.

  6. Haz clic en Pasos de compilación.

  7. Agrega los siguientes pasos:

    1. Inicializa Terraform mediante este comando:

      terraform init
      
    2. Crea un archivo de plan de Terraform.

      terraform plan -out=TF_PLAN_FILE
      

      Reemplaza TF_PLAN_FILE por el nombre del archivo de plan de Terraform. Por ejemplo, myplan.tfplan

    3. Convierte el archivo de plan al formato JSON:

      terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
      

      Reemplaza TF_PLAN_JSON_FILE por el nombre del archivo de plan de Terraform, en formato JSON. Por ejemplo, mytfplan.json

Agrega el complemento a tu proyecto de Jenkins

  1. En la consola de Jenkins, en tu proyecto de estilo libre de Jenkins, ve a la página Configuration.
  2. En Pasos de compilación, haz clic en Agregar paso de compilación > Realizar análisis de código durante la compilación.
  3. Ingresa el ID de tu organización.
  4. Proporciona la ruta de acceso al archivo de plan de Terraform, en formato JSON.
  5. Opcional: Establece los criterios de falla de compilación. Los criterios de fallas se basan en la cantidad de problemas de gravedad crítica, alta, media y baja que encuentra el análisis de validación de IaC. Puedes especificar cuántos problemas de cada gravedad se permiten y cómo se agregan (O o Y).

    1. Haz clic en Fallar en la infracción de activos.

    2. Si deseas que la compilación falle solo si se alcanza el recuento de problemas de todos los niveles de gravedad, selecciona Y. Si deseas que la compilación falle si se alcanza el recuento de problemas de cualquier nivel de gravedad, selecciona O. Por ejemplo, si deseas que la compilación falle si encuentra un problema grave o uno de gravedad alta, establece el valor agregado en O.

    3. Indica la cantidad de problemas en los diferentes niveles de gravedad que deseas permitir antes de que falle la compilación.

    Si no deseas especificar un criterio de falla, selecciona Ignorar incumplimiento de activos.

  6. Haz clic en Guardar.

Ahora puedes ejecutar la compilación para validar tu archivo de plan de Terraform.

Consulta el informe de incumplimientos de IaC

  1. En la consola de Jenkins, haz clic en el flujo de trabajo más reciente de tu compilación.

  2. Haz clic en Estado. Los siguientes archivos HTML están disponibles como artefactos de compilación:

    • Si se ejecutó el complemento, se mostrará el informe de incumplimientos (GoogleAnalyzeCodeSecurity_ViolationSummary.html).

    El informe agrupa los incumplimientos por gravedad. En la sección de incumplimientos, se describe qué regla no se cumplió y el ID del activo del plan de Terraform que incumplió la regla.

    • Si la compilación falla, se mostrará un informe de resumen de errores.
  3. Soluciona los incumplimientos en tu código de Terraform antes de aplicarlo.

¿Qué sigue?