Prisma Cloud Compute Registry-Scan zeigt '429 Too Many Request (HAP429)'

Prisma Cloud Compute Registry-Scan zeigt '429 Too Many Request (HAP429)'

12630
Created On 05/19/22 02:37 AM - Last Modified 03/02/23 01:56 AM


Symptom


  • Das Initiieren des Registrierungsscans zeigt den folgenden Fehler:
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)

Screenshot 19.05.2022 um 10.27.55 AM-Min.png
 
 


Environment


  • Prisma Cloud Berechnen
    • Selbst gehostet
    • Saas
  • Docker-Registrierung Hub


Cause


  • 429 zeigt an, dass zu viele Anfragen in einer bestimmten Zeit gesendet werden (Ratenbegrenzung).
  • Wenn Sie eine Pullanforderung ausgeben und das Limit für Ihren Kontotyp überschreiten, gibt Docker Hub einen Antwortcode 429 zurück, wenn das Manifest angefordert wird.
  • Docker Hub begrenzt die Anzahl der Docker-Image-Downloads ("Pulls") basierend auf dem Kontotyp des Benutzers, der das Image abruft.
  • Pull-Rate-Limits basieren auf einzelnen IP Adressen.
  • Für anonyme Benutzer ist das Ratenlimit auf 100 Pulls pro 6 Stunden pro IP Adresse festgelegt.
  • Für authentifizierte Benutzer sind es 200 Pulls pro 6-Stunden-Zeitraum. Es gibt keine Beschränkungen für Benutzer mit einem kostenpflichtigen Docker-Abonnement.


Resolution


  • Setzen Sie Cap auf "1", um die neuesten Registrierungsimages zu scannen. Der Standardwert 5 scannt die letzten 5 Bilder. Wenn Sie dieses Feld auf 0 setzen, werden alle Bilder gescannt.
  • Erhöhen Sie die Scanhäufigkeit über > System verwalten > Scan. Scannt die Registrierung standardmäßig Prisma Cloud alle 24 Stunden. Erhöhen Sie es je nach Szenario auf 72 Stunden oder mehr.
  • Erhöhen Sie das Ratenlimit am Docker.


Additional Information


Der Defender-Prozess zum Scannen des Registrierungsabbilds

  • Das Bild wird vom Verteidiger gezogen, um den Scan durchzuführen.
  • Sobald der Scanvorgang abgeschlossen ist, wird das Bild entfernt.
  • Die Defender-Protokolle zeigen dasselbe:
    • Analysieren des Bildes

    • Ziehen des Bilds

    • Scannen des Bildes

    • Entfernen des Bilds

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

So überprüfen Sie das Ratenlimit durch Ziehen des Bildes

  • Wenn Sie eine Pull-Anforderung ausgeben und das Limit für Ihren Kontotyp überschreiten, gibt Docker Hub einen 429-Antwortcode mit dem folgenden Text zurück, wenn das Manifest angefordert wird:
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits

Wie kann ich I meinen aktuellen Tarif überprüfen?

  • Weitere Informationen finden Sie unter Limit für Docker-Download-Rate.
  • Gültige Manifestanforderungen API an Hub enthalten in der Regel die folgenden Ratenlimitheader in der Antwort:
ratelimit-limit    
ratelimit-remaining
  • Diese Header werden sowohl für als auch GET HEAD für Anforderungen zurückgegeben. Beachten Sie, dass die Verwendung GET einen echten Pull emuliert und auf das Limit angerechnet wird; using HEAD wird nicht, also werden wir es in diesem Beispiel verwenden. Um Ihre Limits zu überprüfen, müssen curl, grep und jq installiert sein.
  • So erhalten Sie ein Token anonym (wenn Sie anonym ziehen):
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
  • Um ein Token mit einem Benutzerkonto zu erhalten (wenn Sie Ihre Pulls authentifizieren) - vergessen Sie nicht, Ihren Benutzernamen und Ihr Passwort in den folgenden Befehl einzufügen:

$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
  • Führen Sie dann Folgendes aus, um die Header mit Ihren Limits zu erhalten:

$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
  • Was Header zurückgeben sollte, einschließlich dieser:

ratelimit-limit: 100;w=21600
ratelimit-remaining: 76;w=21600
  • Das bedeutet, dass mein Limit 100 Pulls pro 21600 Sekunden (6 Stunden) beträgt und I 76 Pulls verbleiben.
Bild.png

Anmerkung: Denken Sie daran, dass diese Header Best-Effort sind und es kleine Abweichungen geben kann.
 
 


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CpdiCAC&lang=de&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language