レジストリスキャンの設定
レジストリスキャンには、SUSE® Security Allinone または Controller コンテナがホスト/ノードにデプロイされている必要があります。インストール/デプロイメント セクションを参照して、SUSE® Security コンテナをデプロイする方法を確認してください。マネージャーにログインした後、SUSE® Security コンソールからレジストリスキャンを設定してください。
さらに、SUSE® Security スキャナコンテナがデプロイされ、Allinone または Controller に接続するように設定されていることを確認してください。4.0 以降では、neuvector/scanner コンテナは allinone または controller とは別にデプロイする必要があります。
|
レジストリイメージスキャンはスキャナによって実行され、イメージはメモリにプルされて展開されます。500MB を超える展開されたイメージサイズが予想される場合は、スキャナのメモリを 1.5GB 以上に増やして、スキャナに容量と余裕を提供することを検討してください。 |
レジストリスキャンのパフォーマンスとスケーラビリティを向上させるために、複数のスキャナポッドを異なるノードにデプロイして、スキャンタスクを複数のスキャナに分散させることができます。詳細については、複数の並列スキャナ セクションを参照してください。
マルチクラスター(フェデレーテッド)環境では、プライマリ(マスター)クラスターがフェデレーテッドレジストリとして指定されたレジストリ/リポジトリをスキャンできます。これらのレジストリからのスキャン結果は、すべての管理(リモート)クラスターに同期されます。これにより、管理クラスターコンソールでスキャン結果を表示できるようになり、Admission Controlのルールで結果を使用できるようになります。レジストリは各クラスターによってスキャンされるのではなく、一度だけスキャンされる必要があり、CPU/メモリおよびネットワーク帯域幅の使用を削減します。詳細については、マルチクラスター セクションを参照してください。
レジストリスキャンの設定
スキャンするレジストリとリポジトリを設定するには、SUSE® Security コンソールの資産 → レジストリメニューに移動してください。スキャンするレジストリを追加または編集します。フィルターを使用して、スキャンするリポジトリまたはイメージのサブセットを定義します。レジストリがプロキシを通じてアクセスを必要とする場合、設定 → 設定でこれを設定できます。

レジストリは、スケジュールに従ってスキャンされます。これは設定可能です。デフォルトでは、新しいまたは更新されたイメージのみがスキャンされます。CVEデータベースが更新されるたびにすべての適用可能なイメージを再スキャンしたい場合は、レジストリの設定時に「CVE DB 更新後に再スキャン」ボタンを選択してください。レイヤースキャンを選択すると、イメージの各階層ごとの脆弱性を表示できます(注:レイヤースキャンは完了するまでに時間がかかり、より多くのリソースを消費する可能性があります)。
スキャンが完了すると、その下に結果が表示されます。リポジトリ/タグをクリックして脆弱性を確認し、脆弱性をクリックして詳細情報を表示します。CSVファイルでレポートをダウンロードするか、イベントログで結果を確認することもできます。

NeuVectorは、"すべてのスキャンされたイメージを表示"オプションを提供します。ユーザーは特定のイメージを確認するためにレジストリを調べる必要はありません。代わりに、ユーザーは最後の行をクリックしてすべてのスキャンされたイメージを一覧表示できます。

ユーザーはレジストリページにアクセスし、コンテナページのハイパーリンクから特定のイメージを開くこともできます。イメージ名がクリックできない場合、それはイメージがまだスキャンされていないことを意味します。

スキャン結果には、レジストリ/リポジトリの設定時にこのオプションが選択されていた場合、イメージ階層ごとの脆弱性とコンプライアンスチェックの結果が含まれます。イメージのスキャン結果を表示する際にコンプライアンスタブをクリックして、コンプライアンスチェックを確認します。
スキャンは、イメージ内のすべてのモジュール(すなわち、インベントリ)を発見し、一覧表示します。それはまた、モジュールごとの脆弱性リスクを要約し、各モジュールのすべての脆弱性を一覧表示します。

