In diesem Dokument wird beschrieben, wie Sie Richtlinien für Artifact Guard erstellen und verwalten. Eine Übersicht über den Dienst finden Sie unter Übersicht über Artifact Guard.
Hinweis
Bevor Sie eine Richtlinie für Artifact Guard erstellen können, müssen Sie Artifact Guard in Security Command Center aktivieren und die erforderliche IAM-Rolle (Identity and Access Management) erhalten.
Machen Sie sich außerdem mit den Grenzwerten für Artifact Guard vertraut.
Wenn Sie die gcloud CLI zum Verwalten von Richtlinien oder CI/CD-Connectors verwenden möchten, lesen Sie die gcloud CLI-Voraussetzungen.
Artifact Guard aktivieren
Folgen Sie der Anleitung unter Security Command Center-Dienste konfigurieren, um Artifact Guard zu aktivieren.
Erforderliche Rolle
Bitten Sie Ihren Administrator, Ihnen die folgende IAM-Rolle (Identity and Access Management) für Ihr Projekt oder Ihre Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von Artifact Guard benötigen:
- Artifact Scan Guard Evaluation Admin (
roles/artifactscanguard.policyEvaluator)
Diese Rolle kann über die Google Cloud Console oder durch Ausführen des folgenden gcloud CLI-Befehls zugewiesen werden:
Projekt
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/artifactscanguard.policyEvaluator"
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse Ihres Dienstkontos.
Organisation
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/artifactscanguard.policyEvaluator"
Ersetzen Sie Folgendes:
ORGANIZATION_ID: Ihre Organisations-ID.SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse Ihres Dienstkontos.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Weitere Artifact Guard-Rollen finden Sie unter Artifact Guard-Rollen und ‑Berechtigungen.
Voraussetzungen für die gcloud CLI
Wenn Sie Richtlinien oder CI/CD-Connectors mit der gcloud CLI verwalten möchten, muss Ihre Umgebung die folgenden Anforderungen erfüllen:
- Ihre gcloud CLI-Version ist 559.0.0 oder höher.
- Ihr Projekt ist als Konfigurationsprojekt festgelegt.
Führen Sie die folgenden Befehle aus, um die gcloud CLI zu aktualisieren und Ihr Projekt festzulegen:
gcloud components update --version=559.0.0
gcloud config set project PROJECT_ID
Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Richtlinie erstellen
Console
So erstellen Sie eine Artifact Guard-Richtlinie in der Google Cloud -Konsole:
- Rufen Sie in der Google Cloud -Konsole Sicherheit > Regeln auf und klicken Sie auf Artifact Guard-Richtlinie erstellen oder Richtlinie erstellen.
- Geben Sie eine Richtlinien-ID und eine Beschreibung für die Richtlinie ein und klicken Sie auf Weiter.
- Wählen Sie Richtlinienbereiche und ‑aktionen aus:
- CI/CD-Plattform
- Connectors auswählen: Wählen Sie die Connectors aus, die mit dieser Richtlinie verknüpft werden sollen. Der Scanner wertet diese Richtlinie für jeden CI/CD-Build aus, der mit den ausgewählten Connectors verknüpft ist.
- Richtlinienaktion: Wählen Sie die Aktion aus, die bei einem Verstoß gegen die Richtlinie ausgeführt werden soll.
- Builds blockieren, die die Richtlinie nicht erfüllen: Wenn die Richtlinie nicht erfüllt wird, wird der Build blockiert.
- Builds mit Benachrichtigungen genehmigen: In verbundenen Build-Pipelines werden die Ergebnisse der CI/CD-Scannerrichtlinienauswertung angezeigt.
- Registry
- Container Analysis-Projekte: Diese Einstellung gilt nur für Organisationen, nicht für Projekte. Fügen Sie die Google Cloud -Projekte hinzu, auf die Sie diese Richtlinie anwenden möchten.
- Artifact Registry-Repositories: Wählen Sie die Repositories aus, auf die Sie diese Richtlinie anwenden möchten. Dies müssen gültige Artifact Registry-Repositories sein. Wenn Sie das Feld leer lassen, wendet Artifact Guard die Richtlinie auf alle Repositories an.
- Richtlinienaktion: Wählen Sie die Aktion aus, die bei einem Verstoß gegen die Richtlinie ausgeführt werden soll.
- Nur prüfen: Artifact Guard wertet die Richtlinie aus und protokolliert alle Verstöße zu Prüfzwecken, ohne die Ressource zu blockieren.
- Zulassungssteuerung: Wenn bei der Richtlinienauswertung ein Verstoß auftritt, wird die Bereitstellung der Ressource durch die Zulassungssteuerung blockiert.
- Richtlinien zur Binärautorisierung auf Probelaufmodus festlegen: Weitere Informationen zum Probelaufmodus finden Sie unter Probelaufmodus aktivieren.
- Binärautorisierung-Projekte: Diese Einstellung gilt nur für Organisationen, nicht für Projekte. Fügen Sie die Google Cloud Projekte hinzu, auf die Sie die Zugangssteuerung anwenden möchten.
- GKE-Cluster: Wenn Sie das Feld leer lassen, gilt die Zugangssteuerung für alle GKE-Cluster.
- Richtlinien zur Binärautorisierung überschreiben: Wählen Sie dieses Kästchen aus, um die Richtlinie zur Binärautorisierung für die Zugangssteuerung zu aktualisieren.
- Laufzeit
- Laufzeitprojekte: Diese Einstellung gilt nur für Organisationen, nicht für Projekte. Fügen Sie Laufzeitprojekte hinzu, die GKE-Cluster enthalten.
- GKE-Cluster: Wählen Sie die GKE-Cluster aus, auf die Sie diese Richtlinie anwenden möchten. Wenn Sie das Feld leer lassen, wendet Artifact Guard die Richtlinie auf alle GKE-Cluster in den ausgewählten Projekten an.
- CI/CD-Plattform
- Definieren Sie die Richtlinienregel. Eine Richtlinienregel ist eine Reihe von Kriterien, die festlegen, welche Sicherheitslücken und Pakete in Ihrer Umgebung zulässig sind. Eine Richtlinienregel umfasst Folgendes:
- Schweregradschwellenwert: Legen Sie den Mindestschweregrad für eine Sicherheitslücke fest, damit sie in die Richtlinienbewertung einbezogen wird.
Sicherheitslücken müssen diesen Grenzwert erreichen oder überschreiten, um berücksichtigt zu werden.
Wenn Sie die Regel beispielsweise auf Mittel konfigurieren, umfasst die Bewertung alle Sicherheitslücken mit dem Schweregrad Mittel, Hoch und Kritisch.
- Grenzwert für Anzahl der Sicherheitslücken: Legt die maximale Anzahl zulässiger Sicherheitslücken fest, nachdem andere Richtlinienfilter angewendet wurden. Ein Verstoß gegen die Richtlinie liegt nur vor, wenn die Anzahl dieser spezifischen, gefilterten Sicherheitslücken das Limit überschreitet.
Wenn Sie beispielsweise einen Schweregradschwellenwert von Hoch festlegen, Sicherheitslücken mit nicht verfügbaren Korrekturen ausschließen und einen Zählschwellenwert von fünf festlegen, schlägt ein Build fehl, wenn er mehr als fünf behebliche Sicherheitslücken enthält, die als Hoch oder Kritisch eingestuft sind.
- Status der Sicherheitslücke: Geben Sie an, ob nur Sicherheitslücken berücksichtigt werden sollen, für die eine Fehlerkorrektur verfügbar ist. So können Sie die Behebung priorisieren, indem Sie alle oder nur behebliche Sicherheitslücken beheben.
- Ausnahmen und Einschränkungen: In diesen Abschnitten können Sie bestimmte Zulassungen oder Blockierungen erstellen, die die allgemeine Richtlinie überschreiben.
- Ausgenommene CVEs: Geben Sie CVEs an, die für einen bestimmten Zeitraum in Ihrer Umgebung als akzeptabel gelten. Das ist hilfreich, wenn Sie temporäre Lösungen implementieren möchten. Sie können ein Ablaufdatum für diese Ausnahmen festlegen. Nach diesem Datum ist die Sicherheitslücke nicht mehr zulässig und führt zu einem Richtlinienverstoß.
- Eingeschränkte CVEs: Geben Sie CVEs an, die immer blockiert werden sollen, unabhängig von ihrer Schweregradbewertung. Das ist besonders nützlich, um Schwachstellen zu kennzeichnen, die ein einzigartiges Risiko für Ihre spezifische Anwendung oder Infrastruktur darstellen.
- Zulässige Pakete: Hier werden Pakete aufgeführt, die als sicher gelten. Die Paketversion kann definiert werden. Andernfalls sind alle Versionen zulässig.
- Eingeschränkte Pakete: Hier können Sie Pakete auflisten, die eingeschränkt werden sollen. Eingeschränkte Pakete führen dazu, dass die Richtlinie nicht eingehalten wird. Die Paketversion kann definiert werden. Andernfalls sind alle Versionen eingeschränkt.
- Schweregradschwellenwert: Legen Sie den Mindestschweregrad für eine Sicherheitslücke fest, damit sie in die Richtlinienbewertung einbezogen wird.
Sicherheitslücken müssen diesen Grenzwert erreichen oder überschreiten, um berücksichtigt zu werden.
- Klicken Sie auf Erstellen.
Die verfügbaren Artifact Guard-Richtlinien sind in der Tabelle auf der Seite Regeln aufgeführt.
gcloud-CLI
Führen Sie den folgenden Befehl aus, um eine Richtlinie mit der gcloud CLI zu erstellen:
gcloud alpha scc artifact-guard policies create \ (POLICY_ID --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \ --policy-file-path=PATH_TO_FILE
Ersetzen Sie Folgendes:
- POLICY_ID: Eine Kennung für die Richtlinie (z. B.
my-policy). - LOCATION: Der Security Command Center-Standort, an dem Ihre Daten gespeichert sind. Nur
globalwird unterstützt. - ORGANIZATION_ID: Die Organisations-ID.
- PROJECT_NUMBER: Die numerische Projektnummer.
- PATH_TO_FILE: Der lokale Pfad zum YAML-Dokument, das die Richtliniendefinition enthält. Weitere Informationen zur Struktur der YAML-Datei finden Sie im Abschnitt „YAML-Datei“ in diesem Dokument.
Richtlinie aktualisieren
Console
So aktualisieren Sie eine Artifact Guard-Richtlinie in der Google Cloud Console:
- Gehen Sie in der Google Cloud -Konsole zu Sicherheit > Regeln.
- Klicken Sie in der Tabelle „Regeln“ auf den Namen der Richtlinie, die Sie bearbeiten möchten.
- Klicken Sie auf der Seite mit den Richtliniendetails auf Bearbeiten oder ändern Sie die Felder, die Sie aktualisieren möchten, z. B. Bereich, Regeln für Sicherheitslücken oder Aktivierungsstatus.
- Klicken Sie auf Speichern oder Aktualisieren.
gcloud-CLI
Verwenden Sie die folgenden Befehle, um vorhandene Richtlinien mit der gcloud CLI aufzurufen und zu aktualisieren:
Listenrichtlinien
gcloud alpha scc artifact-guard policies list PARENT
Ersetzen Sie Folgendes:
PARENT: Eine Organisation oder ein Projekt. Zulässige Formate für die übergeordnete Ressource:organizations/ORGANIZATION_ID/locations/LOCATIONprojects/PROJECT_NUMBER/locations/LOCATION
Richtlinie beschreiben
gcloud alpha scc artifact-guard policies describe \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER))
Ersetzen Sie Folgendes:
POLICY: Die vollständige Kennung für die Richtlinie in einem der folgenden Formate:organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_IDprojects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_IDPOLICY_ID --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)
Richtlinie aktualisieren
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 ist ein optionales Flag. Wenn dieses Flag enthalten ist, wird eine neue Richtlinie erstellt, falls die angegebene Richtlinie nicht vorhanden ist.
Ersetzen Sie Folgendes:
UPDATE-MASK: Eine durch Kommas getrennte Liste der Felder, die aktualisiert werden sollen. Ein leerer String oder* bedeutet eine vollständige Richtlinienaktualisierung. Gültige Felder für die Aktualisierungsmaske sind unter anderem:
display_namedescriptionscopeenablement_statevulnerability_policyannotations
Richtlinienüberprüfung
Artifact Guard validiert Richtliniendefinitionen, wenn Sie Richtlinien erstellen oder aktualisieren. Wenn die Validierung fehlschlägt, lehnt Artifact Guard die Anfrage ab und gibt eine detaillierte Fehlermeldung aus.
Richtlinie löschen
Console
So löschen Sie eine Artifact Guard-Richtlinie in der Google Cloud -Konsole:
- Gehen Sie in der Google Cloud -Konsole zu Sicherheit > Regeln.
- Klicken Sie in der Tabelle „Regeln“ neben der Richtlinie, die Sie löschen möchten, auf und wählen Sie Löschen aus.
- Folgen Sie der Anleitung, um das Löschen der Richtlinie zu bestätigen. Klicken Sie auf Abbrechen, um den Vorgang abzubrechen.
gcloud-CLI
Führen Sie zum Löschen einer Richtlinie mit der gcloud CLI den folgenden Befehl aus:
gcloud alpha scc artifact-guard policies delete \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \ [--etag=ETAG]
Ersetzen Sie Folgendes:
ETAG: Ein optionales Entity-Tag, das für die Parallelitätssteuerung verwendet wird. Wenn Sie einen Wert angeben, wird die Anfrage nur fortgesetzt, wenn dieetag der Ressource übereinstimmt.
YAML-Datei
Wenn Sie die gcloud CLI zum Erstellen oder Verwalten einer Artifact Guard-Richtlinie verwenden, muss die YAML-Datei dieser Vorlage entsprechen:
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>
Hier sehen Sie eine Beispielrichtliniendatei für Artifact Guard:
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
Fehlerbehebung
In diesem Abschnitt werden die Felder für Richtlinien für Artifact Guard und häufige Fehler mit ihren Lösungen beschrieben.
Allgemeine Richtlinienfelder
| Name | Beschreibung | Erforderlich | Einschränkungen | Beispielwerte |
|---|---|---|---|---|
| Übergeordnetes Element | Definiert den Anwendungsbereich der Richtlinie. | Ja | Es werden nur Richtlinien am Standort global unterstützt. |
|
| Richtlinien-ID | Eine eindeutige Kennung für die Richtlinie. | Ja | Zulässige Höchstlänge: 100 Zeichen Muss mit einem Buchstaben beginnen, mit einem alphanumerischen Zeichen enden und darf nur Buchstaben, Ziffern, Bindestriche oder Unterstriche enthalten. | my-policy-1 |
| Anzeigename | Ein für Menschen lesbarer Name für die Richtlinie. | Nein | Bis zu 63 Zeichen. Sollte eindeutig sein. | My vulnerability policy |
| Beschreibung | Eine Beschreibung der Richtlinie. | Nein | Bis zu 2.048 Zeichen | Checks for critical vulnerabilities. |
| Richtlinientyp | Der Typ der Richtlinie, die definiert wird. | Ja | Nur vulnerability_policy wird unterstützt. |
vulnerability_policy |
| Aktivierungsstatus | Der Aktivierungsstatus der Richtlinie. | Ja | Muss ACTIVE oder INACTIVE sein. |
ACTIVE |
Richtlinie zu Sicherheitslücken
| Name | Beschreibung | Mehrwertig | Einschränkungen | Beispielwerte |
|---|---|---|---|---|
| maximumAllowedVulnerabilities | Maximale Anzahl an Sicherheitslücken, die zulässig sind, bevor gegen die Richtlinie verstoßen wird. | Nein | Muss eine nicht negative Zahl sein, wenn sie festgelegt ist. | 10 |
| maxAllowedSeverity | Maximaler Schweregrad von Sicherheitslücken, die gemäß der Richtlinie zulässig sind. | Nein | Muss LOW, MEDIUM, HIGH oder CRITICAL sein. |
|
| exemptedCves | Liste der CVEs, die von dieser Richtlinie ausgenommen sind. | Ja | Bis zu 100 Einträge. Jede ID muss das Format CVE-YYYY-NNNN haben.
Falls angegeben, muss der Ablauf der Kulanzfrist ein gültiger Zeitstempel sein. Darf sich nicht mit restrictedCves überschneiden. |
- id: CVE-2024-12345gracePeriodExpirationTime: 2027-01-01T00:00:00Z- id: CVE-2025-4000 |
| restrictedCves | Liste der CVEs, die durch diese Richtlinie ausdrücklich nicht zulässig sind. | Ja | Bis zu 100 Einträge. Jede ID muss das Format CVE-YYYY-NNNN haben.
Darf sich nicht mit exemptedCves überschneiden. |
- CVE-2024-54321- CVE-2025-5001 |
| allowedPackages | Liste der zulässigen Pakete, die möglicherweise andere Regeln überschreiben. | Ja | Bis zu 100 Einträge. Paketnamen dürfen nicht leer sein. Darf nicht mit restrictedPackages in Konflikt stehen. |
- name: nginxversion: 1.0- name: pythonversion: 3.12.4 |
| restrictedPackages | Liste der Pakete, die explizit nicht zulässig sind. | Ja | Bis zu 100 Einträge. Paketnamen dürfen nicht leer sein. Darf nicht mit allowedPackages in Konflikt stehen. |
- name: npmversion: 9.0.0 |
| excludeUnfixable | Gibt an, ob Sicherheitslücken ohne verfügbare Fehlerkorrektur ausgeschlossen werden sollen. | Nein | Boolescher Wert. Standardwert ist false. |
true |
| exemptionDaysPostDisclosure | Anzahl der Tage, die Schwachstellen nach dem Offenlegungsdatum ausgenommen werden sollen. | Nein | Muss eine nicht negative Zahl sein, wenn sie festgelegt ist. Standardwert ist 0. |
30 |
Richtlinienbereich
Pipelinebereich
| Name | Beschreibung | Erforderlich | Einschränkungen | Beispielwerte |
|---|---|---|---|---|
| connectorIds | Liste der Connector-IDs, für die die Richtlinie während des Scans der CI/CD-Pipeline gilt. | Ja | Mindestens 1 Eintrag, maximal 100 Einträge. Ihre Organisation oder Ihr Projekt muss für CI/CD-Scans eingerichtet sein. Jede ID muss das richtige Format haben, zu Ihrer Organisation oder Ihrem Projekt gehören und auf einen vorhandenen Connector verweisen. |
|
| enforcementAction | Aktion, die bei einem Verstoß gegen die Richtlinie ausgeführt werden soll. | Ja | Muss entweder AUDIT_ONLY oder BLOCK_BUILD sein. |
BLOCK_BUILD |
Registrierungsbereich
| Name | Beschreibung | Erforderlich | Einschränkungen | Beispielwerte |
|---|---|---|---|---|
| projectIds | Liste der Projekt-IDs, für die die Richtlinie gilt. | Nein | Mindestens 1 Eintrag. Jede ID muss eine gültige Google Cloud Projekt-ID sein. | projects/123, projects/456 |
| garRepositoryNamePatterns | Liste der Google Cloud Artifact Registry-Repository-Namensmuster. | Nein | Max. 100 Einträge. Muss ein gültiges Google Cloud Artifact Registry-Repositorymuster sein. | us-west1-docker.pkg.dev/my-project/my-repo, gcr.io/team-a/* |
| imageNamePatterns | Muster für reguläre Ausdrücke für voll qualifizierte Bildnamen. | Nein | Max. 100 Einträge. Muss ein gültiger regulärer Ausdruck sein. | 'my-repo/service-a:.*', 'my-repo/service-b:v1..*' |
| enforcementAction | Die Aktion, die bei einem Verstoß gegen die Richtlinie ausgeführt werden soll. | Ja | Muss entweder AUDIT_ONLY oder ADMISSION_CONTROL sein. |
ADMISSION_CONTROL |
| admissionControl | Konfigurationsdetails für die Zugangssteuerung. | Nein | Muss vorhanden sein, wenn enforcementAction ADMISSION_CONTROL ist. |
Laufzeitbereich
Mit dem Laufzeitbereich kann Artifact Guard Container-Images überwachen, die in Ihrer GKE-Umgebung ausgeführt werden. Wenn Sie eine Richtlinie auf diesen Bereich anwenden, enthalten Security Command Center-Ergebnisse zu Sicherheitslücken Richtlinienmetadaten für Images, die in den angegebenen Projekten oder Clustern bereitgestellt werden.
| Name | Beschreibung | Erforderlich | Einschränkungen | Beispielwerte |
|---|---|---|---|---|
| projectIds | Liste der Projekt-IDs, in denen GKE-Cluster bereitgestellt werden und die Sicherheitslückenanalyse aktiviert ist. | Ja | Muss auf Organisationsebene ausgewählt werden. | projects/my-gke-deployment-123 |
| gkeClusterNames | Bestimmte GKE-Cluster, für die die Richtlinie ausgewertet werden muss. | Nein | Kann auf Organisations- oder Projektebene ausgewählt werden. | projects/prod-env/locations/us-central1/clusters/main-cluster |
Wenn ein Container-Image, das in einem überwachten GKE-Cluster ausgeführt wird, gegen eine Richtlinie verstößt, werden die ArtifactGuardPolicies-Metadaten der Meldung des Security Command Center-Ergebnisses zur Sicherheitslücke hinzugefügt:
```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 } ```
Maßnahme
Bei BLOCK_BUILD- und BLOCK_DEPLOYMENT-Aktionen wird bei der Richtlinienauswertung eine empfohlene Erzwingungsmaßnahme zurückgegeben. Sie müssen die tatsächliche Erzwingung jedoch in der Pipelinekonfiguration mit dieser Empfehlung konfigurieren.
Richtlinie löschen
Wenn Sie den Fehler FAILED_PRECONDITION erhalten, versuchen Sie, eine aktive Richtlinie zu löschen. Wenn Sie die Richtlinie löschen möchten, müssen Sie zuerst ihren Status in Inactive ändern.
Häufige Fehler
In der folgenden Tabelle sind einige häufige Fehler und ihre Behebung aufgeführt.
| Hinweis zur Fehlermeldung | Ursache | Lösung |
|---|---|---|
| parent ist erforderlich | Das übergeordnete Feld fehlt in der Anfrage. | Geben Sie eine gültige übergeordnete Ressource in einem der folgenden Formate an:
|
| Richtliniendefinition erforderlich | Das Richtlinienobjekt fehlt in der Anfrage. | Geben Sie ein gültiges Richtlinienobjekt in der Anfrage an. |
| Der Anzeigename darf maximal... lang sein. | Der Anzeigename ist länger als 63 Zeichen. | Kürzen Sie den Anzeigenamen auf maximal 63 Zeichen. |
| Die Beschreibung darf maximal... lang sein. | Die Beschreibung überschreitet 2.048 Zeichen. | Kürzen Sie die Beschreibung auf maximal 2.048 Zeichen. |
| Richtlinientyp ist erforderlich | Der Richtlinientyp (z. B. vulnerabilityPolicy) fehlt in der Anfrage. |
Fügen Sie Ihrer Richtlinie eine vulnerabilityPolicy oder einen anderen Richtlinientyp hinzu. |
| Aktivierungsstatus ist ungültig | Es wurde ein ungültiger oder nicht mehr unterstützter Aktivierungsstatus verwendet. | Verwenden Sie ACTIVE oder INACTIVE. |
| Bereich ist erforderlich | Es wurde kein Bereich (Pipeline, Registry oder Laufzeit) definiert. | Fügen Sie Ihrer Richtlinie mindestens einen gültigen Bereich hinzu. |
| Der CVE-Name muss das Format...haben | Eine CVE-ID in exemptedCves oder restrictedCves ist ungültig. |
Achten Sie darauf, dass alle CVE-IDs dem Format CVE-YYYY-NNNN entsprechen. |
| CVE ... kann nicht ausgenommen und eingeschränkt werden | Dieselbe CVE-ID ist sowohl in exemptedCves als auch in restrictedCves vorhanden. |
Entfernen Sie die CVE aus einer der Listen. |
| Der Paketname darf nicht leer sein | Ein Paket in allowedPackages oder restrictedPackages hat einen leeren Namen. |
Geben Sie einen Namen für alle Pakete an. |
| package ... cannot be allowed and restricted (Paket … kann nicht zugelassen und eingeschränkt werden) | Dasselbe Paket ist sowohl in allowedPackages als auch in restrictedPackages aufgeführt. |
Entfernen Sie das Paket aus einer der Listen. |
| Connector-IDs sind erforderlich | Das Feld „connectorIds“ fehlt in einem Pipeline-Bereich. |
Geben Sie mindestens eine Connector-ID an. |
| Die Connector-ID muss das Format... haben. | Eine Connector-ID ist fehlerhaft. | Achten Sie darauf, dass IDs eines der folgenden Formate haben:
|
| Connector-ID ... ist nicht vorhanden | Eine angegebene Connector-ID ist nicht vorhanden. | Prüfen Sie, ob der Connector vorhanden ist, oder entfernen Sie ihn aus der Liste. |
| Das Muster für den Namen des GAR-Repositorys muss... | In einem Registrierungsbereich wurde ein ungültiges Repository-Muster angegeben. | Die Muster müssen mit gültigen Google Cloud Artifact Registry-Repositoryformaten übereinstimmen. |
| Die Projekt-ID muss eine gültige GCP-Projekt-ID sein... | In einem Registry- oder Runtime-Bereich wurde eine ungültige Projekt-ID angegeben. | Geben Sie gültige Google Cloud Projekt-IDs an. |
| Erzwingungsmaßnahme angegeben werden | Die enforcementAction fehlt in einem Pipeline- oder Laufzeitbereich. |
Legen Sie die Erzwingungsmaßnahme fest. Beispiele: AUDIT_ONLY, BLOCK_BUILD (nur Pipeline) oder BLOCK_DEPLOYMENT (nur Laufzeit). |
| Die Anzahl der Richtlinien pro Organisation überschreitet das Limit... | Sie haben die maximale Anzahl von Richtlinien (1.000) für Ihre Organisation erreicht. | Löschen Sie nicht verwendete Richtlinien, bevor Sie neue erstellen. |
| Anzahl der Richtlinien für Sicherheitslücken ... überschreitet das Limit... | Sie haben die maximale Anzahl von Richtlinien für Sicherheitslücken (500) erreicht. | Löschen Sie nicht verwendete Richtlinien für Sicherheitslücken, bevor Sie neue erstellen. |
| Die Anzahl der Richtlinien pro Pipeline überschreitet das Limit... | Ein Connector ist mit mehr als 100 Richtlinien verknüpft. | Reduzieren Sie die Anzahl der Richtlinien, die mit dem Connector verknüpft sind. |
| Die Anzahl der Richtlinienüberarbeitungen überschreitet das Limit... | Sie haben eine Richtlinie innerhalb von 7 Tagen mehr als 100-mal aktualisiert. | Warten oder Updatehäufigkeit reduzieren |
Häufige operative Probleme
Neben Fehlern bei der Validierung von Richtlinieninhalten können auch Probleme mit der zugrunde liegendenGoogle Cloud -Steuerungsebene auftreten. Diese Probleme können sich auf API-Anfragen, Vorgänge mit langer Ausführungszeit und Ressourcenstatus auswirken und treten in der Regel als bestimmte Fehlercodes oder ungewöhnliches Verhalten auf.
| Problem | Symptom(e) | Fehlerbehebung |
|---|---|---|
| Gleichzeitige Änderung | UpdatePolicy oder DeletePolicy schlägt mit dem Fehlercode ABORTED und der Meldung "Provided etag is out of date" fehl. |
Fehlerbehebung: Dieser Fehler tritt auf, wenn die etag in Ihrer Anfrage nicht mit der aktuellen Serverversion der Richtlinie übereinstimmt. Das deutet darauf hin, dass die Richtlinie durch eine andere Anfrage geändert wurde.Lösung: Lesen Sie die Richtlinie noch einmal, um das aktuelle ETag zu erhalten. Wiederholen Sie dann die Anfrage mit dem neuen ETag. |
| Anfrage validiert, aber nicht ausgeführt | Eine CreatePolicy-, UpdatePolicy- oder DeletePolicy-Anfrage wird erfolgreich zurückgegeben, aber Sie stellen keine Änderung an der Ressource fest. |
Fehlerbehebung: Dies tritt in der Regel auf, wenn validate_only: true im Antrag festgelegt ist. Mit diesem Flag wird der Dienst angewiesen, alle Validierungen durchzuführen, ohne Änderungen zu übernehmen.Auflösung: Setzen Sie validate_only auf false oder lassen Sie das Feld in Ihrer Anfrage weg. |
| Durch ein Update wird eine neue Richtlinie erstellt | Bei einer UpdatePolicy-Anfrage wird eine Richtlinie erstellt, anstatt dass ein Fehler vom Typ „Nicht gefunden“ zurückgegeben wird, wenn die Richtlinie nicht vorhanden ist. |
Fehlerbehebung: Dies ist das vorgesehene Verhalten, wenn allow_missing: true in einem UpdatePolicyRequest enthalten ist.Lösung: Wenn Sie nur eine vorhandene Richtlinie aktualisieren möchten, setzen Sie allow_missing auf false oder lassen Sie das Feld weg. |
| Berechtigung verweigert oder API nicht aktiviert | Anfragen schlagen mit PERMISSION_DENIED oder einer Fehlermeldung wie "Artifact Guard API has not been used in the project before or it is
disabled." fehl. |
Fehlerbehebung: Die API ist möglicherweise deaktiviert oder der Aufrufer hat nicht die erforderlichen Berechtigungen. Lösung: Aktivieren Sie in Ihrem Google Cloud -Projekt die Artifact Guard API ( artifactscanguard.googleapis.com).
Prüfen Sie, ob der Nutzer oder das Dienstkonto, der bzw. das den Vorgang ausführt, die erforderlichen IAM-Rollen hat. |
| Zeitüberschreitung beim Vorgang | Eine Anfrage, die einen Vorgang mit langer Ausführungszeit zurückgibt, dauert zu lange oder schlägt mit DEADLINE_EXCEEDED fehl. |
Fehlerbehebung: Dies kann auf eine vorübergehende Verlangsamung oder ein Problem im Backend-Dienst hinweisen. Lösung: Fragen Sie den LRO-Status ab. Wenn der Vorgang fehlschlägt oder eine Zeitüberschreitung auftritt, versuchen Sie es nach einigen Augenblicken noch einmal. Sollte das Problem weiterhin auftreten, sehen Sie im Google Cloud Status-Dashboard nach, ob es aktuelle Vorfälle gibt, oder wenden Sie sich an den Google Cloud Support. |