Configura políticas de protección de artefactos

En este documento, se describe cómo crear y administrar políticas de protección de artefactos. Para obtener una descripción general del servicio, consulta la descripción general de la protección de artefactos.

Antes de comenzar

Antes de crear una política de protección de artefactos, debes habilitar la protección de artefactos en Security Command Center y obtener el rol de Identity and Access Management (IAM) requerido.

Además, familiarízate con los límites de la protección de artefactos.

Si planeas usar gcloud CLI para administrar políticas o conectores de CI/CD, revisa los requisitos previos de la CLI de gcloud.

Habilitar la protección de artefactos

Sigue los pasos que se indican en Configura los servicios de Security Command Center para habilitar la protección de artefactos.

Rol requerido

Para obtener los permisos que necesitas para usar Artifact Guard, pídele a tu administrador que te otorgue el siguiente rol de Identity and Access Management (IAM) en tu proyecto u organización:

  • Administrador de evaluación de Artifact Scan Guard (roles/artifactscanguard.policyEvaluator)

Este rol se puede otorgar con la consola de Google Cloud o ejecutando el siguiente comando de gcloud CLI:

proyecto

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de tu cuenta de servicio.

organización

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

Reemplaza lo siguiente:

  • ORGANIZATION_ID: Es el ID de tu organización.
  • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de tu cuenta de servicio.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Para obtener más información sobre los roles de protección de artefactos, consulta Roles y permisos de protección de artefactos.

Requisitos previos de gcloud CLI

Para administrar políticas o conectores de CI/CD con gcloud CLI, asegúrate de que tu entorno cumpla con los siguientes requisitos:

  • La versión de gcloud CLI es 559.0.0 o posterior.
  • Tu proyecto se establece como el proyecto de configuración.

Para actualizar gcloud CLI y configurar tu proyecto, ejecuta los siguientes comandos:

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

Reemplaza PROJECT_ID con el ID del proyecto.

Crear una política

Console

