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 :
- Nella console Google Cloud , vai a Sicurezza > Regole e fai clic su Crea policy di protezione degli artefatti o Crea policy.
- Inserisci un ID norma e una descrizione per la norma, poi fai clic su Continua.
- 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.
- Piattaforma CI/CD
- 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.
- 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.
- 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 :
- Nella console Google Cloud , vai a Sicurezza > Regole.
- Nella tabella delle regole, fai clic sul nome della norma che vuoi modificare.
- 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.
- 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/LOCATIONprojects/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_IDprojects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_IDPOLICY_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_namedescriptionscopeenablement_statevulnerability_policyannotations
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 :
- Nella console Google Cloud , vai a Sicurezza > Regole.
- Nella tabella delle regole, fai clic su accanto alla policy che vuoi eliminare e seleziona Elimina.
- 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 valoreetag
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. | Sì | Sono supportate solo le policy nella località global. |
|
| ID policy | Un identificatore univoco per il 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 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. | 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 specificata, deve essere un timestamp valido. Non può
sovrapporsi a restrictedCves. |
- id: CVE-2024-12345gracePeriodExpirationTime: 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ò entrare in conflitto con
restrictedPackages. |
- name: nginxversion: 1.0- name: pythonversion: 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ò entrare in conflitto con
allowedPackages. |
- name: npmversion: 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. |
|
| 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 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. | 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 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à. | Sì | 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:
|
| è 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:
|
| 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. |