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 bassi i costi

Quando abiliti l'API Container Scanning, ogni nuova immagine inviata tramite push verrà analizzata automaticamente. Per ridurre i costi, separa le immagini contenitore che vuoi eseguire la scansione in un altro progetto.

  • Configura un nuovo progetto Google Cloud e abilita l'API Container Scanning per il progetto. Per questo progetto verranno addebitati i normali addebiti di fatturazione per Artifact Registry e Container Registry (deprecato). Esegui il push delle immagini che vuoi esaminare in questo progetto.

  • Aggiungi i seguenti passaggi nella pipeline CI/CD:

    1. Aggiungi un tag corrispondente al progetto Artifact Registry o Container Registry in cui è abilitata la funzionalità 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 carichi in un determinato periodo di tempo e moltiplica questo numero per il prezzo per scansione. A tale scopo, puoi eseguire 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à disponibile in Prezzi.
    • PROJECT_REPOSITORY: il repository del progetto. Ad esempio, gcr.io/corp-staging.
    • START_DATE: la data di inizio del periodo da stimare, in formato Y-m-d. Ad esempio: 2020-03-01.
    • END_DATE: la data di fine del periodo da stimare, in formato Y-m-d. Ad esempio: 2020-03-31.
  3. Esegui lo script:

    bash cost-estimation.sh
    

    Viene mostrato 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:

  • L'invio della stessa immagine a più località a più regioni nello stesso progetto non genera costi aggiuntivi.

  • L'invio della stessa immagine a due repository diversi all'interno di due progetti diversi non genera costi aggiuntivi.

Controllare i costi attuali di analisi delle vulnerabilità

Puoi visualizzare queste informazioni nel report di fatturazione.

Passaggi successivi