Configura le policy di protezione artefatti

Questo documento descrive come creare e gestire i criteri di protezione degli artefatti. Per una panoramica del servizio, consulta la panoramica di protezione artefatti.

Prima di iniziare

Prima di poter creare una policy di protezione degli artefatti, devi attivare la protezione degli artefatti in Security Command Center e ottenere il ruolo Identity and Access Management (IAM) richiesto.

Inoltre, acquisisci familiarità con i limiti di protezione artefatti.

Se prevedi di utilizzare gcloud CLI per gestire policy o connettori CI/CD, consulta i prerequisiti di gcloud CLI.

Abilita protezione artefatti

Segui i passaggi descritti in Configurare i servizi Security Command Center per attivare la protezione artefatti.

Ruolo richiesto

Per ottenere le autorizzazioni necessarie per utilizzare la protezione artefatti, chiedi all'amministratore di concederti il seguente ruolo IAM (Identity and Access Management) nel tuo progetto o nella tua organizzazione:

  • Artifact Scan Guard Evaluation Admin (roles/artifactscanguard.policyEvaluator)

Questo ruolo può essere concesso utilizzando la console Google Cloud o eseguendo il seguente comando gcloud CLI:

progetto

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/artifactscanguard.policyEvaluator"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio.

organizzazione

  gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/artifactscanguard.policyEvaluator"

Sostituisci quanto segue:

  • ORGANIZATION_ID: l'ID organizzazione.
  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio.

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Per altri ruoli di protezione artefatti, consulta Ruoli e autorizzazioni di protezione artefatti.

Prerequisiti di gcloud CLI

Per gestire le policy o i connettori CI/CD utilizzando gcloud CLI, assicurati che il tuo ambiente soddisfi i seguenti requisiti:

  • La versione di gcloud CLI è 559.0.0 o successive.
  • Il tuo progetto è impostato come progetto di configurazione.

Per aggiornare gcloud CLI e impostare il tuo progetto, esegui questi comandi:

gcloud components update --version=559.0.0
gcloud config set project PROJECT_ID

Sostituisci PROJECT_ID con l'ID progetto.

Crea un criterio

Console

