Skip to main content

エンタープライズでの Dependabot 更新プログラムのセルフホステッド ランナーの管理

Enterprise 上のリポジトリで使用される依存関係をセキュリティで保護して維持するための pull request を作成する目的で Dependabot によって使用される お使いの GitHub Enterprise Server インスタンス の専用ランナーを作成できます。

Dependabot updates のセルフホステッド ランナーについて

Dependabot のセキュリティとバージョン更新プログラムを設定することで、お使いの GitHub Enterprise Server インスタンス のユーザーが、安全なコードを作成して管理できるようにします。 Dependabot updatesを使用すると、開発者は、依存関係が自動的に更新されてセキュアな状態が維持されるようにリポジトリを構成できます。 詳しくは、「エンタープライズ向けの Dependabot の有効化」を参照してください。

お使いの GitHub Enterprise Server インスタンス 上で Dependabot updates を使うには、依存関係を更新する pull request を作成するようにセルフホステッド ランナーを構成する必要があります。

前提条件

セルフホステッド ランナーの構成は、Dependabot updates を有効化するプロセス内の 1 つの手順にすぎません。 これらの手順の前には、セルフホステッド ランナーで GitHub Actions を使うように お使いの GitHub Enterprise Server インスタンス を構成することを含め、従うべきいくつかの手順があります。 詳しくは、「エンタープライズ向けの Dependabot の有効化」を参照してください。

Dependabot updates用のセルフホステッド ランナーの構成

# Dependabot ランナーのシステム要件

Dependabot ランナーのために使用する 仮想マシン (VM) は、セルフホステッド ランナーの要件を満たす必要があります。 さらに、次の要件も満たしている必要があります。

  • Linux オペレーティング システム

  • x64 アーキテクチャ

  • Docker がランナー ユーザーのアクセス権を使用してインストールされていること:

    • Docker をルートレス モードでインストールし、root 権限なしで Docker にアクセスするようにランナーを構成することをお勧めします。
    • または、Docker をインストールしてから、Docker を実行するための昇格権限をランナー ユーザーに付与します。

CPU とメモリの要件は、特定の VM にデプロイする同時実行ランナーの数によって異なります。 ガイダンスとしては、1 台の 2 CPU 8 GB マシンに 20 台のランナーを正常に設定できました。ただし、最終的に CPU とメモリの要件は更新対象のリポジトリによって大きく異なります。 エコシステムによっては、他のエコシステムよりも多くのリソースが必要になります。

14 を超える同時実行ランナーを 1 つの VM に指定する場合は、Docker が作成できるネットワークの既定数を増やすように Docker の /etc/docker/daemon.json 構成も更新する必要があります。

{
  "default-address-pools": [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Dependabot ランナーのネットワーク要件

Dependabot ランナーは、パブリック インターネット、GitHub.com、および Dependabot updates 更新プログラムで使用されるすべての内部レジストリへのアクセスが必要です。 内部ネットワークに対するリスクを最小限に抑えるには、仮想マシン (VM) から内部ネットワークへのアクセスを制限する必要があります。 これにより、ハイジャックされた依存関係をランナーがダウンロードした場合に、内部システムが損害を受ける可能性が減少します。

Dependabot ランナーの構成の認定

GitHub Enterprise Server インスタンスが自己署名証明書を使用している場合、または Dependabot が自己署名証明書を使用するレジストリと対話する必要がある場合、それらの証明書は、Dependabot ジョブを実行するセルフホステッド ランナーにもインストールする必要があります。 このセキュリティにより、接続が強化されます。 また、ほとんどのアクションは JavaScript で記述され、オペレーティング システムの証明書ストアを使用しない Node.js を使用して実行されるため、証明書を使用するように Node.js を構成する必要があります。

Dependabot 更新プログラム用のセルフホステッド ランナーの追加

  1. セルフホステッド ランナーを、リポジトリ、組織、またはエンタープライズ アカウント レベルでプロビジョニングします。 詳細については、「自己ホスト ランナーの概要」および「自己ホストランナーの追加」を参照してください。

  2. 上記の要件を使用して、セルフホステッド ランナーを設定します。 たとえば、Ubuntu 20.04 を実行している VM では、次のようになります。

  3. dependabot ラベルを、Dependabot で使用する各ランナーに割り当てます。 詳しくは、「セルフホストランナーとのラベルの利用」を参照してください。

  4. 必要に応じて、Dependabot によってトリガーされるワークフローで、読み取り専用を上回るアクセス許可を使用し、通常提供されているシークレットにアクセスできるようにします。 詳しくは、「Enterprise 向け GitHub Actions のトラブルシューティング」を参照してください。