Prisma Cloud Compute Registry のスキャンで「429 Too Many Request (HAP429)」と表示される

Prisma Cloud Compute Registry のスキャンで「429 Too Many Request (HAP429)」と表示される

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


Symptom


  • レジストリ スキャンを開始すると、以下のエラーが表示されます。
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)

スクリーンショット 2022 年 5 月 19 日 10.27.55AM- min.png
 
 


Environment


  • Prisma Cloud コンピューティング
    • セルフホスト
    • SaaS
  • ドッカーHubレジストリ


Cause


  • 429 は、一定時間内に送信されるリクエストが多すぎることを示します (レート制限)。
  • プル リクエストを発行し、アカウント タイプの制限を超えている場合、DockerHubを返します429マニフェストが要求されたときの応答コード。
  • ドッカーHubイメージをプルするユーザーのアカウント タイプに基づいて、Docker イメージのダウンロード (「プル」) の数を制限します。
  • プルレートの制限は個人に基づいていますIPアドレス。
  • 匿名ユーザーの場合、レート制限は 6 時間あたり 100 プルに設定されます。IP住所。
  • ために認証済みユーザーの場合、6 時間あたり 200 プルです。 有料の Docker サブスクリプションを持つユーザーには制限がありません。


Resolution


  • 設定キャップ最新のレジストリ イメージをスキャンするには、「1」に設定します。 デフォルト値の 5 では、最新の 5 つの画像がスキャンされます。 このフィールドを 0 に設定すると、すべての画像がスキャンされます。
  • 増加スキャン頻度[管理] > [システム] > [スキャン] から。 デフォルトでは、Prisma Cloudレジストリを 24 時間ごとにスキャンします。 シナリオに従って、72 時間以上に増やします。
  • Docker でレート制限を増やします。


Additional Information


レジストリ イメージをスキャンするための Defender プロセス

  • イメージは、スキャンを実行するためにディフェンダーによってプルされます。
  • スキャンが完了すると、画像は削除されます。
  • Defender ログは同じことを示します:
    • 画像の分析

    • 画像のプル

    • 画像のスキャン

    • 画像の削除

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

画像を引っ張ってRate Limitを確認する方法

  • プル リクエストを発行し、アカウント タイプの制限を超えている場合、DockerHubを返します429マニフェストが要求されたときに、次の本文を含む応答コード:
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits

どのようにすることができますI現在のレートを確認しますか?

ratelimit-limit    
ratelimit-remaining
  • これらのヘッダーは両方で返されますGETとHEADリクエスト。 使用することに注意してくださいGET実際のプルをエミュレートし、制限に向かってカウントします。使用してHEADないので、この例ではそれを使用します。 制限を確認するには、次のものが必要です。カール grep 、 とjqインストールされています。
  • トークンを匿名で取得するには (匿名でプルする場合):
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
  • ユーザー アカウントでトークンを取得するには (プルを認証している場合)、次のコマンドにユーザー名とパスワードを挿入することを忘れないでください。

$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
  • 次に、制限を示すヘッダーを取得するには、次を実行します。

$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
  • これらを含むヘッダーを返す必要があります。

ratelimit-limit: 100;w=21600
ratelimit-remaining: 76;w=21600
  • これは、私の制限が 21600 秒 (6 時間) あたり 100 プルであることを意味します。I残り76回。
画像.png

ノート:これらのヘッダーはベスト エフォートであり、多少の違いがあることに注意してください。
 
 


Actions
  • Print
  • Copy Link

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

Choose Language