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, sus funciones y beneficios, consulta 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 los roles y permisos necesarios de Identity and Access Management (IAM).

Luego, puedes crear una política en la Google Cloud consola o con la Google Cloud CLI.

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.

Función requerida

Para obtener los permisos que necesitas para usar protección de artefactos, pídele a tu administrador que te otorgue el siguiente rol de Identity and Access Management (IAM) en tu proyecto o 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 Google Cloud CLI:

proyecto

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

Reemplaza lo siguiente:

  • PROJECT_ID
  • YOUR_SERVICE_ACCOUNT_EMAIL

organización

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

Reemplaza lo siguiente:

  • ORGANIZATION_ID
  • YOUR_SERVICE_ACCOUNT_EMAIL

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.

Crea una política en la consola de Google Cloud

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

  1. En la Google Cloud consola, ve a Seguridad > Reglas y haz clic en Crear política de protección de artefactos o Crear política.

  2. Ingresa un ID de política 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: Son los conectores con los que se debe asociar esta política. Esta política se evaluará 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 las compilaciones que no cumplan con la política
        • Pasar compilaciones con alertas: Los resultados de la evaluación de la política del analizador de CI/CD se muestran en las canalizaciones de compilación conectadas.
    • Registro

      • Proyectos de Container Analysis: Esto solo se aplica a organizaciones, no a proyectos. Agrega los proyectos Google Cloud a los que quieres que se aplique esta política.
      • Repositorios de Artifact Registry: Selecciona los repositorios a los que deseas que se aplique esta política. Deben ser repositorios válidos de Artifact Registry. Si se deja en blanco, la política se aplicará a todos los repositorios.
      • Acción de política: Selecciona la acción que se debe realizar cuando se incumpla la política.
        • Solo auditoría: Se evalúa la política y se registran los incumplimientos para fines de auditoría sin bloquear el recurso. Para ver los incumplimientos, debes llamar a la API con ListArtifactPoliciesEvaluations y GetArtifactPoliciesEvaluation.
        • Control de admisión: Si se produce un incumplimiento mientras se evalúa la política, se bloquea el recurso para que no continúe.
          • Establecer las políticas de Autorización Binaria en el modo de ejecución de prueba: Consulta Habilita el modo de ejecución de prueba para obtener más información.
          • Proyectos de Autorización Binaria: Esto solo se aplica a organizaciones, no a proyectos. Agrega los proyectos Google Cloud a 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: Esta casilla de verificación debe estar seleccionada 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: Esto 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 a los que deseas que se aplique esta política. Si se deja en blanco, la política se aplicará 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 políticas. Las vulnerabilidades deben alcanzar o superar este umbral para incluirse.

      Por ejemplo, configurar la regla en Medio incluye todas las vulnerabilidades Medias, Altas y Críticas 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 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, una compilación fallará si contiene más de cinco vulnerabilidades corregibles que se clasifican como Alto o Crítico.

    • Estado de la 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 abordan 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 siempre se bloquearán, 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: Enumera los paquetes que se consideran 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 hacen que la política falle. Se puede definir la versión del paquete; de lo contrario, todas las versiones está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.

Crea una política con Google Cloud CLI

En esta sección, se describen los comandos de gcloud CLI disponibles para la protección de artefactos y cómo usarlos.

Requisitos previos de Google Cloud CLI

  • Asegúrate de que tu versión de gcloud CLI sea 559.0.0 o posterior.
  • Configura tu proyecto como el proyecto de configuración.

Para ello, ejecuta los siguientes comandos de gcloud CLI:

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

Comandos de 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: 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)}
  • 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.

get

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

list

gcloud alpha scc artifact-guard policies list PARENT
  • PARENT: Es una organización o un proyecto. Los formatos aceptables para el recurso principal incluyen los siguientes:
    • {organizations/ORGANIZATION_ID/locations/LOCATION}
    • {projects/PROJECT_NUMBER/locations/LOCATION}

borrar

gcloud alpha scc artifact-guard policies delete \
    (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \
    [--etag=ETAG]
  • 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)}
  • etag: Opcional. Para el control de simultaneidad. La solicitud solo continúa si la ETag del recurso coincide.

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: 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)}
  • PATH_TO_FILE: Es la ruta de acceso local al documento YAML que contiene la definición de los campos que se actualizarán.
  • allow_missing: Es un valor booleano opcional. Si es true, crea una política nueva si la política especificada no existe.
  • update-mask: Lista separada por comas de 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

Archivo YAML

Un archivo YAML para una definición de política de protección de artefactos 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

Rendimiento y limitaciones

  • Cantidad máxima de políticas por recurso principal: Un recurso principal (organización o proyecto) puede definir un máximo de 1,000 políticas. Esto incluye todos los tipos de políticas de seguridad configuradas en la protección de artefactos.
  • Cantidad máxima de políticas de vulnerabilidades por recurso principal: Dentro del límite general de políticas, hay un límite en la cantidad de políticas enfocadas en los hallazgos de vulnerabilidades. Un recurso principal (organización o proyecto) puede tener un máximo de 500 políticas que se dirijan a vulnerabilidades.
  • Cantidad máxima de políticas por canalización: Se permite un máximo de 100 políticas para cada canalización de CI/CD individual en la que se integran políticas de protección de artefactos para la aplicación en tiempo de compilación.
  • Actualizaciones máximas por política por semana: Para cada política, se pueden realizar un máximo de 100 actualizaciones por semana.
  • Cantidad máxima de conectores de canalización por política: Cada política puede tener un máximo de 100 conectores de canalización asociados.
  • Cantidad máxima de CVEs restringidas y exentas por política: Cada política puede exentar y restringir un máximo de 100 CVEs.
  • Cantidad máxima de paquetes permitidos y restringidos por política: Cada política puede permitir y restringir un máximo de 100 paquetes.

Para conocer otras restricciones, consulta Solución de problemas.

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.

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.

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 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 los 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 Es la lista de paquetes que se prohíben de forma explícita. Hasta 100 entradas. Los nombres de los 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. Debe haber un mínimo de 1 entrada y un máximo de 100. 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 entorno de ejecución permite que la protección de artefactos supervise las imágenes de contenedor que se ejecutan de forma activa en tu entorno de GKE. Cuando se aplica una política a este alcance, los resultados de vulnerabilidades de Security Command Center se mejoran automáticamente con los metadatos de la política 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:

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

Acción de aplicación

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 de la recomendación en la configuración de la canalización.

Borrado de políticas

Las políticas activas no se pueden borrar y generan un error de FAILED_PRECONDITION. Para borrar una política, primero debes establecer su estado en 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 un vulnerabilityPolicy o algún otro tipo de política a tu política.
El estado de habilitación no es válido Se usó un estado de habilitación no válido o en desuso. 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 de 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 canalización o de entorno de ejecución. Establece la acción de aplicación (por ejemplo, AUDIT_ONLY, BLOCK_BUILD [solo para canalizaciones] o BLOCK_DEPLOYMENT [solo para 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.
cantidad de políticas de vulnerabilidad… supera el límite… Alcanzaste la cantidad máxima de políticas de vulnerabilidad (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 los errores de 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 problemas
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 validate_only: true se establece 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 intentarlo después de unos minutos. 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 .