スキャンは、Native Docker、Amazon ECR、Redhat/Openshift、jFrog、Microsoft ACR、Sonatype Nexus、Harbor、Google CloudなどのパブリックおよびプライベートのDockerレジストリに基づく画像に対してサポートされています。 画像のスキャンレポートは、画像内のさまざまなパッケージとバイナリの脆弱性ステータスで構成されています。スキャンレポートの簡単な要約は、ポリシー → のレスポンスルール設定を使用してWebhook経由で送信するか、設定 → のSyslogサーバーを構成してSyslog経由で送信できます。結果はイベントログでも表示できます。
少なくとも1つのリポジトリフィルタが必要です(空白のままにすることはできません)。
リポジトリフィルターの例

|
レジストリスキャンオプション
-
階層スキャン:
-
各イメージ階層の脆弱性スキャン結果を個別に提供します。
-
階層内で実行されたコマンドや追加されたパッケージに関する情報を提供します。
-
各階層のイメージサイズ
-
-
自動スキャン:
-
自動スキャンはOpenShift imagestream統合でのみサポートされています。適切なロールバインディングを事前に設定する必要があります。
-
自動スキャンが有効になっている場合、イメージがレジストリにプッシュされると、即座にイメージスキャンがスケジュールされます。
-
-
定期スキャン:
-
定期的にスキャンするために定期スキャンを有効にしてください。
-
スキャン間隔は5分から7日ごとに設定できます。
-
多くのAdmission Controlチェックがイメージスキャンの結果に依存しているため、定期スキャンを有効にすることで、Admission Controlが最新のイメージ情報を持つことが確実になります。
-
SUSE® Securityは、前回のスキャンから新しい/変更されたレジストリ内のイメージをスキャンします。
-
-
CVE DBの更新後に再スキャン
-
脆弱性データベースが更新された後、すべてのイメージを再スキャンするためにこのオプションを有効にしてください。
-
ネイティブDockerレジストリ(QuayおよびHarborも含む)
ネイティブDockerレジストリを追加
-
タイプとしてDockerレジストリを選択
-
レジストリにユニークな名前を付ける
-
ポートを含むレジストリURLを入力
-
レジストリによって要求される場合は、ユーザー名とパスワードを提供してください。
-
以下の形式でフィルターとしてリポジトリを追加
-
組織/リポジトリ:タグ
-
リポジトリは、先頭文字列を持つワイルドカードを使用できます
-
例: neuvector/all*:2*
-
ユーザー名/パスワードを使用してプライベートDockerレジストリを追加し、レイヤースキャンを有効にし、30分ごとの定期スキャンを有効にし、すべてのリポジトリからすべてのタグをスキャンするためのフィルターとして*を使用します。

ユーザー名/パスワードなしでスキャンするためのパブリックDockerレジストリを追加し、ワイルドカードを持つ2つのリポジトリ、レイヤーのスキャンを有効にし、定期スキャンを有効にします。

ユーザー名/パスワードを使用してスキャンするためのパブリックDockerレジストリを追加し、ワイルドカードリポジトリ、レイヤーのスキャンを有効にし、定期スキャンを有効にします。

|
Quayレジストリ
|
Amazon ECRレジストリ
Amazon ECRレジストリを追加
-
タイプとしてAmazonレジストリを選択
-
レジストリにユニークな名前を付ける
-
レジストリURLは他の情報と共に自動的に見つかります。
-
レジストリのために以下の情報を提供してください。上記のAmazonリンクを参照して、以下の情報を取得してください。
-
レジストリID
-
地域
-
アクセスキーID
-
シークレットアクセスキー
-
-
以下の形式でフィルターとしてリポジトリを追加してください。
-
組織/リポジトリ:タグ
-
リポジトリは、先頭文字列を持つワイルドカードを使用できます
-
例: neuvector/all*:2*
-
そのようなイメージがレジストリに存在する場合、組織を空欄にできます。
-
* ですべての画像タグをスキャンします。
-

Red Hatレジストリ
Red Hatレジストリを追加
-
タイプとしてRed Hatレジストリを選択
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力してください https://registry.connect.redhat.com/
-
レジストリ管理に使用するアカウントのユーザー名とパスワードを提供してください
-
以下の形式でフィルターとしてリポジトリを追加してください。
-
組織/リポジトリ:タグ
-
リポジトリは、先頭文字列を持つワイルドカードを使用できます
-
例: neuvector/all*:2*
-
* ですべての画像タグをスキャンします。
-

