Mengontrol biaya pemindaian kerentanan

Pemindaian kerentanan menjadi layanan berbayar dengan rilis ketersediaan umum Artifact Analysis. Saat Anda mengaktifkan API pemindaian, penagihan akan segera dimulai.

Lihat halaman harga untuk mengetahui informasi selengkapnya.

Praktik terbaik untuk menjaga biaya tetap rendah

Saat Anda mengaktifkan Container Scanning API, setiap image baru yang Anda kirim akan dipindai secara otomatis. Untuk menjaga biaya tetap rendah, pisahkan image container yang ingin Anda pindai ke project lain.

  • Siapkan Google Cloud project baru dan aktifkan Container Scanning API untuk project tersebut. Project ini akan dikenai biaya penagihan normal untuk Artifact Registry. Kirim gambar yang ingin Anda pindai ke project ini.

  • Tambahkan langkah-langkah berikut di pipeline CI/CD Anda:

    1. Tambahkan tag yang sesuai dengan project Artifact Registry tempat Container Scanning diaktifkan.

    2. Kirim gambar ke project.

Memperkirakan biaya pemindaian

Untuk menghitung perkiraan biaya gambar dalam project, perkirakan jumlah gambar yang Anda kirim dalam jangka waktu tertentu dan kalikan jumlah tersebut dengan harga per pemindaian. Anda dapat melakukannya dengan menjalankan skrip shell di Cloud Shell.

  1. Buka Cloud Shell di project Anda.

    Buka Cloud Shell

  2. Klik ikon Open Editor, lalu buat file baru cost-estimation.sh dengan konten berikut:

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

    Ganti kode berikut:

    • PRICE: harga untuk pemindaian kerentanan otomatis yang tercantum di Harga.
    • PROJECT_REPOSITORY: repositori project Anda. Contoh, gcr.io/corp-staging.
    • START_DATE: tanggal mulai periode yang akan diperkirakan, dalam format Y-m-d. Misalnya, 2020-03-01.
    • END_DATE: tanggal akhir periode yang akan diperkirakan, dalam format Y-m-d. Misalnya, 2020-03-31.
  3. Jalankan skrip:

    bash cost-estimation.sh
    

    Bagian ini menampilkan jumlah total gambar dan total perkiraan biaya:

    Number of images: 53
    Estimated cost: 13.78
    

Ini hanyalah estimasi, biaya sebenarnya dapat berubah karena faktor lain, misalnya:

  • Mengirimkan gambar yang sama ke beberapa multi-region yang berbeda dalam project yang sama tidak menimbulkan biaya tambahan.

  • Mengirimkan gambar yang sama ke dua repositori berbeda dalam dua project yang berbeda tidak akan menimbulkan biaya tambahan.

Memeriksa biaya pemindaian kerentanan saat ini

Anda dapat melihat informasi ini di laporan penagihan.

Langkah berikutnya