Skip to main content

Azure プライベート ネットワークを使って github ホステッド アクション ランナー上で実行するように Dependabot を設定する

GitHub ホステッド ランナー上で Dependabot を実行するように Azure 仮想ネットワーク (VNET) を構成できます。

この機能を使用できるユーザーについて

書き込み アクセスを持つユーザー

Dependabot updates 用に VNET を構成する

メモ

現在、GitHub Actions での Dependabot に対する VNET のサポートはパブリック プレビュー段階であり、変更される可能性があります。

この記事では、VNET を使って構成された GitHub ホステッド ランナー上で Dependabot を実行するための詳細な手順について説明します。 この記事では、次の内容について説明します:

  • VNET 構成を使って Enterprise または organization のランナー グループを作成する方法。
  • ランナー グループ内の Dependabot に対して、GitHub ホステッド ランナーを作成する方法。
  • 大規模なランナー上で Dependabot を有効にする方法。
  • Azure VNET ファイアウォールの IP 規則を構成する方法。

GitHub ホステッド ランナーを Azure VNET で使うには、まず Azure リソースを構成してから、GitHub にプライベート ネットワーク構成を作成する必要があります。

Azure リソースの構成する

GitHub ホステッド ランナーと Azure プライベート ネットワークを使う方法については、「Azure リソースの構成」を参照してください。

メモ

  • Azure リソースを構成するスクリプトで必要な databaseId は、リソースを Enterprise または organization のどちらに構成しているかに応じて、次のいずれかを参照できます。
  • Enterprise スラッグ。Enterprise の URL (https://github.com/enterprises/SLUG) を調べることで特定できます。または
  • Organization アカウントのログイン。Organization の URL (https://github.com/organizations/ORGANIZATION_LOGIN) を確認することで特定できます。
  • このスクリプトは、作成されたリソースの完全なペイロードを返します。 作成されたリソースのペイロードで返される GitHubId ハッシュ値は、GitHub でネットワーク構成を設定するときに、次の手順で使うネットワーク設定リソース ID です。

Enterprise 内の Dependabot updates 用に VNET 挿入ランナーを構成する

Azure リソースを構成した後、Enterprise レベルまたは Organization レベルでネットワーク構成を作成することで、プライベート ネットワークに Azure Virtual Network (VNET) を使用できます。 その後、そのネットワーク構成をランナー グループに関連付けることができます。

  1. Enterprise 用に新しいネットワーク構成を追加します。 「Enterprise 用の新しいネットワーク構成を追加する」を参照してください。
  2. Enterprise 用のランナー グループを作成し、Dependabot updates を実行する organization を選びます。 「Enterprise 用のランナー グループを作成する」を参照してください。
  3. GitHub ホステッド ランナーを作成し、Enterprise ランナー グループに追加します。 ラージャー ランナーを Enterprise に追加する方法に関する記事を参照してください。 重要な点は次のとおりです。
    • ランナー名は dependabot にする必要があります

    • Linux x64 プラットフォームを選びます。

    • 適切な Ubuntu バージョンを選びます。

    • GitHub ホステッド ランナーをランナー グループに追加するときに、前の手順で作成したランナー グループを選びます。

    メモ

    GitHub ホステッド ランナーに dependabot という名前を付けると、ランナーに dependabot ラベルが割り当てられ、アクションで Dependabot によってトリガーされるジョブを選択できるようになります。

Organization に対して Dependabot を有効にする

大規模なランナー上で Dependabot を有効にするには、organization の "セルフホステッド ランナー" 上で Dependabot を有効にする必要があります。__ ラージャー ランナー上での Dependabot の有効化または無効化に関する記事を参照してください。

  1. GitHub の右上隅でプロフィール写真を選んでから、 [Your organizations] をクリックします。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [Security] セクションで、[Advanced Security] ドロップダウン メニューを選び、[Global settings] をクリックします。

  4. Dependabot で、セルフホステッド ランナーの Dependabot を選びます。 この手順は必須です。dependabot という名前の大規模な GitHub ホステッド ランナー上で将来の Dependabot ジョブが実行されるようにするためです。

Dependabot の実行のトリガー

VNET を使ってプライベート ネットワークの設定を完了したので、Dependabot の実行を開始できます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Insights] タブをクリックします。

  3. 左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。

    [依存関係グラフ] タブのスクリーンショット。タブはオレンジ色の枠線で強調されています。

  4. [依存関係グラフ] で、 [Dependabot] をクリックします。

  5. 関心のあるマニフェスト ファイル名の右側にある [Recent update jobs] をクリックします。

  6. マニフェスト ファイルの最近の更新ジョブがない場合は、[Check for updates] をクリックして、Dependabot のバージョン更新ジョブを再実行し、そのエコシステムの依存関係に対する新しい更新プログラムをチェックします。

Dependabot updates のログとアクティブ ジョブをチェックする

  • リポジトリの [Actions] タブで、Dependabot ワークフローのログを表示できます。 [Actions] ページの左側にあるサイドバーで、必ず Dependabot ジョブを選びます。

    [Dependabot in vnet] ワークフローのログの例。 Dependabot ジョブがオレンジ色の枠線で囲まれています。

  • ランナーに関する情報を含むページで、アクティブなジョブを表示できます。 このページにアクセスするには、Enterprise の [Policies] タブをクリックし、左側のサイドバーで [Actions] を選び、[Runner group] タブをクリックして、ランナーを選びます。

    Dependabot ランナーのアクティブなジョブを示すスクリーンショット。

Azure VNET ファイアウォールの IP 規則を構成する

ファイアウォールに IP 許可リストを使って Azure VNET 環境を構成している場合は、必要に応じて、メタ API エンドポイントから取得された GitHub ホステッド ランナーの IP アドレスを使うように許可 IP アドレスの一覧を更新します。

  • GitHub は、その IP 範囲に対して次のパブリック エンドポイントを提供します。

    GET https://api.github.com/meta

  • 次の curl コマンドをコピーしてターミナルまたはコマンド プロンプトに貼り付け、プレースホルダーのベアラー トークン値を実際の値に置き換えます。

    Bash
          curl -L \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer YOUR-TOKEN" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          https://api.github.com/meta
    
  • 応答から actions キーを探します。

        "actions": [ ... ]
    

    これらは、Dependabot とホステッド ランナーを含む GitHub Actions ランナーによって使われる IP 範囲です。

  • これらの IP をファイアウォールの許可リストに追加します。