Configura le policy di protezione artefatti

Questo documento descrive come creare e gestire i criteri di protezione degli artefatti. Per una panoramica del servizio, delle funzionalità e dei vantaggi, 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 i ruoli e le autorizzazioni Identity and Access Management (IAM) richiesti.

Dopodiché, puoi creare una policy nella consoleGoogle Cloud o utilizzando Google Cloud 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 Google Cloud CLI:

progetto

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

Sostituisci quanto segue:

  • PROJECT_ID
  • YOUR_SERVICE_ACCOUNT_EMAIL

organizzazione

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

Sostituisci quanto segue:

  • ORGANIZATION_ID
  • YOUR_SERVICE_ACCOUNT_EMAIL

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.

Crea una policy nella console Google Cloud

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 gli ambiti e le azioni della policy:

    • Piattaforma CI/CD

      • Seleziona connettori: i connettori a cui deve essere associata questa policy. Questa policy verrà valutata per ogni build CI/CD associata ai connettori selezionati.
      • Azione relativa alle norme: seleziona l'azione da intraprendere in caso di violazione delle norme.
        • Blocca le build che non rispettano la policy
        • Accetta build con avvisi: i risultati della valutazione delle norme dello scanner CI/CD vengono visualizzati nelle pipeline di build connesse.
    • Registry

      • Container Analysis: questo vale solo per le organizzazioni, non per i progetti. Aggiungi i Google Cloud progetti a cui vuoi applicare questa policy.
      • Repository Artifact Registry: seleziona i repository a cui vuoi che venga applicata questa policy. Devono essere repository Artifact Registry validi. Se lasciato vuoto, il criterio verrà applicato a tutti i repository.
      • Azione relativa alle norme: seleziona l'azione da intraprendere in caso di violazione delle norme.
        • Solo controllo: la policy viene valutata e le eventuali violazioni vengono registrate a scopo di controllo senza bloccare la risorsa. Per visualizzare eventuali violazioni, devi chiamare l'API utilizzando ListArtifactPoliciesEvaluations e GetArtifactPoliciesEvaluation.
        • Controllo dell'ammissione: se si verifica una violazione durante la valutazione del criterio, la risorsa non può procedere.
          • Imposta le policy di Autorizzazione binaria in modalità dry run: per saperne di più, consulta Attivare la modalità dry run.
          • Progetti di Autorizzazione binaria: questo si applica solo alle organizzazioni, non ai progetti. Aggiungi i progetti Google Cloud a cui vuoi applicare il controllo degli accessi.
          • Cluster GKE: se lasciato vuoto, il controllo dell'ammissione viene applicato a tutti i cluster GKE.
          • Esegui l'override delle policy di Autorizzazione binaria: questa casella di controllo deve essere selezionata per aggiornare la policy di Autorizzazione binaria per il controllo di ammissione.
    • Tempo di esecuzione

      • Progetti runtime: questa opzione è applicabile solo alle organizzazioni, non ai progetti. Aggiungi progetti di runtime che contengono cluster GKE.
      • Cluster GKE: seleziona i cluster GKE a cui vuoi che venga applicata questa policy. Se non viene specificato, il criterio verrà applicato 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 di policy include quanto segue:

    • Soglia di gravità: imposta il livello di gravità minimo per una vulnerabilità da includere nella valutazione delle policy. 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 e 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 che sono classificate come Alta o Critica.

    • Stato della vulnerabilità: specifica se includere solo le vulnerabilità per le quali è disponibile una correzione. Ciò consente una correzione con priorità prendendo di mira tutte le vulnerabilità o solo quelle correggibili.

    • Eccezioni e limitazioni: queste sezioni ti consentono di creare autorizzazioni o blocchi specifici che sostituiscono le norme generali.

      • 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 il mancato rispetto delle norme.
      • CVE limitate: specifica le CVE da bloccare sempre, indipendentemente dalla loro valutazione della gravità. Ciò è particolarmente utile per indicare vulnerabilità che presentano un rischio unico per la tua specifica applicazione o infrastruttura.
      • Pacchetti consentiti: elenca i pacchetti considerati sicuri. La versione del pacchetto può essere definita; in caso contrario, sono consentite tutte le versioni.
      • Pacchetti limitati: elenca i pacchetti da limitare. I pacchetti con limitazioni causano l'esito negativo del criterio. È 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 della pagina Regole.

Crea un criterio utilizzando Google Cloud CLI

Questa sezione descrive i comandi gcloud CLI disponibili per protezione artefatti e come utilizzarli.

Prerequisiti di Google Cloud CLI

  • Assicurati che la versione di gcloud CLI sia 559.0.0 o successive.
  • Imposta il progetto come progetto di configurazione.