Para crear una política de protección de artefactos en la consola de Google Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , ve a Seguridad > Reglas y haz clic en Crear política de protección de artefactos o Crear política.
  2. Ingresa un ID y una descripción para la política y, luego, haz clic en Continuar.
  3. Selecciona los alcances y las acciones de la política:
    • Plataforma de CI/CD
      • Seleccionar conectores: Selecciona los conectores que deseas asociar con esta política. El verificador evalúa esta política para cada compilación de CI/CD asociada con los conectores seleccionados.
      • Acción de política: Selecciona la acción que se realizará cuando se incumpla la política.
        • Bloquear compilaciones que no cumplan con la política: Si la política no se cumple, se bloqueará la compilación.
        • Pasar compilaciones con alertas: Las canalizaciones de compilación conectadas muestran los resultados de la evaluación de la política del analizador de CI/CD.
    • Registro
      • Proyectos de Container Analysis: Este parámetro de configuración solo se aplica a las organizaciones, no a los proyectos. Agrega los proyectos de Google Cloud en los que deseas aplicar esta política.
      • Repositorios de Artifact Registry: Selecciona los repositorios en los que deseas aplicar esta política. Estos deben ser repositorios válidos de Artifact Registry. Si se deja en blanco, Artifact Guard aplica la política a todos los repositorios.
      • Acción de política: Selecciona la acción que se realizará cuando se incumpla la política.
        • Solo auditoría: Protección de artefactos evalúa la política y registra los incumplimientos para fines de auditoría sin bloquear el recurso.
        • Control de admisión: Si se produce un incumplimiento durante la evaluación de la política, el control de admisión impide que se implemente el recurso.
          • Establece las políticas de Autorización Binaria en el modo de ejecución de prueba: Para obtener más información sobre el modo de ejecución de prueba, consulta Habilita el modo de ejecución de prueba.
          • Proyectos de Autorización Binaria: Este parámetro de configuración se aplica solo a las organizaciones, no a los proyectos. Agrega los Google Cloud proyectos en los que deseas aplicar el control de admisión.
          • Clústeres de GKE: Si se deja en blanco, el control de admisión se aplica a todos los clústeres de GKE.
          • Anular políticas de Autorización Binaria: Selecciona esta casilla de verificación para actualizar la política de Autorización Binaria para el control de admisión.
    • Tiempo de ejecución
      • Proyectos de entorno de ejecución: Este parámetro de configuración solo se aplica a las organizaciones, no a los proyectos. Agrega proyectos de entorno de ejecución que contengan clústeres de GKE.
      • Clústeres de GKE: Selecciona los clústeres de GKE en los que deseas aplicar esta política. Si se deja en blanco, la protección de artefactos aplica la política a todos los clústeres de GKE de los proyectos seleccionados.
  4. Define la regla de la política. Una regla de política es un conjunto de criterios que determina qué vulnerabilidades y paquetes se permiten en tu entorno. Una regla de política incluye lo siguiente:
    • Umbral de gravedad: Establece el nivel de gravedad mínimo para que una vulnerabilidad se incluya en la evaluación de la política. Las vulnerabilidades deben alcanzar o superar este umbral para incluirse.

      Por ejemplo, configurar la regla en Medio incluye todas las vulnerabilidades de Medio, Alto y Crítico en la evaluación.

    • Umbral de recuento de vulnerabilidades: Establece la cantidad máxima de vulnerabilidades permitidas después de que se aplican otros filtros de políticas. La política solo se incumple si la cantidad de estas vulnerabilidades específicas y filtradas supera el límite.

      Por ejemplo, si estableces un umbral de gravedad Alto, excluyes las vulnerabilidades con correcciones no disponibles y estableces un umbral de recuento de cinco, la compilación fallará si contiene más de cinco vulnerabilidades corregibles que se clasifican como Alto o Crítico.

    • Estado de vulnerabilidad: Especifica si se deben incluir solo las vulnerabilidades para las que hay una corrección disponible. Esto permite la corrección priorizada, ya que se pueden abordar todas las vulnerabilidades o solo las que se pueden corregir.
    • Excepciones y restricciones: En estas secciones, puedes crear permisos o bloqueos específicos que anulen la política general.
      • CVE exentas: Especifica las CVE que se consideran aceptables en tu entorno durante un período determinado. Esto es útil para implementar soluciones alternativas temporales. Puedes establecer una fecha de vencimiento para estas excepciones. Después de esta fecha, la vulnerabilidad ya no se permite y hace que la política falle.
      • CVE restringidas: Especifica las CVE que se bloquearán siempre, independientemente de su clasificación de gravedad. Esto es particularmente útil para indicar vulnerabilidades que representan un riesgo único para tu aplicación o infraestructura específicas.
      • Paquetes permitidos: Lista de paquetes considerados seguros. Se puede definir la versión del paquete; de lo contrario, se permiten todas las versiones.
      • Paquetes restringidos: Enumera los paquetes que se restringirán. Los paquetes restringidos provocan que la política falle. Se puede definir la versión del paquete; de lo contrario, todas las versiones estarán restringidas.
  5. Haz clic en Crear.

Las políticas de protección de artefactos disponibles se enumeran en la tabla de la página Reglas.

gcloud CLI

Para crear una política con gcloud CLI, ejecuta el siguiente comando:

