セルフホステッドランナーについて Dependabot updates
お使いの GitHub Enterprise Server インスタンス のセキュリティ更新とバージョン更新を設定することで、Dependabot のユーザーが安全なコードを作成して維持できるよう支援できます。 Dependabot updatesを使用すると、開発者はリポジトリを構成して、依存関係が自動的に更新され、セキュリティで保護されるようにすることができます。 詳しくは、「エンタープライズ向けの Dependabot の有効化」をご覧ください。
Dependabot updatesでお使いの GitHub Enterprise Server インスタンスを使用するには、依存関係を更新するプル要求を作成するようにセルフホステッド ランナーを構成する必要があります。
前提条件
セルフホステッド ランナーの構成は、 Dependabot updatesを有効にするプロセスの途中で 1 つのステップにすぎません。 セルフホステッド ランナーでお使いの GitHub Enterprise Server インスタンスを使用するようにGitHub Actionsを構成するなど、これらの手順の前に実行する必要がある手順がいくつかあります。 詳しくは、「エンタープライズ向けの Dependabot の有効化」をご覧ください。
セルフホステッド ランナーの設定 Dependabot updates
Dependabot ランナーのシステム要件
Dependabot ランナーのために使用する 仮想マシン (VM) は、セルフホステッド ランナーの要件を満たす必要があります。 さらに、次の要件も満たしている必要があります。
-
Linux オペレーティング システム
-
x64 アーキテクチャ
-
Docker がランナー ユーザーのアクセス権を使用してインストールされていること:
- Docker をルートレス モードでインストールし、
root権限なしで Docker にアクセスするようにランナーを構成することをお勧めします。 - または、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 上の GitHub Actions については、Azure Virtual Network(VNET) またはActions Runner Controller (ARC) のいずれかを使用して、プライベート ネットワークがサポートされています。 「Actions Runner Controller を使ってセルフホステッド アクション ランナー上で動作するように Dependabot を設定する」と「Azure Private Network を使用して github でホストされるアクション ランナーで実行するように Dependabot を設定する」を参照してください。
Dependabot ランナーのネットワーク要件
Dependabot ランナーは、パブリック インターネット、 GitHub.com、および Dependabot updates で使用される内部レジストリにアクセスする必要があります。 内部ネットワークに対するリスクを最小限に抑えるには、仮想マシン (VM) から内部ネットワークへのアクセスを制限する必要があります。 これにより、ハイジャックされた依存関係をランナーがダウンロードした場合に、内部システムが損害を受ける可能性が減少します。
Dependabot ランナー向けの証明書設定
GitHub Enterprise Server インスタンスで自己署名証明書を使用している場合、または自己署名証明書を使用するレジストリDependabot操作する必要がある場合は、それらの証明書Dependabotジョブを実行するセルフホステッド ランナーにもインストールする必要があります。 このセキュリティにより、接続が強化されます。 また、ほとんどのアクションは JavaScript で記述され、オペレーティング システムの証明書ストアを使用しない Node.js を使用して実行されるため、証明書を使用するように Node.js を構成する必要があります。
Dependabot の更新用セルフホステッドランナーの追加
-
セルフホステッド ランナーを、リポジトリ、組織、またはエンタープライズ アカウント レベルでプロビジョニングします。 詳細については、「セルフホステッド ランナー」および「自己ホストランナーの追加」を参照してください。
-
上記の要件を使用して、セルフホステッド ランナーを設定します。 たとえば、Ubuntu 20.04 を実行している VM では、次のようになります。
- Docker をインストールし、ランナー ユーザーが Docker にアクセスできることを確認します。 詳細については、Docker のドキュメントをご覧ください。
- ランナーがパブリック インターネットにアクセスでき、必要な内部ネットワークにのみアクセスできることを確認 Dependabot 。
- GitHub Enterprise Server インスタンスまたはDependabotが対話する必要があるレジストリ用に自己署名証明書をインストールします。
- 同じ認定を使用するように Node.js アプリを構成する 詳しくは、「企業のGitHub Actionsのトラブルシューティング」をご覧ください。
-
dependabotに使用させる各ランナーに Dependabot ラベルを割り当ててください。 詳しくは、「セルフホストランナーとのラベルの利用」をご覧ください。 -
必要に応じて、 Dependabot によってトリガーされるワークフローで、読み取り専用以上のアクセス許可を使用し、通常使用できるシークレットにアクセスできるようにします。 詳しくは、「企業のGitHub Actionsのトラブルシューティング」をご覧ください。