Controlar os custos de verificação de vulnerabilidades

A verificação de vulnerabilidades se tornou um serviço pago com o lançamento da disponibilidade geral do Artifact Analysis. Quando você ativa a API de verificação, o faturamento começa imediatamente.

Consulte a página de preços para mais informações.

Práticas recomendadas para manter seus custos baixos

Quando você ativa a API Container Analysis, todas as novas imagens enviadas são verificadas automaticamente. Para manter seus custos baixos, tente o seguinte:

  • Ativar a verificação em repositórios únicos dentro de um projeto.

  • Separe as imagens de contêiner que você quer verificar em um projeto diferente.

  • Configure um novo projeto doGoogle Cloud e ative a API Container Scanning para ele. Esse projeto vai gerar cobranças normais para o Artifact Registry. Envie as imagens que você quer verificar para este projeto.

  • Adicione as seguintes etapas no seu pipeline de CI/CD:

    1. Adicione uma tag correspondente ao projeto do Artifact Registry em que o Container Scanning está ativado.

    2. Envie as imagens para o projeto.

Estimar seus custos de verificação

Para calcular o custo aproximado das imagens em um projeto, estime o número de imagens enviadas em um período e multiplique esse número pelo preço por verificação. Para isso, execute um script de shell no Cloud Shell.

  1. Abra um Cloud Shell no projeto.

    Abra o Cloud Shell

  2. Clique no ícone Abrir editor e crie um novo arquivo cost-estimation.sh com o seguinte conteúdo:

        #!/bin/bash
    
        # Replace with price from https://cloud.google.com/artifact-analysis/pricing
        PRICE='PRICE'
    
        # Replace with your project data
        GC_PROJECT='PROJECT_REPOSITORY'
        START_DATE='START_DATE'
        END_DATE='END_DATE'
    
        REGION=$(echo $GC_PROJECT | sed -n 's/\/.*//p')
    
        if [ -z "$REGION" ];
        then
            printf "'GC_PROJECT' value must be a valid GCR or AR repository (e.g. gcr.io/corp-staging or us-central1-docker.pkg.dev/myproj/myrepo"
            exit 1
        fi
    
        IFS=$'\n'
        FILTER="timestamp.date('%Y-%m-%d', Z)>'$START_DATE' AND timestamp.date('%Y-%m-%d', Z)<'$END_DATE'"
    
        images=$( gcloud container images list --repository="$GC_PROJECT" | sed -n "/$REGION/p" | sed 's/NAME: //' )
    
        num_images=$(echo $images | wc -w)
    
        printf "Using gcloud to filter $num_images images from $START_DATE to $END_DATE (takes about 1 second per image)\n\n"
    
        total_digests=0
    
        for image in $images; do
        printf "querying $image\n"
        image_digests=$( gcloud container images list-tags --filter="$FILTER" "$image" 2> >(sed "s/Listed 0 items.//" | sed -n "/.\+/p" >&2) | wc -l)
    
        if [[ "$image_digests" -gt 1 ]]; then
            total_digests=$(( total_digests + $image_digests - 1 ))
        fi
        done
    
        total_price=$( python -c "print($total_digests * $PRICE)" )
    
        echo ''
        echo "Number of images: $total_digests"
        echo "Estimated cost: $total_price"
    

    Substitua:

    • PRICE: o preço da verificação automática de vulnerabilidades encontrado em Preços.
    • PROJECT_REPOSITORY: o repositório do projeto. Por exemplo, gcr.io/corp-staging.
    • START_DATE: a data de início do período a ser estimado, no formato Y-m-d. Por exemplo, 2020-03-01.
    • END_DATE: a data de término do período a ser estimado, no formato Y-m-d. Por exemplo, 2020-03-31.
  3. Execute o script:

    bash cost-estimation.sh
    

    Ele mostra o número total de imagens e o custo total estimado:

    Number of images: 53
    Estimated cost: 13.78
    

Esta é apenas uma estimativa. O custo real pode mudar devido a outros fatores, por exemplo:

  • Enviar a mesma imagem para diferentes regiões do mesmo projeto não gera custos adicionais.

  • Enviar a mesma imagem para dois repositórios diferentes em dois projetos diferentes não gera custos adicionais.

Verificar os custos atuais de verificação de vulnerabilidades

Você pode ver essas informações no seu relatório de faturamento.

A seguir