Skip to main content

制限付きインターネット アクセスで動作するように Dependabot を構成する

Dependabot を構成し、GitHub Enterprise Server でインターネット アクセスが制限されているか、アクセスできない場合に、プライベート レジストリを使用してバージョンとセキュリティ更新プログラムの pull request を生成できます。

Dependabot の更新について

Dependabot updates を使用して脆弱性を修正し、GitHub Enterprise Server で依存関係を更新して最新バージョンに保つことができます。 Dependabot updates の Dependabot には、セルフホステッド ランナーを含む GitHub Actions が必要です。 Dependabot アラートとセキュリティ更新では、GitHub Connect を使ってアクセスされた GitHub Advisory Database からの情報が使用されます。 詳細については、「エンタープライズでの Dependabot 更新プログラムのセルフホステッド ランナーの管理」および「エンタープライズ向けの Dependabot の有効化」を参照してください。

Dependabot を使うと、既定でパブリック レジストリにアクセスできます。また、プライベート レジストリにアクセスできるように Dependabot を構成することもできます。 または、インスタンスでインターネット アクセスが制限されているかアクセスできない場合、セキュリティとバージョン更新のソースとしてプライベート レジストリのみを使用するように Dependabot を構成できます。 プライベート レジストリとしてサポートされるエコシステムの詳細については、「パブリック レジストリへの Dependabot アクセスの削除」を参照してください。

以下の手順では、次の制限事項がある Dependabot ランナーを設定する必要があることを前提としています。

  • インターネット アクセスがありません。
  • Dependabot のプライベート レジストリなど、制限された内部リソースへのアクセス。

Dependabot ランナーのインターネット アクセスの制限

Dependabot を構成する前に、セルフホステッド ランナーに Docker をインストールします。 詳しくは、「エンタープライズでの Dependabot 更新プログラムのセルフホステッド ランナーの管理」をご覧ください。

  1. GitHub Enterprise Server で、github/dependabot-action リポジトリに移動し、dependabot-updater ファイルから dependabot-proxy および containers.json コンテナー イメージに関する情報を取得します。

    GitHub Enterprise Server の各リリースには、containers.json にある更新された https://HOSTNAME/github/dependabot-action/blob/ghes-VERSION/docker/containers.json ファイルが含まれています。 ファイルの GitHub.com バージョンは containers.json にあります。

  2. docker pull コマンドを使用して、GitHub Container registryから Dependabot ランナーにすべてのコンテナー イメージを事前に読み込みます。 または、dependabot-proxy イメージをプリロードしてから、必要なエコシステムのコンテナ イメージのみをプリロードします。

    たとえば、npm と GitHub Actions をサポートするには、次のコマンドを使用し、containers.json ファイルから読み込むイメージの詳細をコピーして、各イメージの正しいバージョンと SHA があることを確かめることができます。

    docker pull ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy:VERSION@SHA
    docker pull ghcr.io/dependabot/dependabot-updater-github-actions:VERSION@SHA
    docker pull ghcr.io/dependabot/dependabot-updater-npm:VERSION@SHA
    

    メモ

    新しいマイナー バージョンの GitHub Enterprise Server にアップグレードする場合、または GitHub.com から Dependabot アクションを手動で更新する場合は、このステップを繰り返す必要があります。 詳しくは、「GitHub.com からアクションを手動で同期する」をご覧ください。

  3. ランナーへのこれらのイメージの追加が完了したら、Dependabot ランナーへのインターネット アクセスを制限し、必要なエコシステムと GitHub Enterprise Server のプライベート レジストリに引き続きアクセスできるようにすることができます。

    Dependabot ランナーでは、Dependabot ジョブの実行の開始時に dependabot-updaterdependabot-proxy を GitHub Container registryからプルするため、最初にイメージを追加する必要があります。

Dependabot ランナーの構成の確認

  1. テスト リポジトリの場合は、プライベート レジストリにアクセスし、パブリック レジストリへのアクセスを削除するように Dependabot を構成します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」および「パブリック レジストリへの Dependabot アクセスの削除」を参照してください。

  2. リポジトリの [分析情報] タブで、 [依存関係グラフ] をクリックして依存関係の詳細を表示します。

  3. [Dependabot] をクリックして、バージョン更新用に構成されたエコシステムを表示します。

  4. テストするエコシステムについては [最後のチェックは <時間> 前] をクリックして [更新ログ] ビューを表示します。

  5. [更新の確認] をクリックして、そのエコシステムの依存関係に対する新しい更新を確認します。

更新の確認が完了したら、[更新ログ] ビューを調べ、バージョンの更新を確かめるために Dependabot がインスタンスの構成済みプライベート レジストリにアクセスしたことを検証する必要があります。

構成が正しいことを検証した後、リポジトリ管理者に対して、プライベート レジストリのみを使用するように Dependabot 構成を更新するように依頼します。 詳しくは、「パブリック レジストリへの Dependabot アクセスの削除」をご覧ください。