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 permite determinar si las definiciones de recursos de Terraform infringen 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 Valida 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 estilo libre de Jenkins.
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 habilitarán las APIs de securityposture.googleapis.com
y securitycentermanagement.googleapis.com.
Crea una cuenta de servicio
Crea una cuenta de servicio que puedas usar para el complemento de Google Analyze Code Security para Jenkins.
-
Crea una cuenta de servicio:
-
Asegúrate de tener los roles de IAM de creador de cuentas de servicio (
roles/iam.serviceAccountCreator) y administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén más información para otorgar roles. -
En la consola de Google Cloud , ve a la página Crear cuenta de servicio.
Ve a Crear cuenta de servicio - Elige tu proyecto.
-
Escribe un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio según este nombre.
Opcional: en el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo,
Service account for quickstart. - Haz clic en Crear y continuar.
-
Otorga el rol de Validador de detección temprana de la postura de seguridad a la cuenta de servicio.
Para otorgar el rol, busca la lista Seleccionar un rol y, luego, selecciona Security Posture Shift-Left Validator.
- Haz clic en Continuar.
-
Haz clic en Listo para terminar de crear la cuenta de servicio.
No cierres la ventana del navegador, ya que La usarás en la próxima tarea.
-
Asegúrate de tener los roles de IAM de creador de cuentas de servicio (
-
Para crear una clave de cuenta de servicio, haz lo siguiente:
- En la consola de Google Cloud , haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
- Haz clic en Claves.
- Haz clic en Agregar clave y, luego, en Crear clave nueva.
- Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
- Haz clic en Cerrar.
Para obtener más información sobre los permisos de validación de la IaC, consulta IAM para activaciones a nivel de la organización.
Define las 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 figuran en Crea e implementa una postura.
Instala y configura el complemento
- En la consola de Jenkins, haz clic en Manage Jenkins > Manage Plugins.
- En la pestaña Available, busca google-analyze-code-security.
- Completa los pasos de instalación.
- Haz clic en Administrar Jenkins > Configurar sistema.
- En la sección Google Analyze Code Security, haz clic en Agregar credencial.
- En ID de organización, ingresa el ID de la organización de Google Cloudque incluye los recursos de Terraform que deseas crear o modificar.
- En Credencial de Security Command Center, agrega la clave de la cuenta de servicio.
- Prueba la conexión para verificar las credenciales de la cuenta de servicio.
- Haz clic en Guardar.
Crea tu archivo JSON del plan de Terraform
Crea tu código de Terraform. Para obtener instrucciones, consulta Crea tu código de Terraform.
Instala el complemento de Terraform para Jenkins.
En la consola de Jenkins, en tu proyecto de formato libre de Jenkins, ve a la página Configuration.
Haz clic en Administración del código fuente.
En URL del repositorio, ingresa la URL del código de Terraform que creaste.
Haz clic en Build steps.
Agrega los siguientes pasos:
Inicializa Terraform mediante este comando:
terraform initCrea un archivo de plan de Terraform.
terraform plan -out=TF_PLAN_FILEReemplaza
TF_PLAN_FILEpor el nombre del archivo del plan de Terraform. Por ejemplo,myplan.tfplanConvierte tu archivo de plan al formato JSON:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILEReemplaza
TF_PLAN_JSON_FILEpor el nombre del archivo de plan de Terraform, en formato JSON. Por ejemplo,mytfplan.json
Agrega el complemento a tu proyecto de Jenkins
- En la consola de Jenkins, en tu proyecto de formato libre de Jenkins, ve a la página Configuration.
- En Build Steps, haz clic en Add build step > Perform Code Scan during Build.
- Ingresa el ID de tu organización.
- Proporciona la ruta de acceso a tu archivo de plan de Terraform en formato JSON.
Opcional: Establece los criterios de falla de la compilación. Los criterios de falla se basan en la cantidad de problemas de gravedad crítica, alta, media y baja que encuentra el análisis de validación de la IaC. Puedes especificar cuántos problemas de cada gravedad se permiten y cómo se agregan (con AND o OR).
Haz clic en Fail on Asset Violation.
Si quieres que la compilación falle solo si se alcanza el recuento de problemas de todos los niveles de gravedad, selecciona AND. Si quieres que la compilación falle si se alcanza el recuento de problemas de cualquier nivel de gravedad, selecciona OR. Por ejemplo, si quieres que la compilación falle si encuentra un problema crítico o un problema de gravedad alta, establece el valor agregado en OR.
Indica la cantidad de problemas en los distintos niveles de gravedad que deseas permitir antes de que falle la compilación.
Si no quieres especificar un criterio de incumplimiento, selecciona Ignorar incumplimiento del activo.
Haz clic en Guardar.
Ahora puedes ejecutar la compilación para validar tu archivo de plan de Terraform.
Consulta el informe de incumplimiento de la IaC
En la consola de Jenkins, haz clic en el flujo de trabajo más reciente de tu compilación.
Haz clic en Estado. Los siguientes archivos HTML están disponibles como artefactos de compilación:
- Si se ejecutó el complemento, el informe de incumplimiento (
GoogleAnalyzeCodeSecurity_ViolationSummary.html)
El informe agrupa los incumplimientos por gravedad. En la sección de incumplimiento, se describe qué regla no se cumplió y el ID del activo del plan de Terraform que incumplió la regla.
- Si falló la compilación, un informe de resumen de errores
- Si se ejecutó el complemento, el informe de incumplimiento (
Resuelve los incumplimientos en tu código de Terraform antes de aplicarlo.
¿Qué sigue?
- Consulta el complemento de Google Analyze Code Security.