Per creare una policy di protezione artefatti nella console Google Cloud :

  1. Nella console Google Cloud , vai a Sicurezza > Regole e fai clic su Crea policy di protezione degli artefatti o Crea policy.
  2. Inserisci un ID norma e una descrizione per la norma, quindi fai clic su Continua.
  3. Seleziona ambiti e azioni delle policy:
    • Piattaforma CI/CD
      • Seleziona connettori: seleziona i connettori da associare a questa policy. Lo scanner valuta questa policy per ogni build CI/CD associata ai connettori selezionati.
      • Azione relativa alle norme: seleziona l'azione da intraprendere quando le norme vengono violate.
        • Blocca le build che non rispettano la policy: se la policy non viene rispettata, la build viene bloccata.
        • Accetta build con avvisi: le pipeline di build connesse mostrano i risultati della valutazione delle norme dello scanner CI/CD.
    • Registro
      • Container Analysis Projects: questa impostazione si applica solo alle organizzazioni, non ai progetti. Aggiungi i Google Cloud progetti in cui vuoi applicare questa policy.
      • Repository Artifact Registry: seleziona i repository a cui vuoi applicare questa policy. Questi devono essere repository Artifact Registry validi. Se lasciato vuoto, protezione artefatti applica il criterio a tutti i repository.
      • Azione relativa alle norme: seleziona l'azione da intraprendere quando le norme vengono violate.
        • Solo controllo: Protezione artefatti valuta la policy e registra eventuali violazioni a scopo di controllo senza bloccare la risorsa.
        • Controllo dell'ammissione: se si verifica una violazione durante la valutazione delle policy, il controllo dell'ammissione impedisce il deployment della risorsa.
          • Imposta le policy di Autorizzazione binaria in modalità dry run: per saperne di più sulla modalità dry run, consulta Attivare la modalità dry run.
          • Progetti di autorizzazione binaria: questa impostazione si applica solo alle organizzazioni, non ai progetti. Aggiungi i Google Cloud progetti in cui vuoi applicare il controllo dell'ammissione.
          • Cluster GKE: se lasciato vuoto, il controllo dell'ammissione si applica a tutti i cluster GKE.
          • Esegui l'override delle policy di Autorizzazione binaria: seleziona questa casella di controllo per aggiornare la policy di Autorizzazione binaria per il controllo di ammissione.
    • Runtime
      • Progetti runtime: questa impostazione si applica solo alle organizzazioni, non ai progetti. Aggiungi progetti di runtime che contengono cluster GKE.
      • Cluster GKE: seleziona i cluster GKE in cui vuoi applicare questa policy. Se viene lasciato vuoto, protezione artefatti applica il criterio a tutti i cluster GKE nei progetti selezionati.
  4. Definisci la regola della policy. Una regola dei criteri è un insieme di criteri che determina quali vulnerabilità e pacchetti sono consentiti nel tuo ambiente. Una regola dei criteri include quanto segue:
    • Soglia di gravità: imposta il livello di gravità minimo affinché una vulnerabilità venga inclusa nella valutazione delle norme. Le vulnerabilità devono soddisfare o superare questa soglia per essere incluse.

      Ad esempio, se configuri la regola su Media, nell'analisi vengono incluse tutte le vulnerabilità Medie, Alte e Critiche.

    • Soglia del conteggio delle vulnerabilità: imposta il numero massimo di vulnerabilità consentite dopo l'applicazione di altri filtri dei criteri. La norma viene violata solo se il conteggio di queste vulnerabilità specifiche filtrate supera il limite.

      Ad esempio, se imposti una soglia di gravità Alta, escludi le vulnerabilità con correzioni non disponibili e imposti una soglia di conteggio di cinque, una build non riesce se contiene più di cinque vulnerabilità correggibili classificate come Alta o Critica.

    • Stato della vulnerabilità: specifica se includere solo le vulnerabilità per le quali è disponibile una correzione. Ciò consente la correzione con priorità prendendo di mira tutte le vulnerabilità o solo quelle correggibili.
    • Eccezioni e limitazioni: queste sezioni ti consentono di creare permessi o blocchi specifici che sostituiscono le norme generali.
      • CVE esenti: specifica le CVE ritenute accettabili nel tuo ambiente per una durata specificata. Questa opzione è utile per implementare soluzioni temporanee. Puoi impostare una data di scadenza per queste eccezioni. Dopo questa data, la vulnerabilità non è più consentita e causa l'esito negativo della policy.
      • CVE limitate: specifica le CVE da bloccare sempre, indipendentemente dalla loro classificazione di gravità. Ciò è particolarmente utile per indicare le vulnerabilità che presentano un rischio unico per la tua applicazione o infrastruttura specifica.
      • Pacchetti consentiti: elenca i pacchetti considerati sicuri. È possibile definire la versione del pacchetto; in caso contrario, sono consentite tutte le versioni.
      • Pacchetti limitati: elenca i pacchetti da limitare. I pacchetti limitati causano il mancato rispetto delle norme. È possibile definire la versione del pacchetto; in caso contrario, tutte le versioni sono limitate.
  5. Fai clic su Crea.

Le policy di protezione artefatti disponibili sono elencate nella tabella nella pagina Regole.

gcloud CLI

Per creare una policy utilizzando gcloud CLI, esegui questo comando:

gcloud alpha scc artifact-guard policies create \
    (POLICY_ID --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    --policy-file-path=PATH_TO_FILE

Sostituisci quanto segue:

  • POLICY_ID: Un identificatore per la policy (ad esempio, my-policy).
  • LOCATION: la posizione di Security Command Center in cui sono archiviati i dati. È supportato solo global.
  • ORGANIZATION_ID: l'ID organizzazione.
  • PROJECT_NUMBER: il numero di progetto numerico.
  • PATH_TO_FILE: il percorso locale del documento YAML contenente la definizione della policy. Per informazioni dettagliate sulla struttura del file YAML, consulta la sezione File YAML di questo documento.

Aggiornamento di un criterio

Console

Per aggiornare una policy di protezione artefatti nella console Google Cloud :

  1. Nella console Google Cloud , vai a Sicurezza > Regole.
  2. Nella tabella delle regole, fai clic sul nome della norma da modificare.
  3. Nella pagina dei dettagli della policy, fai clic su Modifica o modifica i campi che vuoi aggiornare, ad esempio ambito, regole di vulnerabilità o stato di attivazione.
  4. Fai clic su Salva o Aggiorna.

gcloud CLI

Per visualizzare le policy esistenti e aggiornarle utilizzando gcloud CLI, utilizza i seguenti comandi:

Elenca le policy

gcloud alpha scc artifact-guard policies list PARENT

Sostituisci quanto segue:

PARENT: Un'organizzazione o un progetto. I formati accettabili per la risorsa padre includono:
  • organizations/ORGANIZATION_ID/locations/LOCATION
  • projects/PROJECT_NUMBER/locations/LOCATION

Descrivere una policy

gcloud alpha scc artifact-guard policies describe \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER))

