Puedes usar el complemento de 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 IaC te 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 IaC, consulta Valida tu IaC en función de las políticas de tu organización. 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.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- 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 tus 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 en Crea y, luego, 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 init
Crea un archivo de plan de Terraform.
terraform plan -out=TF_PLAN_FILE
Reemplaza
TF_PLAN_FILE
por el nombre del archivo del plan de Terraform. Por ejemplo,myplan.tfplan
Convierte tu 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 del 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 IaC. Puedes especificar cuántos problemas de cada gravedad se permiten y cómo se agregan los problemas (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 deseas que la compilación falle si se alcanza el recuento de problemas de cualquier nivel de gravedad, selecciona OR. Por ejemplo, si deseas que la compilación falle si se 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 falla, 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 incumplimientos de 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 la compilación falló, 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 Google Analyze Code Security.