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 abilitare 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 abilitare 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 per 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 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, poi 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 collegate mostrano i risultati della valutazione delle norme dello scanner CI/CD.
    • Registry
      • 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 questo criterio. 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 norme, 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, vedi 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 di 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 dell'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 questo criterio. 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 di policy è un insieme di criteri che determina quali vulnerabilità e pacchetti sono consentiti nel tuo ambiente. Una regola di policy include quanto segue:
    • Soglia di gravità: imposta il livello di gravità minimo affinché una vulnerabilità venga inclusa nella valutazione delle policy. Le vulnerabilità devono soddisfare o superare questa soglia per essere incluse.

      Ad esempio, la configurazione della regola su Media include tutte le vulnerabilità Medie, Alte e Critiche nella valutazione.

    • 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à scegliendo come target tutte le vulnerabilità o solo quelle correggibili.
    • Eccezioni e limitazioni: queste sezioni ti consentono di creare permessi o blocchi specifici che sostituiscono la norma generale.
      • CVE esenti: specifica le CVE ritenute accettabili nel tuo ambiente per una durata specificata. Ciò è utile per implementare soluzioni alternative 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 l'esito negativo della policy. È 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 che vuoi 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 criteri

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 norma

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 creato un nuovo criterio se quello specificato 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

Protezione artefatti 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 norma

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 policy 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 valore 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 esempio di file di policy di protezione artefatti:

  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. Sono supportate solo le policy nella località global.
  • organizations/123/locations/global
  • projects/123/locations/global
ID policy Un identificatore univoco per il criterio. 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 il criterio. No Fino a 63 caratteri. È consigliabile che sia univoco. My vulnerability policy
Descrizione Una descrizione del criterio. No Fino a 2048 caratteri. Checks for critical vulnerabilities.
Tipo di policy Il tipo di policy da definire. È supportato solo vulnerability_policy. vulnerability_policy
Stato di abilitazione Lo stato di abilitazione della policy. 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. Fino a 100 voci. Ogni ID deve essere nel formato CVE-YYYY-NNNN. La scadenza del periodo di tolleranza, se specificata, 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. 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. Fino a 100 voci. I nomi dei pacchetti non possono essere vuoti. Non può entrare in conflitto con restrictedPackages. - name: nginx
version: 1.0
- name: python
version: 3.12.4
restrictedPackages Elenco dei pacchetti esplicitamente non consentiti. Fino a 100 voci. I nomi dei pacchetti non possono essere vuoti. Non può entrare 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. 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. 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 norma. No Almeno 1 voce. Ogni ID deve essere un ID progetto Google Cloud valido. projects/123, projects/456
garRepositoryNamePatterns Elenco di Google Cloud pattern di nomi di 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. 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 nel tuo 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à. Deve essere selezionato a livello di organizzazione. projects/my-gke-deployment-123
gkeClusterNames Cluster GKE specifici per i quali è necessario valutare il criterio. 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 delle norme

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

Errori comuni

La seguente tabella descrive alcuni errori comuni e come risolverli.

Suggerimento per il messaggio di errore Causa Risoluzione
parent is required Il campo principale non è presente nella richiesta. Fornisci un genitore 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.
La descrizione ha una lunghezza massima di… La descrizione supera i 2048 caratteri. Abbrevia la descrizione a un massimo di 2048 caratteri.
Il tipo di policy è obbligatorio Il tipo di norma (ad esempio, vulnerabilityPolicy) è mancante 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. Rimuovila 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… Un ID connettore non è nel formato 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 dei repository Google Cloud Artifact Registry.
L'ID progetto deve essere un ID progetto Google Cloud valido… È stato fornito un ID progetto non valido in un ambito di registro o runtime. Fornisci ID progetto Google Cloud validi.
deve essere specificata un'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 i criteri inutilizzati prima di crearne di nuovi.
number of vulnerability policies ... exceeds the limit... Hai raggiunto il numero massimo di norme sulle vulnerabilità (500). Elimina le norme 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 verificarsi problemi con il piano di controlloGoogle Cloud sottostante. Questi problemi possono influire sulle richieste API, sulle operazioni a lunga esecuzione e sugli stati delle risorse, in genere visualizzati come codici di errore specifici o comportamenti insoliti.

Problema Sintomo/i Come risolvere il problema
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: questo problema si verifica in genere 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 chi effettua la chiamata 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 riesce 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 Google Cloud dashboard dello stato per eventuali incidenti in corso o contatta l' Google Cloud assistenza.