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 IaC te permite determinar si tus definiciones de recursos de Terraform infringen las políticas de la organización y los detectores de Security Health Analytics que se aplican a tus recursos. Google Cloud
Para obtener más información sobre la validación de IaC, consulta el artículo Validar tu IaC con las políticas de tu Google Cloud organización.
La validación de IaC solo funciona con proyectos de estilo libre de Jenkins.
Antes de empezar
Completa estas tareas para empezar a usar la validación de IaC con Jenkins.
Activar el nivel Premium o Enterprise de Security Command Center
Comprueba que el nivel Premium o Enterprise de Security Command Center esté activado a nivel de organización.
Al activar Security Command Center, se habilitan las APIs securityposture.googleapis.com
y securitycentermanagement.googleapis.com
.
Crear una cuenta de servicio
Crea una cuenta de servicio que puedas usar para el complemento Google Analyze Code Security para Jenkins.
-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator
). Learn how to grant roles. -
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.
-
Ensure that you have the Create Service Accounts IAM role
(
-
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 Gestión de identidades y accesos para activaciones a nivel de organización.
Definir tus políticas
Define las políticas de tu organización y los detectores de Security Health Analytics. Para definir estas políticas mediante una postura de seguridad, completa las tareas que se indican en Crear e implementar una postura.
Instalar y configurar el complemento
- En la consola de Jenkins, haz clic en Manage Jenkins (Gestionar Jenkins) > Manage Plugins (Gestionar complementos).
- En la pestaña Disponible, busca google-analyze-code-security.
- Completa los pasos de la instalación.
- Haz clic en Gestionar Jenkins > Configurar sistema.
- En la sección Google Analyze Code Security (Seguridad del código de Google Analyze), haga clic en Add credential (Añadir credencial).
- En ID de organización, introduce el ID de la organización Google Cloudque incluye los recursos de Terraform que quieras crear o modificar.
- En Credencial de Security Command Center, añade 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 el archivo JSON de tu plan de Terraform
Crea tu código de Terraform. Para obtener instrucciones, consulta Crear código de Terraform.
Instala el complemento de Terraform para Jenkins.
En la consola de Jenkins, ve a la página Configuration (Configuración) de tu proyecto de estilo libre de Jenkins.
Haz clic en Gestión de código fuente.
En URL del repositorio, introduce la URL del código de Terraform que has creado.
Haz clic en Pasos de compilación.
Sigue estos pasos:
Inicializa Terraform:
terraform init
Crea un archivo de plan de Terraform.
terraform plan -out=TF_PLAN_FILE
Sustituye
TF_PLAN_FILE
por el nombre del archivo del plan de Terraform. Por ejemplo,myplan.tfplan
.Convierte el archivo de tu plan al formato JSON:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
Sustituye
TF_PLAN_JSON_FILE
por el nombre del archivo de plan de Terraform, en formato JSON. Por ejemplo,mytfplan.json
.
Añadir el complemento a tu proyecto de Jenkins
- En la consola de Jenkins, ve a la página Configuration (Configuración) de tu proyecto de estilo libre de Jenkins.
- En Pasos de compilación, haz clic en Añadir paso de compilación > Realizar análisis de código durante la compilación.
- Introduce el ID de tu organización.
- Proporciona la ruta al archivo de plan de Terraform en formato JSON.
Opcional: Define los criterios de fallo de compilación. Los criterios de fallo se basan en el número de problemas de gravedad crítica, alta, media y baja que detecta el análisis de validación de IaC. Puede especificar cuántos problemas de cada gravedad se permiten y cómo se agregan (con AND u OR).
Haz clic en Rechazar por infracción de recursos.
Si quiere que la compilación falle solo si se alcanza el recuento de problemas de todos los niveles de gravedad, seleccione Y. Si quieres que la compilación falle si se alcanza el número de problemas de cualquier nivel de gravedad, selecciona OR (O). Por ejemplo, si quieres que la compilación falle si se detecta un problema crítico o un problema de gravedad alta, define el valor agregado como OR (O).
Indica el número de problemas de los distintos niveles de gravedad que quieres permitir antes de que falle la compilación.
Si no quiere especificar ningún criterio de fallo, seleccione Ignorar infracción de recurso.
Haz clic en Guardar.
Ahora puedes ejecutar la compilación para validar el archivo de plan de Terraform.
Ver el informe de infracciones 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 el complemento se ha ejecutado, el informe de infracción (
GoogleAnalyzeCodeSecurity_ViolationSummary.html
)
El informe agrupa las infracciones por gravedad. En la sección de infracciones se describe qué regla no se ha cumplido y el ID del recurso del plan de Terraform que ha infringido la regla.
- Si la compilación ha fallado, un informe de resumen de errores
- Si el complemento se ha ejecutado, el informe de infracción (
Resuelve las infracciones en tu código de Terraform antes de aplicarlo.
Siguientes pasos
- Consulta el complemento Google Analyze Code Security.