gcloud alpha scc artifact-guard policies create \
    (POLICY_ID --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    --policy-file-path=PATH_TO_FILE

Reemplaza lo siguiente:

  • POLICY_ID: Es un identificador de la política (por ejemplo, my-policy).
  • LOCATION: Es la ubicación de Security Command Center en la que se almacenan tus datos. Solo se admite global.
  • ORGANIZATION_ID: Es el ID de organización.
  • PROJECT_NUMBER: Es el número de proyecto numérico.
  • PATH_TO_FILE: Es la ruta de acceso local al documento YAML que contiene la definición de la política. Consulta la sección sobre el archivo YAML de este documento para obtener detalles sobre la estructura del archivo YAML.

Actualiza una política

Console

Para actualizar una política de protección de artefactos en la consola de Google Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , ve a Seguridad > Reglas.
  2. En la tabla de reglas, haz clic en el nombre de la política que quieras editar.
  3. En la página de detalles de la política, haz clic en Editar o modifica los campos que quieras actualizar, como el alcance, las reglas de vulnerabilidad o el estado de habilitación.
  4. Haz clic en Guardar o Actualizar.

gcloud CLI

Para ver las políticas existentes y actualizarlas con gcloud CLI, usa los siguientes comandos:

Enumera políticas

gcloud alpha scc artifact-guard policies list PARENT

Reemplaza lo siguiente:

PARENT: Es una organización o un proyecto. Entre los formatos aceptables para el recurso principal, se incluyen los siguientes:
  • organizations/ORGANIZATION_ID/locations/LOCATION
  • projects/PROJECT_NUMBER/locations/LOCATION

Describe una política

gcloud alpha scc artifact-guard policies describe \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER))

Reemplaza lo siguiente:

POLICY: Es el identificador completo de la política, en uno de los siguientes formatos:
  • 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)

Actualiza una política

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 es una marca opcional. Cuando se incluye esta marca, se crea una política nueva si no existe la política especificada.

Reemplaza lo siguiente:

UPDATE-MASK: Es una lista separada por comas de los campos que se actualizarán. Una cadena vacía o * significa una actualización completa de la política. Los campos válidos para la máscara de actualización incluyen los siguientes:
  • display_name
  • description
  • scope
  • enablement_state
  • vulnerability_policy
  • annotations

Validación de políticas

Protección de artefactos valida las definiciones de políticas cuando creas o actualizas políticas. Si la validación falla, la protección de artefactos rechaza la solicitud y proporciona un mensaje de error detallado.

Borra una política

Console

Para borrar una política de protección de artefactos en la consola de Google Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , ve a Seguridad > Reglas.
  2. En la tabla de reglas, haz clic en junto a la política que deseas borrar y selecciona Borrar.
  3. Sigue las instrucciones de confirmación para borrar la política. Haz clic en Cancelar para anular la acción.

gcloud CLI

Para borrar una política con gcloud CLI, ejecuta el siguiente comando:

gcloud alpha scc artifact-guard policies delete \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    [--etag=ETAG]

Reemplaza lo siguiente:

ETAG: Es una etiqueta de entidad opcional que se usa para el control de simultaneidad. Si proporcionas un valor, la solicitud solo continuará si coincide el etag del recurso.

Archivo YAML

Cuando usas la gcloud CLI para crear o administrar una política de protección de artefactos, el archivo YAML debe seguir esta plantilla:

  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>

A continuación, se muestra un ejemplo de un archivo de política de protección de artefactos:

  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

Soluciona problemas

En esta sección, se describen los campos de la política de protección de artefactos y los errores comunes con sus resoluciones.

Campos de políticas generales

Nombre Descripción Obligatorio Limitaciones Valores de muestra
Superior Define el alcance de aplicación de la política. Solo se admiten las políticas en la ubicación global.
  • organizations/123/locations/global
  • projects/123/locations/global
ID de la política Es un identificador único de la política. Hasta 100 caracteres. Debe comenzar con una letra, terminar con un carácter alfanumérico y contener solo letras, números, guiones o guiones bajos. my-policy-1
Nombre visible Es un nombre legible para la política. No Hasta 63 caracteres. Se recomienda que sea único. My vulnerability policy
Descripción Es una descripción de la política. No Hasta 2,048 caracteres Checks for critical vulnerabilities.
Tipo de política Es el tipo de política que se define. Solo se admite vulnerability_policy. vulnerability_policy
Estado de habilitación Es el estado de habilitación de la política. Debe ser ACTIVE o INACTIVE. ACTIVE

Política de Vulnerabilidades

