Configuração da integração com CI/CD do GitLab

Este exemplo utiliza uma imagem de verificação específica, com bancos de dados de vulnerabilidades integrados, armazenada no registro de imagens fornecido pelo fornecedor do Kaspersky Container Security.

Para usar o recurso de verificação de imagens no processo de CI/CD do GitLab, ative o uso do GitLab Container Registry.

As configurações de integração incluem os seguintes passos:

  1. Autorização de CI/CD do GitLab no registro de imagens do fabricante do Kaspersky Container Security.
    1. Na estação de trabalho do operador do cluster, prepare um hash codificado em Base64 dos dados de autorização executando o seguinte comando:

      printf "login:password" | openssl base64 -A

      em que login e senha são o nome de usuário e a senha de uma conta no registro de imagens do fabricante do Kaspersky Container Security.

    2. Nas variáveis de ambiente de CI/CD do GitLab, crie a variável DOCKER_AUTH_CONFIG (no repositório do GitLab, selecione Configurações → CI/CD, clique no botão Expandir para expandir Variáveis e, então, no botão Adicionar variável).
    3. Especifique a variável no seguinte formato:

      {

      "auths": {

      "repo.cloud.example.com": {

      "auth": "base64hash"

      }

      }

      }

      em que base64hash é a string obtida no passo 1a.

  2. Autorização de solicitações do CI/CD do GitLab ao enviar dados para o Kaspersky Container Security.
    1. Copie o token de API na página My profile.
    2. Especifique o valor do token de API copiado na variável API_TOKEN do arquivo de configuração .gitlab-ci.yml.
  3. Inclusão da etapa de verificação de imagens ao processo de CI/CD.

    Para incluir a verificação ao pipeline de CI/CD, adicione as seguintes linhas no arquivo .gitlab-ci.yml:

    1. Inclua informações sobre a imagem do verificador que contém bancos de dados de vulnerabilidades e outros objetos maliciosos após a etapa de compilação de código da seguinte maneira:

      scan_image:

      stage: scanner

      image:

      name: repo.cloud.example.com/repository/company/scanner:v2.1-with-db

      entrypoint: [""]

      pull_policy: always

      É recomendado indicar always no parâmetro pull_policy para receber compilações relevantes, com bancos de dados atualizados de vulnerabilidades e outros objetos maliciosos para cada verificação.

    2. Especifique a tag, o ID da compilação, o ID do pipeline e o token de API para a autorização de solicitações do verificador de CI/CD ao Kaspersky Container Security da seguinte maneira:

      SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master

      BUILD_NUMBER: ${CI_JOB_ID}

      BUILD_PIPELINE: ${CI_PIPELINE_ID}

      API_TOKEN: <valor do token de API>

      Este exemplo contém a tag master. Também é possível especificar outras tags.

    3. Ao configurar a verificação para um repositório privado, defina os dados de autorização para garantir que o verificador possa acessar uma imagem. Os dados de autorização podem ser definidos como variáveis.

      COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}

      COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}

    4. Para usar um certificado para conexão segura com o registro, especifique os dados do certificado na variável de ambiente COMPANY_EXT_REGISTRY_TLS_CERT como uma string no formato .PEM:

      -----BEGIN CERTIFICATE-----\n... <detalhes do certificado> ...\n-----END CERTIFICATE-----.

    5. Especifique os seguintes parâmetros de comunicação usando um servidor proxy:

      HTTP_PROXY: <servidor proxy para solicitações HTTP>

      HTTPS_PROXY: <servidor proxy para solicitações HTTPS>

      NO_PROXY: <domínios ou máscaras de domínio correspondentes a serem excluídos do proxy>

    6. Se necessário, especifique uma variável para verificar o servidor de recebimento de dados em CI/CD usando o certificado CA no controlador Ingress:

      API_CA_CERT: ${KCS_CA_CERT}

      O certificado CA do controlador Ingress é especificado no campo de texto como uma string no formato .PEM:

      ----- BEGIN CERTIFICATE ----- \ n... <detalhes do certificado> ...\ n ----- END CERTIFICATE -----

      Se a variável API_CA_CERT não for definida, a verificação começará, mas não será concluída.

      O uso do certificado CA do controlador Ingress permite que o verificador sendo executado no CI/CD confirme a autenticidade do servidor de recebimento de dados.

      Caso use um certificado autoassinado ou deseje pular a verificação do servidor de recebimento de dados usando o certificado CA do controlador Ingress, especifique o valor da variável para ignorar a verificação da seguinte maneira:

      SKIP_API_SERVER_VALIDATION: 'true'

    7. Especifique o endereço da Web do servidor host da API para o Kaspersky Container Security:

      API_BASE_URL: <endereço da Web>

      variables:

      API_BASE_URL: ${API_BASE_URL}

      script:

      - /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json

      artifacts:

      paths:

      - artifact-result.json

Após configurar a integração com um registro externo, é possível verificar imagens durante o processo de CI/CD, inclusive verificando em modo SBOM. Os resultados de verificações podem ser visualizados em ResourcesCI/CD ou baixados nos formatos .SPDX, .JSON e .HTML.

Topo da página