Controllare i costi di analisi delle vulnerabilità

L'analisi delle vulnerabilità è diventata un servizio a pagamento con la release disponibile pubblicamente di Artifact Analysis. Quando attivi l'API di scansione, la fatturazione inizia immediatamente.

Per ulteriori informazioni, consulta la pagina dei prezzi.

Best practice per mantenere i costi bassi

Quando abiliti l'API Container Scanning, ogni nuova immagine di cui esegui il push viene analizzata automaticamente. Per contenere i costi, prova a:

  • Abilita la scansione su singoli repository all'interno di un progetto.

  • Separa le immagini container che vuoi scansionare in un progetto diverso.

  • Configura un nuovo Google Cloud progetto e abilita l'API Container Scanning per il progetto. Questo progetto comporterà normali addebiti per la fatturazione per Artifact Registry. Esegui il push delle immagini che vuoi analizzare in questo progetto.

  • Aggiungi i seguenti passaggi alla tua pipeline CI/CD:

    1. Aggiungi un tag corrispondente al progetto Artifact Registry in cui è abilitato Container Scanning.

    2. Esegui il push delle immagini nel progetto.

Stima i costi di scansione

Per calcolare il costo approssimativo delle immagini in un progetto, stima il numero di immagini che invii in un periodo di tempo e moltiplica questo numero per il prezzo per scansione. Puoi farlo eseguendo uno script shell in Cloud Shell.

  1. Apri Cloud Shell nel tuo progetto.

    Apri Cloud Shell

  2. Fai clic sull'icona Apri editor e crea un nuovo file cost-estimation.sh con i seguenti contenuti:

        #!/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"
    

    Sostituisci quanto segue:

    • PRICE: il prezzo per l'analisi automatica delle vulnerabilità indicato nella sezione Prezzi.
    • PROJECT_REPOSITORY: il repository del progetto. Ad esempio, gcr.io/corp-staging.
    • START_DATE: la data di inizio del periodo da stimare, nel formato Y-m-d. Ad esempio: 2020-03-01.
    • END_DATE: la data di fine del periodo da stimare, nel formato Y-m-d. Ad esempio: 2020-03-31.
  3. Esegui lo script:

    bash cost-estimation.sh
    

    Mostra il numero totale di immagini e il costo totale stimato:

    Number of images: 53
    Estimated cost: 13.78
    

Si tratta solo di una stima, il costo effettivo potrebbe variare a causa di altri fattori, ad esempio:

  • Il push della stessa immagine in diverse località multiregionali nello stesso progetto non genera costi aggiuntivi.

  • Il push della stessa immagine in due repository diversi all'interno di due progetti diversi non genera costi aggiuntivi.

Controllare i costi attuali dell'analisi delle vulnerabilità

Puoi visualizzare queste informazioni nel report sulla fatturazione.

Passaggi successivi