Nombre Descripción Multivaluado Limitaciones Valores de muestra
maximumAllowedVulnerabilities Es la cantidad máxima de vulnerabilidades permitidas antes de que se incumpla la política. No Debe ser un número no negativo si se configura. 10
maxAllowedSeverity Es la gravedad máxima de las vulnerabilidades que permite la política. No Debe ser LOW, MEDIUM, HIGH o CRITICAL.
exemptedCves Es la lista de CVE que están exentas de esta política. Hasta 100 entradas. Cada ID debe tener el formato CVE-YYYY-NNNN. Si se proporciona, el vencimiento del período de gracia debe ser una marca de tiempo válida. No se puede superponer con restrictedCves. - id: CVE-2024-12345
gracePeriodExpirationTime: 2027-01-01T00:00:00Z
- id: CVE-2025-4000
restrictedCves Es la lista de CVE que esta política prohíbe de forma explícita. Hasta 100 entradas. Cada ID debe tener el formato CVE-YYYY-NNNN. No se puede superponer con exemptedCves. - CVE-2024-54321
- CVE-2025-5001
allowedPackages Es la lista de paquetes permitidos, que pueden anular otras reglas. Hasta 100 entradas. Los nombres de paquetes no pueden estar vacíos. No puede entrar en conflicto con restrictedPackages. - name: nginx
version: 1.0
- name: python
version: 3.12.4
restrictedPackages Lista de paquetes que están explícitamente prohibidos. Hasta 100 entradas. Los nombres de paquetes no pueden estar vacíos. No puede entrar en conflicto con allowedPackages. - name: npm
version: 9.0.0
excludeUnfixable Indica si se deben excluir las vulnerabilidades que no tienen una corrección disponible. No Booleano. El valor predeterminado es false. true
exemptionDaysPostDisclosure Cantidad de días para eximir las vulnerabilidades después de la fecha de divulgación. No Debe ser un número no negativo si se configura. El valor predeterminado es 0. 30

Alcance de la política

Alcance de la canalización

Nombre Descripción Obligatorio Limitaciones Valores de muestra
connectorIds Es la lista de IDs de conectores a los que se aplica la política durante el análisis de la canalización de CI/CD. De 1 a 100 entradas Tu organización o proyecto debe estar incorporado al análisis de CI/CD. Cada ID debe seguir el formato correcto, pertenecer a tu organización o proyecto, y apuntar a un conector existente.
  • organizations/123/locations/global/connectors/connector-1
  • projects/123/locations/global/connectors/connector-1
enforcementAction Es la acción que se debe tomar cuando se incumple la política. Debe ser AUDIT_ONLY o BLOCK_BUILD. BLOCK_BUILD

Alcance del registro