Sostituisci quanto segue:

POLICY: l'identificatore completo della policy, in uno dei seguenti formati:
  • organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_ID
  • projects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_ID
  • POLICY_ID --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)

Aggiornamento di un criterio

gcloud alpha scc artifact-guard policies update \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    --policy-file-path=PATH_TO_FILE [--allow-missing] \
    [--update-mask=UPDATE_MASK]

--allow_missing è un flag facoltativo. Quando questo flag è incluso, viene creata una nuova policy se quella specificata non esiste.

Sostituisci quanto segue:

UPDATE-MASK: un elenco separato da virgole dei campi da aggiornare. Una stringa vuota o * indica un aggiornamento completo delle norme. I campi validi per la maschera di aggiornamento includono i seguenti:
  • display_name
  • description
  • scope
  • enablement_state
  • vulnerability_policy
  • annotations

Convalida delle norme

Artifact Guard convalida le definizioni delle policy quando crei o aggiorni le policy. Se la convalida non va a buon fine, la protezione artefatti rifiuta la richiesta e fornisce un messaggio di errore dettagliato.

Eliminare una policy

Console

Per eliminare una policy di protezione artefatti nella console Google Cloud :

  1. Nella console Google Cloud , vai a Sicurezza > Regole.
  2. Nella tabella delle regole, fai clic su accanto alla norma che vuoi eliminare e seleziona Elimina.
  3. Segui le istruzioni di conferma per eliminare la norma. Fai clic su Annulla per interrompere.

gcloud CLI

Per eliminare una policy utilizzando gcloud CLI, esegui il seguente comando:

gcloud alpha scc artifact-guard policies delete \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    [--etag=ETAG]

Sostituisci quanto segue:

ETAG: un tag di entità facoltativo utilizzato per controllo della contemporaneità. Se fornisci un valore, la richiesta procede solo se il etag della risorsa corrisponde.

File YAML

Quando utilizzi gcloud CLI per creare o gestire una policy di protezione artefatti, il file YAML deve seguire questo modello:

  displayName: <Human-readable display name for the policy>
  description: <Description of the policy>

  vulnerabilityPolicy: # (at least one of these rules must be defined)
    exemptedCves:
      - id: <cve-id-1>
        gracePeriodExpirationTime: <optional-grace-period-expiration-time>
      - id: <cve-id-2>
        gracePeriodExpirationTime: <optional-grace-period-expiration-time>

    maxAllowedSeverity: <The maximum severity allowed in the detected
    vulnerabilities. The severity values can be LOW, MEDIUM, HIGH, CRITICAL>

    maximumAllowedVulnerabilities: <The maximum number of vulnerabilities that
    can be detected>

    excludeUnfixable: <Whether to exclude the vulnerabilities without an
    available fix from the purview of the policy evaluation>

    restrictedCves:
      - <restricted-cve-id-1>
      - <restricted-cve-id-2>

    allowedPackages:
      - name: <allowed_package_name_1>
        version: <optional_version_of_allowed_package_1. If unspecified, all the
        versions of the package are allowed>
      - name: <allowed_package_name_2>
        version: <optional_version_of_allowed_package_2>

    restrictedPackages:
      - name: <restricted_package_name_1>
        version: <optional_version_of_restricted_package_1. If unspecified, all
        the versions of the package are restricted>
      - name: <restricted_package_name_2>
        version: <optional_version_of_restricted_package_2>

  scope:
    pipeline:
      connectorIds:
        - <connector_id_1>
        - <connector_id_2>
      enforcementAction: <action to take in case the policy evaluation fails.
      The supported values are AUDIT_ONLY or BLOCK_BUILD>

    registry:
      projectIds:
        - <project_id_1>
      garRepositoryNamePatterns:
        - <repository_name_pattern_1>
      imageNamePatterns:
        - <image_name_pattern_1>
      enforcementAction: <AUDIT_ONLY or ADMISSION_CONTROL>
      admissionControl:
        deploymentProjectIds:
          - <project_id_1>
        gkeClusterNames:
          - <cluster_name_1>
        dryRun: <bool>
        overrideBinauthzPolicy: <bool>

    runtime:
        deploymentProjectIds:
          - <project_id_1>
        gkeClusterNames:
          - <cluster_name_1>
        dryRun: <bool>
        overrideBinauthzPolicy: <bool>
        enforcementAction: <AUDIT_ONLY or BLOCK_DEPLOYMENT>

  enablementState: <The enablement state of the policy. The supported values are
  ACTIVE, INACTIVE>

