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_IDYOUR_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_IDYOUR_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:
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.
Ingresa un ID de política y una Descripción para la política y, luego, haz clic en Continuar.
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
ListArtifactPoliciesEvaluationsyGetArtifactPoliciesEvaluation. - 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.
- 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
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.
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.
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_namedescriptionscopeenablement_statevulnerability_policyannotations
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. | Sí | Solo se admiten las políticas en la ubicación global. |
|
| ID de la política | Es un identificador único de la política. | Sí | 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. | Sí | Solo se admite vulnerability_policy. |
vulnerability_policy |
| Estado de habilitación | Es el estado de habilitación de la política. | Sí | 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. | Sí | 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-12345gracePeriodExpirationTime: 2027-01-01T00:00:00Z- id: CVE-2025-4000 |
| restrictedCves | Lista de CVE que esta política prohíbe de forma explícita. | Sí | 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. | Sí | Hasta 100 entradas. Los nombres de los paquetes no pueden estar vacíos. No puede entrar en conflicto con restrictedPackages. |
- name: nginxversion: 1.0- name: pythonversion: 3.12.4 |
| restrictedPackages | Es la lista de paquetes que se prohíben de forma explícita. | Sí | Hasta 100 entradas. Los nombres de los paquetes no pueden estar vacíos. No puede entrar en conflicto con allowedPackages. |
- name: npmversion: 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. | Sí | 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. |
|
| enforcementAction | Es la acción que se debe tomar cuando se incumple la política. | Sí | 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. | Sí | 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. | Sí | 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:
|
| 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:
|
| 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 . |