Nombre Descripción Obligatorio Limitaciones Valores de muestra
projectIds Es la lista de IDs de proyectos en los que se aplica la política. No Debe haber al menos 1 entrada. Cada ID debe ser un ID de proyecto Google Cloud válido. projects/123, projects/456
garRepositoryNamePatterns Lista de patrones de nombres de repositorios de Google Cloud Artifact Registry. No Máximo de 100 entradas. Debe ser un patrón de repositorio de Google Cloud Artifact Registry válido. us-west1-docker.pkg.dev/my-project/my-repo, gcr.io/team-a/*
imageNamePatterns Son patrones de expresiones regulares para nombres de imágenes completamente calificados. No Máximo de 100 entradas. Debe ser una expresión regular válida. 'my-repo/service-a:.*', 'my-repo/service-b:v1..*'
enforcementAction Es la acción que se debe tomar cuando se incumple la política. Debe ser AUDIT_ONLY o ADMISSION_CONTROL. ADMISSION_CONTROL
admissionControl Son los detalles de configuración del control de admisión. No Debe estar presente si enforcementAction es ADMISSION_CONTROL.

Alcance del tiempo de ejecución

El alcance del tiempo de ejecución permite que la protección de artefactos supervise las imágenes de contenedor que se ejecutan en tu entorno de GKE. Cuando aplicas una política a este alcance, los resultados de vulnerabilidades de Security Command Center incluyen metadatos de políticas para las imágenes implementadas en los proyectos o clústeres especificados.

Nombre Descripción Obligatorio Limitaciones Valores de muestra
projectIds Es una lista de los IDs de los proyectos en los que se implementan los clústeres de GKE y se habilita la evaluación de vulnerabilidades. Se debe seleccionar a nivel de la organización. projects/my-gke-deployment-123
gkeClusterNames Son los clústeres de GKE específicos para los que se debe evaluar la política. No Se puede seleccionar a nivel de la organización o del proyecto. projects/prod-env/locations/us-central1/clusters/main-cluster

Si una imagen de contenedor que se ejecuta en un clúster de GKE supervisado incumple una política, los metadatos de ArtifactGuardPolicies se agregan al mensaje del hallazgo de vulnerabilidad de Security Command Center de la siguiente manera:

// Se agregó a los hallazgos de SCC ArtifactGuardPolicies artifact_guard_policies = X;

message ArtifactGuardPolicies { string resource_id = 1; // p.ej., //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 } ```

Acción de aplicación de políticas

En el caso de las acciones BLOCK_BUILD y BLOCK_DEPLOYMENT, la evaluación de la política devuelve una acción de aplicación recomendada. Sin embargo, debes configurar la aplicación real en la configuración de la canalización con esta recomendación.

Borrado de políticas

Si recibes un error FAILED_PRECONDITION, significa que estás intentando borrar una política activa. Para borrar la política, primero debes cambiar su estado a Inactive.

Errores comunes

En la siguiente tabla, se describen algunos errores comunes y cómo resolverlos.

Sugerencia de mensaje de error Causa Solución
Se requiere un elemento superior Falta el campo principal en la solicitud. Proporciona un elemento superior válido en uno de los siguientes formatos:
  • organizations/{org_id}/locations/global
  • parents/{project_number}/locations/global
Se requiere la definición de la política Falta el objeto de política en la solicitud. Proporciona un objeto de política válido en la solicitud.
El nombre visible tiene una longitud máxima de… El nombre visible supera los 63 caracteres. Acorta el nombre visible a 63 caracteres o menos.
La descripción tiene una longitud máxima de… La descripción supera los 2,048 caracteres. Acorta la descripción a 2,048 caracteres o menos.
El tipo de política es obligatorio Falta el tipo de política (por ejemplo, vulnerabilityPolicy) en la solicitud. Agrega una política de vulnerabilityPolicy o de otro tipo a tu política.
El estado de habilitación no es válido Se usó un estado de habilitación no válido o obsoleto. Usa ACTIVE o INACTIVE.
Se requiere permiso No se definió ningún alcance (canalización, registro o entorno de ejecución). Agrega al menos un alcance válido a tu política.
El nombre de la CVE debe tener el formato… Un ID de CVE en exemptedCves o restrictedCves no es válido. Asegúrate de que todos los IDs de CVE sigan el formato CVE-YYYY-NNNN.
No se puede restringir ni eximir la CVE… El mismo ID de CVE existe en exemptedCves y restrictedCves. Quita el CVE de una de las listas.
El nombre del paquete no puede estar vacío Un paquete en allowedPackages o restrictedPackages tiene un nombre vacío. Proporciona un nombre para todos los paquetes.
package … cannot be allowed and restricted El mismo paquete aparece en allowedPackages y restrictedPackages. Quita el paquete de una de las listas.
Se requieren IDs de conector Falta el campo connectorIds en un alcance de Pipeline. Proporciona al menos un ID de conector.
El ID del conector debe tener el formato… El ID del conector tiene errores de formato. Asegúrate de que los IDs tengan uno de los siguientes formatos:
  • organizations/{org_id}/locations/global/connectors/{connector_id}
  • projects/{project_number}/locations/{location}/connectors/{connector_id}
El ID del conector… no existe No existe el ID de conector especificado. Verifica que el conector exista o quítalo de la lista.
El patrón del nombre del repositorio de GAR debe ser… Se proporcionó un patrón de repositorio no válido en un alcance de registro. Asegúrate de que los patrones coincidan con los formatos de repositorios de Artifact Registry Google Cloud válidos.
El ID del proyecto debe ser un ID de proyecto de GCP válido… Se proporcionó un ID del proyecto no válido en un alcance de registro o de tiempo de ejecución. Proporciona IDs de proyecto Google Cloud válidos.
Se debe especificar la acción de aplicación Falta el enforcementAction en un alcance de Pipeline o de Runtime. Establece la acción de aplicación. Entre los ejemplos, se incluyen AUDIT_ONLY, BLOCK_BUILD (solo en la canalización) o BLOCK_DEPLOYMENT (solo en el tiempo de ejecución).
La cantidad de políticas por organización supera el límite… Alcanzaste la cantidad máxima de políticas (1,000) para tu organización. Borra las políticas que no se usen antes de crear otras nuevas.
number of vulnerability policies ... exceeds the limit... Alcanzaste la cantidad máxima de políticas de vulnerabilidades (500). Borra las políticas de vulnerabilidad que no se usen antes de crear otras nuevas.
La cantidad de políticas por canalización supera el límite… Un conector está asociado con más de 100 políticas. Reduce la cantidad de políticas asociadas con el conector.
La cantidad de revisiones de políticas… supera el límite… Actualizaste una política más de 100 veces en 7 días. Espera o reduce la frecuencia de actualización.

Problemas operativos comunes

Además de las fallas en la validación del contenido de la política, pueden surgir problemas con elGoogle Cloud plano de control subyacente. Estos problemas pueden afectar las solicitudes a la API, las operaciones de larga duración y los estados de los recursos, y suelen aparecer como códigos de error específicos o comportamientos inusuales.

Problema Síntomas Cómo solucionar el problema
Modificación simultánea UpdatePolicy o DeletePolicy falla con un código de error ABORTED y un mensaje "Provided etag is out of date". Solución de problemas: Esto sucede cuando el etag de tu solicitud no coincide con la versión actual del servidor de la política, lo que indica una modificación por otra solicitud.

Resolución: Vuelve a leer la política para obtener la etag más reciente y, luego, vuelve a intentar la solicitud con la etag nueva.
Solicitud validada, pero no ejecutada Una solicitud CreatePolicy, UpdatePolicy o DeletePolicy se devuelve correctamente, pero no se observa ningún cambio en el recurso. Solución de problemas: Por lo general, esto ocurre cuando se establece validate_only: true en la solicitud. Esta marca indica al servicio que realice todas las validaciones sin confirmar ningún cambio.

Resolución: Establece validate_only en false o omite el campo en tu solicitud.
La actualización crea una política nueva Una solicitud UpdatePolicy crea una política en lugar de devolver un error "no encontrado" cuando la política no existe. Solución de problemas: Este es el comportamiento previsto cuando se incluye allow_missing: true en un UpdatePolicyRequest.

Resolución: Si solo deseas actualizar una política existente, establece allow_missing en false o bien omite el campo.
Permiso denegado o API no habilitada Las solicitudes fallan con PERMISSION_DENIED o un mensaje de error como "Artifact Guard API has not been used in the project before or it is disabled.". Solución de problemas: Es posible que la API esté inhabilitada o que el llamador no tenga permisos suficientes.

Resolución: En tu proyecto Google Cloud , habilita la API de Artifact Guard (artifactscanguard.googleapis.com). Confirma que el usuario o la cuenta de servicio que realiza la operación tenga los roles de IAM necesarios.
Tiempo de espera de la operación Una solicitud que devuelve una operación de larga duración (LRO) tarda demasiado en completarse o falla con DEADLINE_EXCEEDED. Solución de problemas: Esto puede indicar una ralentización o un problema temporal en el servicio de backend.

Resolución: Sondea el estado de la LRO. Si falla o se agota el tiempo de espera, vuelve a intentar la operación después de unos momentos. Si el problema persiste, consulta el Panel de estado deGoogle Cloud para ver si hay incidentes en curso o comunícate con el equipo de asistencia de Google Cloud .