Skip to main content

グループを使用してセルフホストランナーへのアクセスを管理する

ポリシーを使用して、組織に追加されたセルフホスト ランナーへのアクセスを制限できます。

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

Enterprise accounts, organizations owned by enterprise accounts, and organizations using GitHub Team or GitHub Free plans can create and manage additional runner groups using self-hosted runners.

ランナー グループについて

Organization レベルでは、GitHub Team プランを使っている Organization は、ランナー グループを使用できます。ランナー グループは、ランナーのセットを収集し、その周囲にセキュリティ境界を作成するために使用されます。

ランナー グループにアクセス権を付与すると、そのランナー グループが オーガニゼーションのランナー設定に表示されます。 必要に応じて、リポジトリの詳細な追加アクセス ポリシーを、ランナー グループに割り当てることができます。

特に指定がなければ、新しいランナーが作成されると、自動的に既定のグループに割り当てられます。 ランナーは一度に1つのグループにのみ参加できます。 ランナーは、別のランナー グループに移動できます。 詳しくは、「ランナーをグループに移動する」をご覧ください。

特定のグループのランナーにジョブをルーティングする方法についての情報は、「ジョブのランナーを選択する」を参照してください。

Organization のセルフホストランナーグループを作成する

Warning

自己ホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、自己ホスト ランナー マシン上で危険なコードが実行される可能性があるからです。

詳しくは、「自己ホスト ランナーの概要」を参照してください。

Note

ランナー グループを作成するときは、ランナー グループにアクセスできるリポジトリが定義されているポリシーを選ぶ必要があります。 ランナー グループにアクセスできるリポジトリとワークフローを変更するには、Organization の所有者が Organization のポリシーを設定できます。 詳しくは、「エンタープライズで GitHub Actions のポリシーを適用する」を参照してください。

すべての Organization には、単一の既定のランナー グループがあります。 GitHub Team プランを使用している Organization の所有者は、追加の Organization レベルのランナー グループを作成できます。

登録プロセスでグループを指定しなかった場合、ランナーは自動的に既定のグループに追加されます。 後で、ランナーを既定のグループからカスタム グループに移動することができます。 詳しくは、「ランナーをグループに移動する」をご覧ください。

REST API を使ってランナー グループを作成する方法について詳しくは、「GitHub Actions 用の REST API エンドポイント」をご覧ください。

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

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

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

  3. 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。

  4. "ランナー グループ" セクションで、 [新しいランナー グループ] をクリックします。

  5. ランナー グループの名前を入力します。

  6. リポジトリ アクセスのポリシーを割り当てます。

    ランナー グループは、特定のリストのリポジトリまたは組織のすべてのリポジトリにアクセスできるように構成できます。 既定では、ランナー グループのランナーにアクセスできるのはプライベート リポジトリのみですが、これはオーバーライドできます。 エンタープライズによって共有された組織のランナー グループを構成する場合、この設定をオーバーライドすることはできません。

  7. [グループの作成] をクリックしてグループを作成し、ポリシーを適用します。

ランナー グループにアクセスできるリポジトリを変更する

Warning

自己ホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、自己ホスト ランナー マシン上で危険なコードが実行される可能性があるからです。

詳しくは、「自己ホスト ランナーの概要」を参照してください。

組織のランナー グループの場合、組織内のどのリポジトリがランナー グループにアクセスできるかを変更できます。

  1. ランナー グループが配置されている組織のメイン ページに移動します。
  2. [ 設定] をクリックします。
  3. 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
  4. グループのリストで、構成するランナー グループをクリックします。
  5. 「リポジトリ アクセス」で、ドロップダウン メニューを使って [選択したリポジトリ] をクリックします。
    1. ドロップダウン メニューの右側にある をクリックします。
    2. ポップアップで、チェックボックスを使って、このランナー グループにアクセスできるリポジトリを選択します。
  6. [グループの保存] をクリックします。

ランナー グループの名前を変更する

  1. ランナー グループが配置されている組織のメイン ページに移動します。
  2. [ 設定] をクリックします。
  3. 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
  4. グループのリストで、構成するランナー グループをクリックします。
  5. [グループ名] のテキスト フィールドに新しいランナー グループ名を入力します。
  6. [保存] をクリックします。

セルフホスト ランナーをグループに自動的に追加する

構成スクリプトを使うと、新しいランナーをグループに自動的に追加できます。 たとえば、このコマンドを実行すると、新しいランナーが登録されて、--runnergroup パラメーターを使って rg-runnergroup という名前のグループに追加されます。

./config.sh --url $org_or_enterprise_url --token $token --runnergroup rg-runnergroup

ランナー グループが存在しない場合、コマンドは失敗します。

Could not find any self-hosted runner group named "rg-runnergroup".

セルフホストランナーをグループに移動する

登録プロセス中にランナー グループを指定しない場合、新しいランナーは、自動的に既定のグループに割り当てられ、その後別のグループへの移動が可能となります。

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

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

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

  3. 左のサイドバーで [アクション] をクリックしてから、 [ランナー] をクリックします。

  4. "ランナー" の一覧で、構成するランナーをクリックします。

  5. [ランナー グループ] ドロップダウンを選択します。

  6. "ランナーをグループに移動" で、ランナーの移動先グループを選択します。

セルフホストランナーグループを削除する

ランナー グループを削除するには、まず、グループからすべてのランナーを移動するか削除する必要があります。

  1. ランナー グループが配置されている組織のメイン ページに移動します。
  2. [ 設定] をクリックします。
  3. 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
  4. グループの一覧で、削除するグループの右側にある をクリックします。
  5. グループを削除するには、 [グループの削除] をクリックします。
  6. 確認プロンプトを確認し、 [Remove this runner group](このランナー グループの削除) をクリックします。