Prisma Cloud El análisis del Registro de cómputo muestra '429 Too Many Request (HAP429)'
12662
Created On 05/19/22 02:37 AM - Last Modified 03/02/23 01:56 AM
Symptom
- Al iniciar el análisis del registro, se muestra el siguiente error:
failed to retrieve repository TESTORG* tags, error failed to query https://registry-1.docker.io/v2/TESTORG*/tags/list, error failed to query https://registry-1.docker.io/v2/TESTORG*/tags/list, Too Many Requests Too Many Requests (HAP429)
Environment
- Prisma Cloud Calcular
- Autohospedado
- Saas
- Registro de Docker Hub
Cause
- 429 indica que se envían demasiadas solicitudes en un período de tiempo determinado (limitación de velocidad).
- Cuando emite una solicitud de extracción y supera el límite para su tipo de cuenta, Docker Hub devolverá un código de respuesta
429cuando se solicite el manifiesto. - Docker Hub limita el número de descargas de imágenes de Docker ("extracción") en función del tipo de cuenta del usuario que extrae la imagen.
- Los límites de la tasa de extracción se basan en direcciones individuales IP .
- Para los usuarios anónimos, el límite de velocidad se establece en 100 extracciones cada 6 horas por IP dirección.
- Para los usuarios autenticados, es de 200 extracciones por período de 6 horas. No hay límites para los usuarios con una suscripción de pago a Docker.
Resolution
- Establezca Cap en "1" para escanear las imágenes más recientes del Registro. El valor predeterminado de 5 escaneará las 5 imágenes más recientes. Si establece este campo en 0, se escanearán todas las imágenes.
- Aumente la frecuencia de escaneo desde Administrar > sistema > Escanear. De forma predeterminada, Prisma Cloud analiza el Registro cada 24 horas. Aumente a 72 horas o más según el escenario.
- Aumente el límite de velocidad en el Docker.
Additional Information
El proceso de Defender para escanear la imagen del Registro
- La imagen es extraída por el defensor para realizar el escaneo.
- Una vez que se complete el escaneo, la imagen se eliminará.
- Los registros de Defender muestran lo mismo:
Análisis de la imagen
Extracción de la imagen
Escaneo de la imagen
Eliminación de la imagen
DEBU 2022-03-18T21:49:35.559 scanner.go:145 Analyzing image testimage/test latest:sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a DEBU 2022-03-18T21:49:35.559 scanner.go:161 Pulling registry image id: sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a tag: test.io/testimage/test:latest DEBU 2022-03-18T21:49:54.610 scanner.go:167 Pull image tag:test.io/testimage/test:latest id: sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a completed after 19.051067993 seconds DEBU 2022-03-18T21:49:54.618 scanner.go:100 Image scanning started sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a DEBU 2022-03-18T21:49:54.619 containerized_runner.go:69 Containerized scan started sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a DEBU 2022-03-18T21:50:54.066 containerized_runner.go:270 Containerized scan completed sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a 59.45 [sec] DEBU 2022-03-18T21:50:54.103 augment_static.go:218 sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a [augment] 59.49 [sec] DEBU 2022-03-18T21:50:54.105 scanner.go:218 Image test.io/testimage/test:latest sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a [scanning] 59.49 [sec] DEBU 2022-03-18T21:50:54.105 scanner.go:221 Scan for image tag:test.io/testimage/test:latest id: sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a completed after 78.545885826 seconds DEBU 2022-03-18T21:50:54.105 scanner.go:409 Removing image sha256:3a11abed3c123456789023d23b7d0e828c939a4284512345678902138aa3f76a
Cómo verificar el límite de velocidad tirando de la imagen
- Cuando emite una solicitud de extracción y supera el límite para su tipo de cuenta, Docker Hub devolverá un código de respuesta
429con el siguiente cuerpo cuando se solicite el manifiesto:
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits
¿Cómo puedo I consultar mi tarifa actual?
- Consulte el límite de velocidad de descarga de Docker.
- Las solicitudes de manifiesto API válidas suelen Hub incluir los siguientes encabezados de límite de velocidad en la respuesta:
ratelimit-limit ratelimit-remaining
- Estos encabezados se devolverán tanto en las solicitudes como HEAD en las GET solicitudes. Tenga en cuenta que usar GET emula un tirón real y contará para el límite; usar HEAD no lo hará, por lo que lo usaremos en este ejemplo. Para verificar sus límites, necesitará
curl,grepyjqinstalados. - Para obtener un token de forma anónima (si está extrayendo de forma anónima):
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
Para obtener un token con una cuenta de usuario (si está autenticando sus extracción), no olvide insertar su nombre de usuario y contraseña en el siguiente comando:
$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
Luego, para que los encabezados muestren sus límites, ejecute lo siguiente:
$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
Lo que debería devolver encabezados que incluyen estos:
ratelimit-limit: 100;w=21600 ratelimit-remaining: 76;w=21600
- Esto significa que mi límite es de 100 tirones por 21600 segundos (6 horas), y I tengo 76 tirones restantes.
Nota: Recuerde que estos encabezados son el mejor esfuerzo y puede haber pequeñas variaciones.