Di seguito è riportato un file di policy di protezione artefatti di esempio:

  displayName: 'A sample policy'
  description: Vulnerability Policy
  vulnerabilityPolicy:
    exemptedCves:
      - id: CVE-2022-40897
        gracePeriodExpirationTime: '2026-09-10T18:58:08Z'
      - id: CVE-2024-6345
    maxAllowedSeverity: MEDIUM
    maximumAllowedVulnerabilities: 5
    excludeUnfixable: true
    restrictedCves:
      - CVE-2013-4392
      - CVE-2024-4143
    allowedPackages:
      - name: systemd
        version: '257.7'
      - name: util-linux
    restrictedPackages:
      - name: ncurses
        version: 6.5+20250216
      - name: setuptools
  scope:
    pipeline:
      connectorIds:
        - organizations/123/locations/global/connectors/demoConnector
      enforcementAction: BLOCK_BUILD
    registry:
      projectIds:
        - projects/my-registry-project-id
        - projects/another-registry-project
      garRepositoryNamePatterns:
        - us-west1-docker.pkg.dev/my-registry-project-id/my-repo
        - gcr.io/team-a/internal-artifacts
      imageNamePatterns:
        - my-repo/service-a:.*
        - my-repo/service-b:v1\..*
      enforcementAction: ADMISSION_CONTROL
      admissionControl:
        deploymentProjectIds:
          - projects/my-deployment-project
        gkeClusterNames:
          - //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-a
          - //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-b
        dryRun: true
        overrideBinauthzPolicy: true
    runtime:
      deploymentProjectIds:
        - projects/my-deployment-project
      gkeClusterNames:
        - //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-a
        - //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-b
      dryRun: false
      overrideBinauthzPolicy: false
      enforcementAction: BLOCK_DEPLOYMENT
  enablementState: ACTIVE

Risoluzione dei problemi

Questa sezione descrive i campi delle norme di protezione artefatti e gli errori comuni con le relative soluzioni.

Campi delle norme generali

Nome Descrizione Obbligatorio Vincoli Valori di esempio
Principale Definisce l'ambito di applicazione della policy. Sì Sono supportate solo le policy nella località global.
  • organizations/123/locations/global
  • projects/123/locations/global
ID policy Un identificatore univoco del criterio. Sì Fino a 100 caratteri. Deve iniziare con una lettera, terminare con un carattere alfanumerico e contenere solo lettere, numeri, trattini o trattini bassi. my-policy-1
Nome visualizzato Un nome leggibile per la policy. No Fino a 63 caratteri. È consigliabile che sia univoco. My vulnerability policy
Descrizione Una descrizione della norma. No Fino a 2048 caratteri. Checks for critical vulnerabilities.
Tipo di policy Il tipo di policy da definire. Sì È supportato solo vulnerability_policy. vulnerability_policy
Stato di abilitazione Lo stato di abilitazione della policy. Sì Deve essere ACTIVE o INACTIVE. ACTIVE

Norme relative alle vulnerabilità

