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 リポジトリに移動し、containers.json ファイルから dependabot-updater および dependabot-proxy コンテナー イメージに関する情報を取得します。

    GitHub Enterprise Server の各リリースには、https://HOSTNAME/github/dependabot-action/blob/ghes-VERSION/docker/containers.json にある更新された 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 アクセスの削除」を参照してください。