Kosten für das Scannen auf Sicherheitslücken kontrollieren

Das Scannen auf Sicherheitslücken wurde mit dem Release „General Availability“ von Artefaktanalyse zum kostenpflichtigen Dienst. Wenn Sie die Scan-API aktivieren, beginnt die Abrechnung sofort.

Weitere Informationen finden Sie auf der Preisseite.

Best Practices zur Kostenkontrolle

Wenn Sie die Container Scanning API aktivieren, wird jedes neu hochgeladene Image automatisch gescannt. Sie sollten die Container-Images, die Sie scannen möchten, in einem anderen Projekt trennen, um Ihre Kosten niedrig zu halten.

  • Richten Sie ein neues Google Cloud-Projekt ein und aktivieren Sie die Container Scanning API für dieses Projekt. Für dieses Projekt fallen die normalen Kosten für Artifact Registry und Container Registry (eingestellt) an. Verschieben Sie die Images, die Sie scannen möchten, in dieses Projekt.

  • Fügen Sie der CI/CD-Pipeline die folgenden Schritte hinzu:

    1. Fügen Sie ein Tag hinzu, das dem Artifact Registry- oder Container Registry-Projekt entspricht, in dem Container Scanning aktiviert ist.

    2. Übertragen Sie die Images per Push in das Projekt.

Scankosten schätzen

Um die ungefähren Kosten für die Bilder in einem Projekt zu berechnen, schätzen Sie die Anzahl der Bilder, die Sie in einem bestimmten Zeitraum hochladen, und multiplizieren Sie diese Anzahl mit dem Preis pro Scan. Führen Sie dazu ein Shell-Script in Cloud Shell aus.

  1. Öffnen Sie eine Cloud Shell in Ihrem Projekt.

    Cloud Shell öffnen

  2. Klicken Sie auf das Symbol Editor öffnen und erstellen Sie eine neue Datei cost-estimation.sh mit folgendem Inhalt:

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

    Ersetzen Sie Folgendes:

    • PRICE: Der Preis für das automatische Scannen auf Sicherheitslücken unter Preise.
    • PROJECT_REPOSITORY: Ihr Projekt-Repository. Beispiel: gcr.io/corp-staging
    • START_DATE: das Startdatum für den zu schätzenden Zeitraum im Format Y-m-d. Beispiel: 2020-03-01
    • END_DATE: das Enddatum für den zu schätzenden Zeitraum im Format Y-m-d. Beispiel: 2020-03-31
  3. Führen Sie das Skript aus:

    bash cost-estimation.sh
    

    Es enthält die Gesamtanzahl der Images und die geschätzten Gesamtkosten:

    Number of images: 53
    Estimated cost: 13.78
    

Dies ist nur eine Schätzung. Die tatsächlichen Kosten können sich aufgrund anderer Faktoren ändern. Beispiele:

  • Das Übertragen desselben Images an verschiedene Multiregionen im selben Projekt verursacht keine zusätzlichen Kosten.

  • Das Hochladen desselben Images an zwei verschiedene Repositories in zwei verschiedenen Projekten verursacht keine zusätzlichen Kosten.

Aktuelle Kosten für das Scannen auf Sicherheitslücken prüfen

Diese Informationen finden Sie in Ihrem Abrechnungsbericht.

Nächste Schritte