Configurar la integración al proceso de CI/CD de GitLab
En este ejemplo, se utiliza una imagen específica para el análisis con bases de datos de vulnerabilidades incorporadas ubicadas en el registro de imágenes del fabricante de Kaspersky Container Security.
Para usar la funcionalidad de análisis de imágenes en el proceso de CI/CD de GitLab, debe activar el uso de GitLab Container Registry.
Configurar la integración comprende los pasos siguientes:
- Autorizar la CI/CD de GitLab en el registro de imágenes del fabricante de Kaspersky Container Security:
- En la estación de trabajo del operador del clúster, debe ejecutar el siguiente comando para preparar un hash Base64 de los datos de autorización:
printf "login:password" | openssl base64 -A
donde "login" y "password" equivalen al nombre de usuario y la contraseña de la cuenta en el registro de imágenes del fabricante de Kaspersky Container Security.
- En las variables de entorno de CI/CD de GitLab, debe crear la variable DOCKER_AUTH_CONFIG (en el repositorio de GitLab, elija Configuración [Settings] → CI/CD, haga clic en el botón Expandir [Expand] para expandir Variables y luego haga clic en el botón Añadir variable [Add variable]).
- Especifique la variable de la siguiente forma:
{
"auths": {
"repo.cloud.example.com": {
"auth": "base64hash"
}
}
}
donde base64hash es la cadena obtenida en el paso 1.1.
- En la estación de trabajo del operador del clúster, debe ejecutar el siguiente comando para preparar un hash Base64 de los datos de autorización:
- Autorizar las solicitudes de CI/CD de GitLab al enviar datos a Kaspersky Container Security:
- Copie el token de la API en la página My profile.
- Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración .gitlab-ci.yml.
- Añadir la etapa de análisis de imágenes en el proceso de CI/CD
Para añadir el análisis a la canalización CI/CD, debe añadir las siguientes líneas al archivo .gitlab-ci.yml:
- Añada información sobre la imagen de análisis que contiene las bases de datos de vulnerabilidades y otros objetos maliciosos después de la etapa de compilación del código, de la siguiente forma:
scan_image:
stage: scanner
image:
name: repo.cloud.example.com/repository/company/scanner:v2.0-with-db
entrypoint: [""]
pull_policy: always
Recomendamos que siempre determine el parámetro
pull_policy
para recibir las compilaciones relevantes que contienen las bases de datos actualizadas de vulnerabilidades y otros objetos maliciosos para cada análisis. - Debe especificar la etiqueta, el ID de compilación y el token de la API para autorizar las solicitudes de análisis de CI/CD a Kaspersky Container Security de la siguiente manera:
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN:
<API token value>
En este ejemplo, verá la etiqueta
master
; también puede especificar otra etiqueta. - Si configura el análisis de un repositorio privado, debe especificar los datos de autorización para asegurarse de que Scanner pueda acceder a la imagen. Los datos para realizar la autorización pueden configurarse como variables.
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
- Para usar un certificado y establecer una conexión segura con el registro, debe especificar los datos del certificado en la variable de entorno
COMPANY_EXT_REGISTRY_TLS_CERT
como una cadena con el formato .PEM:-----BEGIN CERTIFICATE-----\n... <
datos del certificado
> ...\n-----END CERTIFICATE-----
. - Specify the following parameters of communication using a proxy server:
HTTP_PROXY
–<proxy server for HTTP requests>
HTTPS_PROXY
–<proxy server for HTTPS requests>
NO_PROXY
–<domains or appropriate domain masks to be excluded from proxying>
- De ser necesario, especifique la variable que usará para verificar el servidor de recepción de datos en CI/CD con un certificado de CA en el controlador de entrada:
API_CA_CERT: ${KCS_CA_CERT}
El certificado de CA del controlador de entrada se determina en el campo de texto como cadena con el formato .PEM:
----- BEGIN CERTIFICATE ----- \ n...
<datos del certificado>
...\ n ----- END CERTIFICATE -----Si no se configura la variable
API_CA_CERT
, el análisis comenzará, pero no podrá completarse.Usar el certificado de CA del controlador de entrada permite al componente Scanner ejecutado en CI/CD verificar la autenticidad del servidor de recepción de datos.
Si utiliza un certificado autofirmado o desea omitir la verificación del servidor de recepción de datos con el certificado de CA del controlador de entrada, debe especificar el valor de la variable para omitir la verificación:
SKIP_API_SERVER_VALIDATION: 'true'
- Especifique la dirección web del servidor host de la API de Kaspersky Container Security:
API_BASE_URL
–<web address>
variables:
API_BASE_URL: ${API_BASE_URL}
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
- Añada información sobre la imagen de análisis que contiene las bases de datos de vulnerabilidades y otros objetos maliciosos después de la etapa de compilación del código, de la siguiente forma:
Después de configurar la integración a un registro externo, podrá analizar las imágenes en el proceso de CI/CD, incluso un análisis en el modo SBOM. Puede ver los resultados de los análisis en Resources → CI/CD o puede descargarlos en formatos .SPDX, .JSON o .HTML.