Controle os custos da análise de vulnerabilidades

A análise de vulnerabilidades tornou-se um serviço pago com o lançamento de disponibilidade geral da análise de artefactos. Quando ativa a API Scanning, a faturação começa imediatamente.

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

Práticas recomendadas para manter os custos baixos

Quando ativa a API Container Scanning, todas as novas imagens que enviar são analisadas automaticamente. Para manter os custos baixos, separe as imagens de contentores que quer analisar num projeto diferente.

  • Configure um novo Google Cloud projeto e ative a API Container Scanning para esse projeto. Este projeto vai incorrer em cobranças de faturação normais para o Artifact Registry. Envie as imagens que quer digitalizar para este projeto.

  • Adicione os seguintes passos no seu pipeline de CI/CD:

    1. Adicione uma etiqueta correspondente ao projeto do Artifact Registry onde a análise de contentores está ativada.

    2. Envie as imagens para o projeto.

Estime os custos de análise

Para calcular o custo aproximado das imagens num projeto, estime o número de imagens que envia num período e multiplique esse número pelo preço por análise. Pode fazê-lo executando um script de shell no Cloud Shell.

  1. Abra um Cloud Shell no seu projeto.

    Abra o Cloud Shell

  2. Clique no ícone Abrir editor e crie um novo ficheiro 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 o seguinte:

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

    bash cost-estimation.sh
    

    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:

  • O envio da mesma imagem para diferentes regiões múltiplas no mesmo projeto não gera custos adicionais.

  • O envio da mesma imagem para dois repositórios diferentes em dois projetos diferentes não gera custos adicionais.

Verifique os custos atuais da análise de vulnerabilidades

Pode ver estas informações no seu relatório de faturação.

O que se segue?