Prisma Cloud L'analyse du registre de calcul affiche '429 Too Many Request (HAP429)'
12672
Created On 05/19/22 02:37 AM - Last Modified 03/02/23 01:56 AM
Symptom
- Le lancement de l’analyse du registre montre l’erreur ci-dessous:
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 Calculer
- Auto-hébergé
- Saas
- Registre Docker Hub
Cause
- 429 indique que trop de demandes sont envoyées dans un laps de temps donné (limitation du débit).
- Lorsque vous émettez une demande d’extraction et que vous dépassez la limite pour votre type de compte, Docker Hub renvoie un code de réponse
429lorsque le manifeste est demandé. - Docker limite le nombre de téléchargements d’images Docker Hub (« extractions ») en fonction du type de compte de l’utilisateur qui extrait l’image.
- Les limites de taux d’extraction sont basées sur des adresses individuelles IP .
- Pour les utilisateurs anonymes, la limite de débit est définie sur 100 tirages par 6 heures par IP adresse.
- Pour les utilisateurs authentifiés, il s’agit de 200 extractions par période de 6 heures. Il n’y a pas de limites pour les utilisateurs disposant d’un abonnement Docker payant.
Resolution
- Réglez Cap sur « 1 » pour analyser les images de Registre les plus récentes. La valeur par défaut de 5 analysera les 5 images les plus récentes. Si vous définissez ce champ sur 0, toutes les images seront numérisées.
- Augmentez la fréquence d’analyse de Gérer > système > Analyser. Par défaut, Prisma Cloud analyse le Registre toutes les 24 heures. Augmentez-le à 72 heures ou plus selon le scénario.
- Augmentez la limite de débit au niveau du docker.
Additional Information
Processus Defender pour analyser l’image du Registre
- L’image est tirée par le défenseur pour effectuer l’analyse.
- Une fois la numérisation terminée, l’image sera supprimée.
- Les journaux Defender affichent la même chose :
Analyse de l’image
Extraction de l’image
Numérisation de l’image
Suppression de l’image
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
Comment vérifier la limite de débit en extrayant l’image
- Lorsque vous émettez une demande d’extraction et que vous dépassez la limite pour votre type de compte, Docker Hub renvoie un code de réponse
429avec le corps suivant lorsque le manifeste est demandé :
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits
Comment puis-je I vérifier mon tarif actuel?
- Reportez-vous à la limite de débit de téléchargement Docker.
- Les demandes de manifeste API valides à Hub incluront généralement les en-têtes de limite de débit suivants dans la réponse :
ratelimit-limit ratelimit-remaining
- Ces en-têtes seront retournés sur les deux GET et HEAD demandes. Notez que l’utilisation émule une traction réelle et comptera dans la limite ; l’utilisation ne le fera pas, nous l’utiliserons GET HEAD donc dans cet exemple. Pour vérifier vos limites, vous aurez besoin de
curl,grepetjqinstallés. - Pour obtenir un jeton de manière anonyme (si vous tirez anonymement) :
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
Pour obtenir un jeton avec un compte utilisateur (si vous authentifiez vos pulls), n’oubliez pas d’insérer votre nom d’utilisateur et votre mot de passe dans la commande suivante :
$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
Ensuite, pour obtenir les en-têtes indiquant vos limites, exécutez ce qui suit :
$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
Qui devrait renvoyer des en-têtes comprenant ceux-ci:
ratelimit-limit: 100;w=21600 ratelimit-remaining: 76;w=21600
- Cela signifie que ma limite est de 100 tractions par 21600 secondes (6 heures) et I qu’il me reste 76 tractions.
Note: N’oubliez pas que ces en-têtes sont des efforts et qu’il peut y avoir de petites variations.