Per farlo, esegui i seguenti comandi gcloud CLI:

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

Comandi Google Cloud CLI

create

gcloud alpha scc artifact-guard policies create \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    --policy-file-path=PATH_TO_FILE
  • 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)}
  • 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 del file YAML di questo documento.

get

gcloud alpha scc artifact-guard policies describe \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER))
  • 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)}

list

gcloud alpha scc artifact-guard policies list PARENT
  • PARENT: Un'organizzazione o un progetto. I formati accettati per la risorsa padre includono:
    • {organizations/ORGANIZATION_ID/locations/LOCATION}
    • {projects/PROJECT_NUMBER/locations/LOCATION}

elimina

gcloud alpha scc artifact-guard policies delete \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    [--etag=ETAG]
  • 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)}
  • etag: facoltativo. Per controllo della contemporaneità. La richiesta procede solo se l'etag della risorsa corrisponde.

update

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]
  • 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)}
  • PATH_TO_FILE: il percorso locale del documento YAML contenente la definizione dei campi da aggiornare.
  • allow_missing: valore booleano facoltativo. Se true, crea una nuova policy se quella specificata non esiste.
  • update-mask: elenco separato da virgole dei campi da aggiornare. Una stringa vuota o "*" indica un aggiornamento completo della norma. I campi validi per la maschera di aggiornamento includono:
    • display_name
    • description
    • scope
    • enablement_state
    • vulnerability_policy
    • annotations

File YAML

Un file YAML per una definizione di policy di protezione degli artefatti 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

Prestazioni e limitazioni

  • Numero massimo di policy per risorsa padre: una risorsa padre (organizzazione o progetto) può definire un massimo di 1000 policy. Ciò include tutti i tipi di policy di sicurezza configurati in Protezione artefatti.
  • Numero massimo di criteri per le vulnerabilità per risorsa padre: all'interno del limite complessivo dei criteri, esiste un limite al numero di criteri incentrati sui risultati delle vulnerabilità. Una risorsa padre (organizzazione o progetto) può avere un massimo di 500 criteri che hanno come target le vulnerabilità.
  • Numero massimo di policy per pipeline: per ogni singola pipeline CI/CD in cui sono integrate le policy di protezione degli artefatti per l'applicazione in fase di compilazione, sono consentite al massimo 100 policy.
  • Aggiornamenti massimi per policy a settimana: per ogni policy, è possibile apportare un massimo di 100 aggiornamenti ogni settimana.
  • Numero massimo di connettori pipeline per criterio: ogni criterio può avere un massimo di 100 connettori pipeline associati.
  • Numero massimo di CVE esenti e con limitazioni per policy: ogni policy può esentare e limitare un massimo di 100 CVE.
  • Pacchetti consentiti e con limitazioni massimi per policy: ogni policy può consentire e limitare un massimo di 100 pacchetti.

Per ulteriori limitazioni, consulta la sezione Risoluzione dei problemi.

Risoluzione dei problemi

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

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.

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 che la policy venga violata. 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 in 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 norma. Fino a 100 voci. Ogni ID deve essere in 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 policy 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 pattern di nomi di repository Artifact Registry. Google Cloud No Massimo 100 voci. Deve essere un pattern di repository Artifact Registry valido. Google Cloud us-west1-docker.pkg.dev/my-project/my-repo, gcr.io/team-a/*
imageNamePatterns Pattern di espressioni regolari per i nomi delle immagini completi. 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 attivamente le immagini container in esecuzione nel tuo ambiente GKE. Quando un criterio viene applicato a questo ambito, i risultati delle vulnerabilità di Security Command Center vengono migliorati automaticamente con i metadati dei criteri 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 implementati i cluster GKE e in cui è attivata 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:

// 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

Le norme attive non possono essere eliminate e generano un FAILED_PRECONDITION errore. Per eliminare un criterio, imposta prima il relativo 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 criterio (ad esempio, vulnerabilityPolicy) non è presente nella richiesta. Aggiungi un vulnerabilityPolicy o un altro tipo di norma alle tue norme.
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 che 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 registro è stato fornito un pattern di repository non valido. Assicurati che i pattern corrispondano ai formati validi del repository Artifact Registry Google Cloud .
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 un'azione di applicazione enforcementAction non è presente in un ambito Pipeline o Runtime. Imposta l'azione di applicazione (ad esempio 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 criteri (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 su richieste API, operazioni di lunga durata e 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 da parte di un'altra richiesta.

Soluzione: leggi di nuovo le norme per ottenere l'ultimo ETag, poi 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.