Nome Descrizione Multivalore Vincoli Valori di esempio
maximumAllowedVulnerabilities Numero massimo di vulnerabilità consentite prima della violazione della policy. No Se impostato, deve essere un numero non negativo. 10
maxAllowedSeverity Gravità massima delle vulnerabilità consentite dalla policy. No Deve essere LOW, MEDIUM, HIGH o CRITICAL.
exemptedCves Elenco delle CVE esenti da questa policy. Sì Fino a 100 voci. Ogni ID deve essere nel formato CVE-YYYY-NNNN. La scadenza del periodo di tolleranza, se fornita, deve essere un timestamp valido. Non può sovrapporsi a restrictedCves. - id: CVE-2024-12345
gracePeriodExpirationTime: 2027-01-01T00:00:00Z
- id: CVE-2025-4000
restrictedCves Elenco delle CVE esplicitamente non consentite da questa policy. Sì Fino a 100 voci. Ogni ID deve essere nel formato CVE-YYYY-NNNN. Non può sovrapporsi a exemptedCves. - CVE-2024-54321
- CVE-2025-5001
allowedPackages Elenco dei pacchetti consentiti, che potrebbero ignorare altre regole. Sì Fino a 100 voci. I nomi dei pacchetti non possono essere vuoti. Non può essere in conflitto con restrictedPackages. - name: nginx
version: 1.0
- name: python
version: 3.12.4
restrictedPackages Elenco dei pacchetti esplicitamente non consentiti. Sì Fino a 100 voci. I nomi dei pacchetti non possono essere vuoti. Non può essere in conflitto con allowedPackages. - name: npm
version: 9.0.0
excludeUnfixable Se escludere le vulnerabilità per le quali non è disponibile alcuna correzione. No Valore booleano. Il valore predefinito è false. true
exemptionDaysPostDisclosure Numero di giorni per esentare le vulnerabilità dopo la data di divulgazione. No Se impostato, deve essere un numero non negativo. Il valore predefinito è 0. 30

Ambito delle policy

Ambito della pipeline

Nome Descrizione Obbligatorio Vincoli Valori di esempio
connectorIds Elenco degli ID connettore a cui si applica la norma durante la scansione della pipeline CI/CD. Sì Minimo 1 voce, massimo 100 voci. La tua organizzazione o il tuo progetto deve essere integrato nella scansione CI/CD. Ogni ID deve seguire il formato corretto, appartenere alla tua organizzazione o al tuo progetto e puntare a un connettore esistente.
  • organizations/123/locations/global/connectors/connector-1
  • projects/123/locations/global/connectors/connector-1
enforcementAction Azione da intraprendere in caso di violazione delle norme. Sì Deve essere AUDIT_ONLY o BLOCK_BUILD. BLOCK_BUILD

Ambito del registro