OpenShiftレジストリ
ユーザー名とパスワードでOpenShiftレジストリを追加
-
タイプとしてOpenShiftレジストリを選択
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力してください(デフォルトと異なる場合はOpenShiftネットワークで"oc get is"コマンドの出力から取得してください)
-
デフォルトのレジストリURL
https://docker-registry.default.svc:5000/
-
-
レジストリ管理に使用するアカウントのユーザー名とパスワードを提供してください
-
以下の形式でフィルターとしてリポジトリを追加してください。
-
組織/リポジトリ:タグ
-
例: openshift/htt*:*
-
* ですべての画像タグをスキャンします。
-
-
自動スキャンを有効にして、OpenShiftイメージストリームでイメージが更新されるとすぐにスキャンを開始します。

トークンでOpenShiftレジストリを追加
-
タイプとしてOpenShiftレジストリを選択
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力してください(デフォルトと異なる場合はOpenShiftネットワークで"oc get is"コマンドの出力から取得してください)
-
デフォルトのレジストリURL
https://docker-registry.default.svc:5000/
-
-
すべてのネームスペースにアクセスできるサービスアカウントのトークンを提供してください
-
サービスアカウントを作成し、トークンを取得するための下記の注意事項を確認してください。
-
サービスアカウントを作成
-
ocプロジェクトデフォルト
-
oc create sa nvqa
-
oc get sa
-
-
すべてのレジストリを読み取るためにサービスアカウントにクラスター管理者ロールを割り当てます
-
oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:default:nvqa
-
-
サービスアカウントのトークンを取得します
-
oc sa get-token nvqa
-
-
-
以下の形式でフィルターとしてリポジトリを追加してください。
-
組織/リポジトリ:タグ
-
例: openshift/htt*:*
-
* ですべての画像タグをスキャンします。
-
-
自動スキャンを有効にして、OpenShiftイメージストリーム上でイメージが更新されるとすぐにスキャンを開始します。

JFrog Artifactory
JFrog Artifactoryレジストリを追加します(Dockerアクセス方式は-- リポジトリパス)。JFrog管理ページの管理者用→ HTTP設定に、Dockerアクセス方式としてリポジトリパスが表示されます。

