Controlar os custos de verificação de vulnerabilidades

A verificação de vulnerabilidades se tornou um serviço pago com a versão de 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 os custos baixos, separe as imagens de contêiner que você quer verificar em um projeto diferente.

  • Configure um novo projeto do Google Cloud e ative a API Container Scanning para esse projeto. Esse projeto vai gerar cobranças normais para o Artifact Registry e o Container Registry (descontinuado). 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 ou do Container Registry em que a verificação de contêineres está ativada.

    2. Envie as imagens para o projeto.

Estime os 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.

    Abrir 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 de vulnerabilidades automática encontrada 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 estimada, 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 conferir essas informações no seu relatório de faturamento.

A seguir