Nome Descrizione Obbligatorio Vincoli Valori di esempio
projectIds Elenco degli ID progetto a cui si applica la policy. No Minimo 1 voce. Ogni ID deve essere un ID progetto Google Cloud valido. projects/123, projects/456
garRepositoryNamePatterns Elenco dei Google Cloud pattern dei nomi dei repository Artifact Registry. No Massimo 100 voci. Deve essere un pattern di repository Google Cloud Artifact Registry valido. us-west1-docker.pkg.dev/my-project/my-repo, gcr.io/team-a/*
imageNamePatterns Pattern di espressioni regolari per i nomi completi delle immagini. No Massimo 100 voci. Deve essere un'espressione regolare valida. 'my-repo/service-a:.*', 'my-repo/service-b:v1..*'
enforcementAction L'azione da intraprendere in caso di violazione delle norme. Sì Deve essere AUDIT_ONLY o ADMISSION_CONTROL. ADMISSION_CONTROL
admissionControl Dettagli di configurazione per il controllo dell'ammissione. No Deve essere presente se enforcementAction è ADMISSION_CONTROL.

Ambito di runtime

L'ambito di runtime consente a Protezione artefatti di monitorare le immagini container in esecuzione nell'ambiente GKE. Quando applichi una policy a questo ambito, i risultati delle vulnerabilità di Security Command Center includono i metadati della policy per le immagini di cui è stato eseguito il deployment nei progetti o nei cluster specificati.

Nome Descrizione Obbligatorio Vincoli Valori di esempio
projectIds Elenco degli ID progetto in cui sono stati deployati i cluster GKE ed è abilitata la valutazione delle vulnerabilità. Sì Deve essere selezionato a livello di organizzazione. projects/my-gke-deployment-123
gkeClusterNames Cluster GKE specifici per i quali deve essere valutata la policy. No Può essere selezionato a livello di organizzazione o progetto. projects/prod-env/locations/us-central1/clusters/main-cluster

Se un'immagine container in esecuzione in un cluster GKE monitorato viola una policy, i metadati ArtifactGuardPolicies vengono aggiunti al messaggio del risultato di vulnerabilità di Security Command Center, come segue:

```none // Added to the SCC 'message Finding' ArtifactGuardPolicies artifact_guard_policies = X;

message ArtifactGuardPolicies { string resource_id = 1; // e.g., //us-docker.pkg.dev/google-samples/containers/gke/security/… repeated Policy failing_policies = 2; }

message Policy { enum Type { TYPE_UNSPECIFIED = 0; VULNERABILITY = 1; } Type type = 1; string policy_id = 2; // e.g., organizations/3392779/locations/global/policies/prod-policy string failure_reason = 3; // e.g., severity=HIGH AND max_vuln_count=2 } ```

Provvedimento

Per le azioni BLOCK_BUILD e BLOCK_DEPLOYMENT, la valutazione delle norme restituisce un'azione di applicazione consigliata. Tuttavia, devi configurare l'applicazione effettiva nella configurazione della pipeline utilizzando questo consiglio.

Eliminazione del criterio

Se ricevi l'errore FAILED_PRECONDITION, significa che stai tentando di eliminare una policy attiva. Per eliminare la policy, devi prima impostare il relativo stato su Inactive.

Errori comuni

La tabella seguente illustra alcuni errori comuni e come risolverli.

Suggerimento per il messaggio di errore Causa Risoluzione
parent è obbligatorio Il campo principale non è presente nella richiesta. Fornisci un partner principale valido in uno dei seguenti formati:
  • organizations/{org_id}/locations/global
  • parents/{project_number}/locations/global
è necessaria la definizione delle norme L'oggetto policy non è presente nella richiesta. Fornisci un oggetto policy valido nella richiesta.
Il nome visualizzato ha una lunghezza massima di… Il nome visualizzato supera i 63 caratteri. Abbrevia il nome visualizzato a un massimo di 63 caratteri.
description has a maximum length of… La descrizione supera i 2048 caratteri. Abbrevia la descrizione a un massimo di 2048 caratteri.
Il tipo di policy è obbligatorio Il tipo di policy (ad esempio vulnerabilityPolicy) non è presente nella richiesta. Aggiungi un vulnerabilityPolicy o un altro tipo di norma alla tua norma.
enablement state is invalid È stato utilizzato uno stato di attivazione non valido o deprecato. Utilizza ACTIVE o INACTIVE.
L'ambito è obbligatorio Non è stato definito alcun ambito (pipeline, registro o runtime). Aggiungi almeno un ambito valido alla tua policy.
Il nome CVE deve essere nel formato… Un ID CVE in exemptedCves o restrictedCves non è valido. Assicurati che tutti gli ID CVE seguano il formato CVE-YYYY-NNNN.
CVE … cannot be exempted and restricted Lo stesso ID CVE esiste sia in exemptedCves che in restrictedCves. Rimuovi la CVE da uno degli elenchi.
Il nome del pacchetto non può essere vuoto Un pacchetto in allowedPackages o restrictedPackages ha un nome vuoto. Fornisci un nome per tutti i pacchetti.
package … cannot be allowed and restricted Lo stesso pacchetto è elencato sia in allowedPackages sia in restrictedPackages. Rimuovi il pacchetto da uno degli elenchi.
Gli ID connettore sono obbligatori Il campo connectorIds non è presente in un ambito della pipeline. Fornisci almeno un ID connettore.
L'ID connettore deve essere nel formato… Il formato di un ID connettore non è corretto. Assicurati che gli ID siano in uno dei seguenti formati:
  • organizations/{org_id}/locations/global/connectors/{connector_id}
  • projects/{project_number}/locations/{location}/connectors/{connector_id}
connector ID … does not exist L'ID connettore specificato non esiste. Verifica che il connettore esista o rimuovilo dall'elenco.
Il pattern del nome del repository GAR deve essere… In un ambito del registry è stato fornito un pattern di repository non valido. Assicurati che i pattern corrispondano ai formati validi Google Cloud dei repository Artifact Registry.
project ID must be a valid GCP project ID… È stato fornito un ID progetto non valido in un ambito Registry o Runtime. Fornisci ID progetto Google Cloud validi.
deve essere specificata l'azione di applicazione enforcementAction non è presente in un ambito Pipeline o Runtime. Imposta l'azione di applicazione. Alcuni esempi includono AUDIT_ONLY, BLOCK_BUILD (solo pipeline) o BLOCK_DEPLOYMENT (solo runtime).
Il numero di policy per organizzazione supera il limite… Hai raggiunto il numero massimo di policy (1000) per la tua organizzazione. Elimina le norme inutilizzate prima di crearne di nuove.
number of vulnerability policies … exceeds the limit… Hai raggiunto il numero massimo di policy sulle vulnerabilità (500). Elimina le policy sulle vulnerabilità inutilizzate prima di crearne di nuove.
number of policies per pipeline exceeds the limit… Un connettore è associato a più di 100 policy. Riduci il numero di policy associate al connettore.
number of policy revisions … exceeds the limit… Hai aggiornato una norma più di 100 volte in 7 giorni. Attendi o riduci la frequenza di aggiornamento.

Problemi operativi comuni

Oltre agli errori di convalida dei contenuti delle norme, possono sorgere problemi con il piano di controlloGoogle Cloud sottostante. Questi problemi possono influire sulle richieste API, sulle operazioni di lunga durata e sugli stati delle risorse, in genere visualizzati come codici di errore specifici o comportamenti insoliti.

Problema Sintomo/i Come risolvere i problemi
Modifica simultanea UpdatePolicy o DeletePolicy non riesce con un codice di errore ABORTED e un messaggio "Provided etag is out of date". Risoluzione dei problemi: questo si verifica quando etag nella tua richiesta non corrisponde alla versione corrente del server delle norme, a indicare una modifica apportata da un'altra richiesta.

Soluzione: leggi di nuovo le norme per ottenere l'ultimo ETag, quindi riprova a inviare la richiesta con il nuovo ETag.
Richiesta convalidata ma non eseguita Una richiesta CreatePolicy, UpdatePolicy o DeletePolicy viene restituita correttamente, ma non osservi alcuna modifica alla risorsa. Risoluzione dei problemi: in genere questo si verifica quando nella richiesta è impostato validate_only: true. Questo flag indica al servizio di eseguire tutte le convalide senza apportare modifiche.

Risoluzione: imposta validate_only su false o ometti il campo nella richiesta.
L'aggiornamento crea un nuovo criterio Una richiesta UpdatePolicy crea una policy anziché restituire un errore "non trovato" quando la policy non esiste. Risoluzione dei problemi: questo è il comportamento previsto quando allow_missing: true è incluso in un UpdatePolicyRequest.

Risoluzione: se vuoi aggiornare solo una policy esistente, imposta allow_missing su false o ometti il campo.
Autorizzazione negata o API non abilitata Le richieste non vanno a buon fine con PERMISSION_DENIED o un messaggio di errore come "Artifact Guard API has not been used in the project before or it is disabled." Risoluzione dei problemi: l'API potrebbe essere disabilitata o il chiamante potrebbe non disporre di autorizzazioni sufficienti.

Risoluzione: nel tuo progetto Google Cloud , attiva l'API Artifact Guard (artifactscanguard.googleapis.com). Verifica che l'utente o il account di servizio che esegue l'operazione disponga dei ruoli IAM necessari.
Timeout operazione Una richiesta che restituisce un'operazione a lunga esecuzione (LRO) richiede troppo tempo per essere completata o non va a buon fine con DEADLINE_EXCEEDED. Risoluzione dei problemi: questo potrebbe indicare un rallentamento o un problema temporaneo nel servizio di backend.

Risoluzione: esegui il polling dello stato dell'operazione a lunga esecuzione. Se l'operazione non riesce o scade il timeout, riprova dopo qualche istante. Se il problema persiste, controlla la dashboard dello stato diGoogle Cloud per eventuali incidenti in corso o contatta l' Google Cloud assistenza.