JFrog Artifactoryレジストリを追加します(Dockerアクセス方法 — リポジトリパス)
-
タイプとしてJFrog Artifactoryを選択します
-
レジストリに一意の名前を付けます
-
ポートを含むレジストリのURLを入力します。例えば
http://10.1.7.122:8081/
-
-
レジストリによって必要な場合は、ユーザー名とパスワードを提供します
-
以下の形式でリポジトリをフィルターとして追加してください
-
組織/リポジトリ:タグ
-
リポジトリまたはタグの末尾にはワイルドカードを使用できます。例:abc/*、abc/n*
-
リポジトリのすべてのタグをスキャンするには、例えばalpineを使用します:alpine:*
-
ワイルドカードの前には、完全な名前、パス、または開始文字列が必要です
-
* すべてのタグをスキャンするには
-
JFrog Artifactoryレジストリを追加します(Dockerアクセス方法—サブドメイン)
JFrog管理ページの管理者用→ HTTP設定で、Dockerアクセス方式としてサブドメインが表示されます。

JFrog Artifactoryレジストリを追加します(Dockerアクセス方法—サブドメイン)
-
タイプとしてJFrog Artifactoryを選択します
-
レジストリに一意の名前を付けます
-
ポートを含むレジストリのURLを入力します。例えば
http://10.1.7.122:8081/ -
JFrog Dockerアクセス方法としてサブドメインを選択してください
-
レジストリによって必要な場合は、ユーザー名とパスワードを提供します
-
以下の形式でリポジトリをフィルターとして追加してください
-
サブドメイン/リポジトリ:タグ
-
リポジトリまたはタグの末尾にはワイルドカードを使用できます。例:abc/*、abc/n*
-
リポジトリのすべてのタグをスキャンするには、例えばalpineを使用します:alpine:*
-
ワイルドカードの前には、完全な名前、パス、または開始文字列が必要です
-
* すべてのサブドメインからすべてのタグをスキャンするには
-
|
仮想リポジトリを作成し、すべてのローカルおよびリモートリポジトリを追加します。この仮想リポジトリをフィルターセクションに指定して、ローカルおよびリモートリポジトリからすべてのタグをスキャンします。 |
docker-localサブドメインからイメージをスキャンするために、サブドメインベースのJFrogレジストリを追加します。

すべてのサブドメインからすべてのタグをスキャンするために、サブドメインベースのJFrogレジストリを追加します。

JFrog Artifactoryレジストリを追加します(Dockerアクセス方法—ポート)。
JFrog管理ページ管理者→HTTP設定にdockerアクセス方法 - ポートが表示されます。

JFrog管理ページ管理者→ローカルリポジトリ→docker-localリポジトリ→ 詳細 - リポジトリのURLとレジストリポート8181を表示。

JFrog管理ページ管理者→ローカルリポジトリ→guoリポジトリ→ 詳細 - リポジトリのURLとレジストリポート8182を表示。

-
タイプとしてJFrog Artifactoryを選択します。
-
レジストリに一意の名前を付けます。
-
ポートを含むレジストリのURLを入力します。例えば
http://10.1.7.122:8181/。-
すべてのレジストリ名にはユニークなポートがあります。
-
-
JFrog Dockerアクセス方法としてポートを選択してください。
-
レジストリによって必要な場合は、ユーザー名とパスワードを提供します。
-
以下の形式でリポジトリをフィルターとして追加してください。
-
組織/リポジトリ:タグ。
-
リポジトリまたはタグの末尾にはワイルドカードを使用できます。例えば、abc/、abc/n。
-
リポジトリのすべてのタグをスキャンするには、例えばalpineを使用してalpine:*を使用します。
-
ワイルドカードの前には、完全な名前、パス、または開始文字列が必要です。
-
* すべてのタグをスキャンするために。
-
ポート8181でレジストリdocker-localのポートアクセス方法としてJFrogレジストリを追加しています。

ポート8182でレジストリのポートアクセス方法としてJFrogレジストリを追加しています。

すべてのローカルレジストリが追加されたポート8188の仮想レジストリのポートアクセス方法としてJFrogレジストリを追加しています。

docker-localレジストリのスキャン結果を表示しています。

SaaS JFrog Artifactoryレジストリを追加します(Dockerアクセス方法 — ポート)。
タイプとしてJFrog Artifactoryを選択します
-
レジストリに一意の名前を付けます
-
レジストリのURLを入力してください。例えば https://jfrogtraining-docker-nv-virtual.jfrog.io
-
JFrog Dockerアクセス方法としてポートを選択してください
-
レジストリによって必要な場合は、ユーザー名とパスワードを提供します
-
以下の形式でリポジトリをフィルターとして追加してください
-
組織/リポジトリ:タグ
-
* ですべてのリポジトリのすべてのタグをスキャンします
-

JFrog Artifactoryレジストリのスキャンを開始します
-
スキャンするレジストリを選択します
-
スキャンするためにスタートボタンをクリックします
-
ステータスがスキャン中からアイドルに変わるまで待ってください
-
スキャン時間はリポジトリのサイズによって異なります
-
JFrogレジストリを使用したNeuVectorレジストリのスキャン
サブドメインモードでJFrogレジストリを使用したNeuVectorレジストリのスキャンでは、サブドメインは通常JFrogレジストリURLのプレフィックスです。
標準JFrogサブドメインの例
JFrogレジストリURL: https://mysubdomain.myhost.com
-
mysubdomain: サブドメイン
-
myhost.com:JFrogレジストリホスト名
レジストリフィルターの例: mysubdomain/docker-service-broker-tmp-local/devop/test/joe/*
JFrogが調整されたサブドメインを使用する場合
レジストリURLで修正されたサブドメインを使用する場合。
JFrogレジストリURL: https://artifact-mysubdomain.myhost.com
-
artifact-mysubdomain: レジストリURLでのみ使用される修正されたサブドメイン
-
mysubdomain: JFrogサーバーの実際のサブドメイン
-
myhost.com:JFrogレジストリホスト名
レジストリフィルターの例: myrepo/docker-service-broker-tmp-local/devop/test/joe/*
|
NeuVectorは以前これらの環境をサポートしていました。しかし、NeuVectorは真のサブドメイン値がURLから来ているのかフィルターから来ているのかを判断できないため、新しいJFrogサーバーのバージョンにアップグレードした後、サポートが壊れました(例えば、artifact-mysubdomainとmysubdomain)。 |
必要な修正
サブドメインがJFrogレジストリサーバーURLのプレフィックスでない場合、この形式を使用してレジストリフィルターを構成する必要があります:
JFrogレジストリURL: https://artifact-mysubdomain.myhost.com
レジストリフィルター: <mysubdomain>/docker-service-broker-tmp-local/devop/test/joe/*
|
必要な形式: |
この形式でフィルターを指定することにより、NeuVectorはサブドメインモードでJFrogサーバーとの通信に使用される実際のサブドメインを正しく特定できます。
Googleコンテナレジストリ
参照: https://cloud.google.com/container-registry/docs/advanced-authentication https://cloud.google.com/container-registry/docs/advanced-authentication#json_key_file
プロジェクトのためにCloud Resource Manager APIを有効にする
Google Cloud Platform→プロジェクトを選択→APIとサービス→APIとサービスを有効にする→検索 “Cloud Resource Manager API”→APIを有効にする https://console.cloud.google.com/apis/library?project=nvtest-219600&q=Cloud%20Resource%20Manager%20API (プロジェクト名を変更)

SUSE® Security GUIからGoogleコンテナレジストリを追加する
-
タイプとしてGoogleレジストリを選択する
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力してください。サンプル https://gcr.io/ (これはus.gcr.io、eu.gcr.ioなどでも可能です)
-
上記でキャプチャしたjsonファイルのすべての内容をJSONキーに貼り付ける。
-
以下の形式でフィルターとしてリポジトリを追加
-
プロジェクトID/リポジトリ:タグ
-
例 nvtestid-1/neuvector*:*
-
* ですべての画像タグをスキャンします。
-

Azureコンテナレジストリ
以下に示すようにAzureコンテナのユーザー名とパスワードを取得する
Azureコンテナレジストリ → ユーザー→ アクセスキー→パスワード
コンテナレジストリアクセスのためのAzureポータルのユーザー名とパスワードを表示

SUSE® Security GUIからAzure Container Registryを追加します
-
タイプとしてAzureレジストリを選択します
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力してください。サンプル`\https://neuvector.azure.io`(Azureポータルから取得)
-
コンテナレジストリ→ユーザー→概要→ログインサーバー
-
-
ユーザー名とパスワードを追加します。
-
Azureコンテナレジストリ → ユーザー→ アクセスキー→パスワード
-
-
以下の形式でフィルターとしてリポジトリを追加
-
リポジトリ:タグ
-
例 alpine:*
-
* ですべての画像タグをスキャンします。
-
AzureコンテナレジストリのためのAzureポータルログインサーバーを表示しています

すべてのタグをスキャンするためにAzureコンテナレジストリを追加しています

Sonatype Nexus Dockerレジストリ
参照: https://help.sonatype.com/repomanager3/private-registry-for-docker https://hub.docker.com/r/sonatype/nexus3/
Sonatype Nexus Dockerレジストリを追加します
-
タイプとしてSonatype Nexusを選択します
-
レジストリにユニークな名前を付けてください。
-
ポートを含むレジストリURLを入力してください。
-
レジストリによって要求される場合は、ユーザー名とパスワードを提供してください。
-
以下の形式でフィルターとしてリポジトリを追加してください。
-
組織/リポジトリ:タグ
-
リポジトリは、先頭文字列を持つワイルドカードを使用できます。
-
例: neuvector/all*:2*
-
*ですべてのイメージタグをスキャンします。
-
スキャンのためにユーザー名/パスワードとリポジトリ*:*を持つSonatype Nexus Dockerレジストリを追加しています。

Gitlab Container Registry
サンプルGitLab環境設定
sudo docker run --detach \
--hostname gitlab \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://10.1.7.73:9096'; gitlab_rails['lfs_enabled'] = true;" \
--publish 10.1.7.73:9095:9095 --publish 10.1.7.73:9096:9096 --publish 10.1.7.73:6222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
External_URL: http://10.1.7.73:9096
Registry_URL: https://10.1.7.73:9095
以下の手順に従ってGitLabのプライベートトークンを取得します。
-
以下に示すように、GitLabのログインページの右上隅にあるアイコンから設定ページに移動します:

-
ユーザー設定ページから以下に示すように、Access_Tokensページに移動します:

-
すべての該当するフィールドに入力し、アクセストークンを生成する準備ができたら"`Create personal access token`"をクリックします:

-
ユーザーが生成されたトークンページから移動すると、アクセストークンはもはや利用できなくなります。 したがって、次のページを移動または閉じる前にアクセストークンのコピーを作成することを強くお勧めします:

外部およびレジストリのURLを取得する
外部URL: 外部URLはAPIサーバーのURLです。
レジストリURL: これはGitLabのWebコンソールのコンテナレジストリページから取得できます。 このページにアクセスする方法の一つは、GitLabのWebコンソールからプロジェクト > あなたのプロジェクト > 管理者 / … > 左ペイン(コンテナレジストリ) > マウスオーバー(root/…/)を経由することです。
以下は、外部URLとレジストリURLの両方を表示するページのサンプルスクリーンキャプチャです:

SUSE® SecurityコンソールからGitLabレジストリを追加します。
-
レジストリタイプとしてGitLabを選択します。
-
レジストリにユニークな名前を付けてください。
-
ポートを含むレジストリURLを入力してください。
-
レジストリによって要求される場合は、ユーザー名とパスワードを提供してください。
-
前のセクションから取得したGitLabの外部URLとプライベートトークンを入力してください。

|
レジストリURLは、GitLabからSUSE® Securityスキャナープラットフォームに画像をプルするために使用され、レジストリスキャンを行います。 外部URLは、レジストリスキャン機能によって使用される画像、レジストリ、およびメタデータのリストを取得するために使用されます。 |
IBM Cloud Container Registry
IBMコンテナレジストリを追加する
-
タイプとしてIBM Cloud Container Registryを選択する
-
レジストリにユニークな名前を付ける
-
レジストリURLを入力 https://us.icr.io/
-
iamapikeyをユーザー名として提供し、以下のapikeyをパスワードとして使用する
-
CLIからapikeyを作成する
-
ibmcloud iam api-key-create atibmKey
-
-
GUIからapikeyを作成する
-
IBM Cloud→アクセス管理(IAM)-IBM Cloud APIキー
-
-
-
IBM Cloudアカウントを提供する
-
CLIからIBM Cloudアカウントを取得する
-
ibmcloud cr info
-
-
-
以下の形式でフィルターとしてリポジトリを追加
-
組織/リポジトリ:タグ
-
リポジトリは、先頭文字列を持つワイルドカードを使用できます
-
例 neuvector/all:2
-
-
すべてのイメージタグをスキャンするため
-
-
-
必要に応じて他のパラメータを有効にする

|
レジストリアクセス認証のユーザー名は 'iamapikey' でなければなりません |
Harborレジストリ
ネイティブDockerレジストリと同じ手順を使用し、レジストリとしてHarborレジストリを選択します。
フィルターフィールドは空白のままにすることはできません。リポジトリフィルターを入力するか、すべてのリポジトリをスキャンするためにフィルターを*として追加してください。
GitHubコンテナレジストリ
NeuVector v5.4.3以降で利用可能になったイメージスキャンは、 GitHub Container Registry (GHCR)からサポートされており、ユーザーはGitHubに保存されたイメージをセキュリティおよびコンプライアンスのワークフローに含めることができます。
GitHubコンテナレジストリを追加
NeuVectorでGHCRを設定するには、Add Registryに移動し、レジストリタイプのドロップダウンからGitHub Container Registryを選択します。
| フィールド | 説明 |
|---|---|
名前 |
このレジストリ設定を識別するための名前。 |
レジストリに保存される設定 |
GHCRレジストリのURL。例: |
[ユーザ名] |
あなたのGitHubユーザー名。 |
トークン |
GitHub Personal Access Tokenで`read:packages`の権限を持つトークン(プライベートイメージにアクセスする場合は`repo`も必要)。 |
フィルタ |
ネームスペースをスキャンする対象として指定します(例: |
トークンの権限
GHCRにアクセスするには、次のスコープを持つGitHubトークンを生成する必要があります:
-
read:packages(必須) -
repo(プライベートリポジトリにアクセスする場合)
トークンを こちらで作成できます。



