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 del proyecto de Jenkins. La validación de la IaC te permite determinar si tus definiciones de recursos de Terraform incumplirá las políticas existentes de la organización y 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 IaC, consulta Valida tu IaC con tu de la organización de Google Cloud políticas.

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

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 se activa en el a nivel de la organización.

La activación de Security Command Center habilita el securityposture.googleapis.com y APIs de securitycentermanagement.googleapis.com.

Crea una cuenta de servicio

Crea una cuenta de servicio que puedas usar para la seguridad del código de análisis de Google 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 obtener más información sobre los permisos de validación de IaC, consulta IAM para el nivel de organización activaciones.

Define tus políticas

Define las políticas de la organización y los detectores de Security Health Analytics. Para definir estas políticas con una postura de seguridad, completa las tareas de Crear y implementar un postura de seguridad en la nube.

Instalar y configurar el complemento

  1. En la consola de Jenkins, haz clic en Manage Jenkins > Administra complementos.
  2. En la pestaña Available, busca google-analyze-code-security.
  3. Completa los pasos de instalación.
  4. Haz clic en Administrar Jenkins > Configurar el sistema
  5. En la sección Google Analyze Code Security, haz clic en Add Credencial.
  6. En ID de la organización, ingresa el ID de la organización para el ID de Google Cloud. organización que incluya 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 tu archivo JSON de Terraform plan

  1. Crea tu código de Terraform. Para obtener instrucciones, consulta Crea tu propia infraestructura automático.

  2. Instala el complemento de Terraform para Jenkins.

  3. En la consola de Jenkins, en tu proyecto de estilo libre de Jenkins, dirígete a Página Configuración

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

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

  6. Haz clic en Build steps.

  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 plan de Terraform. . Por ejemplo, myplan.tfplan

    3. Convierte el archivo del plan al formato JSON:

      terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
      

      Reemplaza TF_PLAN_JSON_FILE por el nombre de Terraform plan, 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, dirígete a Página Configuración
  2. En Pasos de compilación, haz clic en Agregar paso de compilación > Realiza el análisis de código durante Compilación
  3. Ingresa el ID de tu organización.
  4. Proporciona la ruta de acceso al archivo terraform plan, en formato JSON.
  5. Configura los criterios de error de compilación (opcional). Los criterios de fracaso se basan en la cantidad de problemas críticos, de gravedad alta, media y baja que la IaC de análisis de validación. Puedes especificar la cantidad de problemas de cada gravedad están permitidos y cómo se agregan los problemas (ya sea Y o O).

    1. Haz clic en Error en incumplimiento de activo.

    2. Si deseas que la compilación falle solo si el recuento de problemas de todas se alcanza el nivel de gravedad, selecciona Y. Si quieres que la compilación falle Si se alcanza la cantidad de problemas de cualquier nivel de gravedad, selecciona O. Por ejemplo, si quieres que la compilación falle si encuentra una problema o un problema 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 quieres especificar un criterio de error, selecciona Ignorar recurso. Incumplimiento.

  6. Haz clic en Guardar.

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

Revisa el informe de incumplimiento de la 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 ejecuta el complemento, el informe de incumplimiento (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

    En el informe, se agrupan los incumplimientos por gravedad. En la sección de incumplimientos, se describe qué regla no se cumplió y el ID del recurso del plan de Terraform que infringió la regla.

    • Si la compilación falló, se mostrará un informe de resumen de errores.
  3. Resuelve cualquier incumplimiento en tu código de Terraform antes de aplicarlo.

¿Qué sigue?