Kaspersky Container Security

Configurar la integración al proceso de CI/CD de Jenkins

Configurar la integración a CI/CD de Jenkins comprende los pasos siguientes:

  1. Autorizar la CI/CD de Jenkins en el registro de imágenes del fabricante de Kaspersky Container Security. Para ello, 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 "usuario:contraseña" | openssl base64 -A

    donde "usuario" y "contraseña" equivalen al nombre de usuario y la contraseña de la cuenta en el registro de imágenes del fabricante de Kaspersky Container Security.

  2. Autorizar la API de Kaspersky Container Security. Para ello, siga los siguientes pasos:
    1. Copie el token de la API en la página My profile.
    2. Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración Jenkinsfile.
  3. Autenticar el servidor de recepción de datos en CI/CD con el certificado de CA del controlador de entrada. Para autenticarlo, en el archivo de configuración Jenkinsfile, especifique una de las siguientes variables:
    1. -e API_CA_CERT=${KCS_CA_CERT} implica la realización de la autenticación y que Scanner iniciado en CI/CD puede garantizar que el servidor de recepción es auténtico.
    2. -e SKIP_API_SERVER_VALIDATION=true implica la no realización de la autenticación del servidor de recepción con el certificado de CA del controlador de entrada.
  4. Crear las variables de entorno de Jenkins:

    Para crear las variables de entorno, añada las siguientes líneas a Jenkinsfile:

    1. Añada información sobre el registro de contenedores donde se encuentra Scanner, de la siguiente manera:

      LOGIN: nombre de la cuenta en el registro de Scanner

      PASS: contraseña del registro de Scanner

    2. Si configura el análisis de un repositorio privado, debe especificar los siguientes datos de autorización para asegurarse de que Scanner pueda acceder a una imagen:

      COMPANY_EXT_REGISTRY_USERNAME: nombre de la cuenta del registro de la imagen analizada

      COMPANY_EXT_REGISTRY_PASSWORD: contraseña del registro de la imagen analizada

    3. 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-----.

    4. Especifique las siguientes variables de la comunicación con un servidor proxy:

      HTTP_PROXY: <servidor proxy para solicitudes HTTP>

      HTTPS_PROXY: <servidor proxy para solicitudes HTTPS>

      NO_PROXY: <dominios o máscaras de dominio adecuadas que se excluirán del redireccionamiento>

  5. Añadir información para iniciar Scanner. Se añade la información para iniciar Scanner (esta contiene las bases de datos de vulnerabilidades y otros objetos maliciosos) al archivo de configuración Jenkinsfile como una canalización declarativa o de script.

    Ejemplo de la información para iniciar Scanner como una canalización declarativa

    Ejemplo de los datos para iniciar Scanner como una canalización de script

  6. Generar un artefacto para su descarga

    Puede generar un artefacto para descargar y recibir los resultados del análisis en los formatos .HTML o .JSON. Puede especificar el formato del artefacto en --stout de la siguiente manera:

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.int.company.com -e SKIP_API_SERVER_VALIDATION=true -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v2.0.1-lite jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

    stage('archive') {

    steps {

    archiveArtifacts artifacts: 'result.html'

    }

    }

    }

    }

    Para generar un artefacto .JSON, vuelva a escribir la línea --html --stdout> result.html' en el ejemplo anterior de la siguiente manera:

    --stdout > result.json',

    y en la línea archiveArtifacts artifacts, especifique el nombre del archivo en el formato definido: 'result.json'.

    Puede obtener los resultados de los análisis en el formato que especificó y también puede visualizarlos desde la sección ResourcesCI/CD.