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_IDYOUR_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_IDYOUR_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 :
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 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
ListArtifactPoliciesEvaluationseGetArtifactPoliciesEvaluation. - 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.
- 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
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.
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.
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_namedescriptionscopeenablement_statevulnerability_policyannotations
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. | 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 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. | Sì | 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-12345gracePeriodExpirationTime: 2027-01-01T00:00:00Z- id: CVE-2025-4000 |
| restrictedCves | Elenco delle CVE esplicitamente non consentite da questa norma. | Sì | 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. | 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 policy 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 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. | 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 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à. | 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:
// 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:
|
| è 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:
|
| 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. |