メモ
この記事の情報と手順は、Linux または Windows オペレーティング システムを搭載した より大きなランナー にのみ適用されます。
About runner groups
Organization や Enterprise レベルのランナーへのアクセスを制御するために、Enterprise と Organization の所有者はランナー グループを使用できます。ランナー グループは、ランナーのセットを収集し、その周囲にセキュリティ境界を作成するために使用されます。
ランナー グループにアクセス権を付与すると、そのランナー グループが オーガニゼーションのランナー設定に表示されます。 必要に応じて、追加の詳細なリポジトリおよびワークフロー アクセス ポリシーをランナー グループに割り当てることができます。
特に指定がなければ、新しいランナーが作成されると、自動的に既定のグループに割り当てられます。 ランナーは一度に1つのグループにのみ参加できます。 ランナーは、別のランナー グループに移動できます。 詳細については、ランナーのグループへの移動に関する記事を参照してください。
特定のグループのランナーにジョブをルーティングする方法については、「Choosing the runner for a job」を参照してください。
Managing access to your runners
メモ
Before your workflows can send jobs to より大きなランナーs, you must first configure permissions for the runner group. See the following sections for more information.
Runner groups are used to control which repositories can run jobs on your より大きなランナーs. You must manage access to the group from each level of the management hierarchy, depending on where you've defined the より大きなランナー:
- Runners at the enterprise level: 既定では、Organization 内のリポジトリは Enterprise レベルのランナー グループにアクセスできません。 リポジトリに Enterprise ランナー グループへのアクセス権を付与するには、Organization の所有者が各 Enterprise ランナー グループを構成し、アクセスできるリポジトリを選ぶ必要があります。
- Runners at the organization level: 既定では、Organization 内のすべてのリポジトリに、Organization レベルのランナー グループへのアクセス権が付与されます。 アクセスできるリポジトリを制限するには、Organization の所有者と "Organization ランナーとランナー グループの管理" アクセス許可を持つユーザーが Organization ランナー グループを構成し、アクセスできるリポジトリを選ぶ必要があります。
For example, the following diagram has a runner group named grp-ubuntu-20.04-16core
at the enterprise level. Before the repository named octo-repo
can use the runners in the group, you must first configure the group at the enterprise level to allow access to the octo-org
organization. You must then configure the group at the organization level to allow access to octo-repo
.
Creating a runner group for an organization
警告
固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
メモ
ランナー グループを作成するときは、ランナー グループにアクセスできるリポジトリとワークフローが定義されているポリシーを選ぶ必要があります。 ランナー グループにアクセスできるリポジトリとワークフローを変更するには、Organization の所有者と、"Organization ランナーとランナー グループの管理" アクセス許可を持つユーザーが Organization のポリシーを設定できます。 詳しくは、「エンタープライズで GitHub Actions のポリシーを適用する」をご覧ください。
すべての Organization には、単一の既定のランナー グループがあります。 Organization の所有者と、"Organization ランナーとランナー グループの管理" アクセス許可を持つユーザーは、追加の Organization レベルのランナー グループを作成できます。 カスタム organization の役割の詳細については、「カスタム組織の役割の情報」を参照してください。
登録プロセスでグループを指定しなかった場合、ランナーは自動的に既定のグループに追加されます。 後で、ランナーを既定のグループからカスタム グループに移動することができます。 詳細については、ランナーのグループへの移動に関する記事を参照してください。
REST API を使ってランナー グループを作成する方法については、「GitHub Actions 用の REST API エンドポイント」を参照してください。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
-
"ランナー グループ" セクションで、 [新しいランナー グループ] をクリックします。
-
ランナー グループの名前を入力します。
-
リポジトリ アクセスのポリシーを割り当てます。
ランナー グループは、特定のリストのリポジトリまたは組織のすべてのリポジトリにアクセスできるように構成できます。 既定では、ランナー グループのランナーにアクセスできるのはプライベート リポジトリのみですが、これはオーバーライドできます。 エンタープライズによって共有された組織のランナー グループを構成する場合、この設定をオーバーライドすることはできません。
-
ワークフロー アクセス用のポリシーを割り当てます。
特定のワークフローの一覧またはすべてのワークフローからアクセスできるようにランナー グループを構成できます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。 ランナー グループにアクセスできるワークフローを指定する場合は、リポジトリ名と所有者を含むワークフローへの完全なパスを使用し、ワークフローをブランチ、タグ、または完全 SHA にピン留めする必要があります。 (例:
octo-org/octo-repo/.github/workflows/build.yml@refs/tags/v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@refs/heads/main
)。あいまいな参照は完全に修飾することをお勧めします。 たとえば、参照として
main
を指定するのではなく、refs/heads/main
を指定します。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。Organization が所有するランナー グループは、Enterprise 内の別の organization のワークフローにアクセスすることはできません。代わりに、Enterprise が所有するランナー グループを作成する必要があります。 1. [グループの作成] をクリックしてグループを作成し、ポリシーを適用します。
Creating a runner group for an enterprise
警告
固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
Enterprise を使うと、ランナーがグループに追加されて、アクセス管理を行うことができます。 Enterprise は、Enterprise アカウント内の特定の organization、または特定のワークフローにアクセスできるランナーのグループを作成できます。 Organization 所有者は、追加の詳細なリポジトリまたはワークフロー アクセス ポリシーを Enterprise ランナー グループに割り当てることができます。 REST API を使ってランナー グループを作成する方法については、GitHub Actions REST API の Enterprise エンドポイントをご覧ください。
登録プロセスでグループを指定しなかった場合、ランナーは自動的に既定のグループに追加されます。 後で、ランナーを既定のグループからカスタム グループに移動することができます。 詳細については、ランナーのグループへの移動に関する記事を参照してください。
グループを作成するときは、ランナーグループにアクセスできる Organization を定義するポリシーを選択する必要があります。
-
GitHub の右上隅にあるプロフィール写真をクリックします。
-
ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
-
ページの上部にある [ Policies] をクリックします。
-
「 ポリシー」で、[アクション] をクリックします。
-
[ランナー グループ] タブをクリックします。
-
[New runner group](新しいランナー グループ) をクリックします。
-
[グループ名] に、ランナー グループの名前を入力します。1. Organization アクセスのポリシーを選ぶには、 [Organization のアクセス] ドロップダウン メニューを選び、[ポリシー] をクリックします。 組織の特定のリストまたはエンタープライズ内のすべての組織にアクセス可能なランナー グループを設定できます。
-
ワークフロー アクセス用のポリシーを割り当てます。
特定のワークフローの一覧またはすべてのワークフローからアクセスできるようにランナー グループを構成できます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。 ランナー グループにアクセスできるワークフローを指定する場合は、リポジトリ名と所有者を含むワークフローへの完全なパスを使用し、ワークフローをブランチ、タグ、または完全 SHA にピン留めする必要があります。 (例:
octo-org/octo-repo/.github/workflows/build.yml@refs/tags/v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@refs/heads/main
)。あいまいな参照は完全に修飾することをお勧めします。 たとえば、参照として
main
を指定するのではなく、refs/heads/main
を指定します。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。
-
[グループの保存] をクリックしてグループを作成し、ポリシーを適用します。
ランナー グループに一意の名前を使用する
GitHub Actions では、ランナー グループ名が Organization レベルで一意である必要があります。 つまり、Organization は、Enterprise 内のランナー グループと同じ名前を持つものを作成できなくなります。 さらに、ユーザーには、Enterprise 内のグループと同じ名前を共有するすべてのランナー グループに、Organization グループの名前を変更することを提案する警告バナーが表示されます。
あいまいさを回避するために、Organization と Enterprise に重複するランナー グループがある場合、ワークフローは失敗します。 これに対処するには、Organization 内または Enterprise のいずれかのランナー グループの名前を変更するか、ワークフロー ファイルを更新してランナー グループ名にプレフィックスを追加します。
org/
またはorganization/
ent/
またはenterprise/
例: プレフィックスを使用してランナー グループを区別する
たとえば、Organization 内に my-group
という名前のランナー グループがあり、Enterprise 内に my-group
という名前のランナー グループがある場合は、ワークフロー ファイルを更新して、org/my-group
または ent/my-group
を使用して 2 つを区別できます。
org/
の使用
runs-on:
group: org/my-group
labels: [ self-hosted, label-1 ]
ent/
の使用
runs-on:
group: ent/my-group
labels: [ self-hosted, label-1 ]
Changing which organizations can access a runner group
警告
固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
For runner groups in an enterprise, you can change what organizations in the enterprise can access a runner group.
-
GitHub の右上隅にあるプロフィール写真をクリックします。
-
ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
-
ページの上部にある [ Policies] をクリックします。
-
「 ポリシー」で、[アクション] をクリックします。
-
[ランナー グループ] タブをクリックします。
-
[Organization アクセス] で、ドロップダウン メニューを使用して [選択した Organization ] をクリックします。
- ドロップダウン メニューの右側にある をクリックします。
- ポップアップで、チェックボックスを使って、このランナー グループを使用できる Organization を選択します。
-
[グループの保存] をクリックします。
Changing which repositories can access a runner group
警告
固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
For runner groups in an organization, you can change what repositories in the organization can access a runner group.
- ランナー グループが配置されている組織のメイン ページに移動します。
- [ 設定] をクリックします。
- 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
- グループのリストで、構成するランナー グループをクリックします。
- 「リポジトリ アクセス」で、ドロップダウン メニューを使って [選択したリポジトリ] をクリックします。
- ドロップダウン メニューの右側にある をクリックします。
- ポップアップで、チェックボックスを使って、このランナー グループにアクセスできるリポジトリを選択します。
- [グループの保存] をクリックします。
Changing which workflows can access a runner group
警告
固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
選択したワークフローまたはすべてのワークフローを実行するようにランナー グループを構成できます。 たとえば、この設定を使って、ランナーに格納されているシークレットを保護したり、ランナー グループが特定の再利用可能なワークフローのみを実行するように制限してデプロイ ワークフローを標準化したりすることができます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。
- Changing which workflows can access an organization runner group
- Changing which workflows can access an enterprise runner group
Changing which workflows can access an organization runner group
-
ランナー グループが配置されている組織のメイン ページに移動します。
-
[ 設定] をクリックします。
-
左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
-
グループのリストで、構成するランナー グループをクリックします。
-
[ワークフロー アクセス] で、ドロップダウン メニューを選択し、 [選択したワークフロー] をクリックします。
-
をクリックします。
-
ランナー グループにアクセスできるワークフローのコンマ区切りの一覧を入力します。 リポジトリ名と所有者を含む完全なパスを使用します。 ワークフローをブランチ、タグ、または完全 SHA にピン留めします。 (例:
octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main
)。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。
組織所有のランナー グループは、エンタープライズ内の別の組織からワークフローにアクセスできません。代わりに、エンタープライズ所有のランナー グループを作成する必要があります。
-
[保存] をクリックします。
Changing which workflows can access an enterprise runner group
-
GitHub の右上隅にあるプロフィール写真をクリックします。
-
ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
-
ページの上部にある [ Policies] をクリックします。
-
「 ポリシー」で、[アクション] をクリックします。
-
[ランナー グループ] タブをクリックします。
-
グループのリストで、構成するランナー グループをクリックします。
-
[ワークフロー アクセス] で、ドロップダウン メニューを選択し、 [選択したワークフロー] をクリックします。
-
をクリックします。
-
ランナー グループにアクセスできるワークフローのコンマ区切りの一覧を入力します。 リポジトリ名と所有者を含む完全なパスを使用します。 ワークフローをブランチ、タグ、または完全 SHA にピン留めします。 (例:
octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main
)。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。
組織所有のランナー グループは、エンタープライズ内の別の組織からワークフローにアクセスできません。代わりに、エンタープライズ所有のランナー グループを作成する必要があります。
-
[保存] をクリックします。
Configuring private network access for larger runners
Azure VNET での GitHub ホストランナーを使用できます。 これにより、ランナーのネットワーク ポリシーを完全に制御しながら、CI/CD の GitHub マネージド インフラストラクチャを利用することができます。 Azure VNET の詳細については、Azure ドキュメントの「Azure Virtual Network とは」を参照してください。
If you have configured your enterprise or organization to connect to an Azure VNET, you can give runner groups access to the virtual network. For more information, see GitHub ホスト ランナーを使用したプライベート ネットワークについて.
Changing the name of a runner group
You can rename runner groups at the enterprise and organization levels.
Changing the name of an organization runner group
- ランナー グループが配置されている組織のメイン ページに移動します。
- [ 設定] をクリックします。
- 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
- グループのリストで、構成するランナー グループをクリックします。
- [グループ名] のテキスト フィールドに新しいランナー グループ名を入力します。
- [保存] をクリックします。
Changing the name of an enterprise runner group
- GitHub の右上隅にあるプロフィール写真をクリックします。
- ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
- ページの上部にある [ Policies] をクリックします。
- 「 ポリシー」で、[アクション] をクリックします。
- [ランナー グループ] タブをクリックします。
- グループのリストで、構成するランナー グループをクリックします。
- [グループ名] のテキスト フィールドに新しいランナー グループ名を入力します。
- [保存] をクリックします。
Moving a runner to a group
登録プロセス中にランナー グループを指定しない場合、新しいランナーは、自動的に既定のグループに割り当てられ、その後別のグループへの移動が可能となります。
Moving an organization runner to a group
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
左のサイドバーで [アクション] をクリックしてから、 [ランナー] をクリックします。
-
"ランナー" の一覧で、構成するランナーをクリックします。
-
[ランナー グループ] ドロップダウンを選択します。
-
"ランナーをグループに移動" で、ランナーの移動先グループを選択します。
Moving an enterprise runner to a group
- GitHub の右上隅にあるプロフィール写真をクリックします。
- ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
- ページの上部にある [ Policies] をクリックします。
- 「 ポリシー」で、[アクション] をクリックします。
- [Runners](ランナー) タブをクリックします。
- "ランナー" の一覧で、構成するランナーをクリックします。
- [ランナー グループ] ドロップダウンを選択します。
- "ランナーをグループに移動" で、ランナーの移動先グループを選択します。
Removing a runner group
ランナー グループを削除するには、まず、グループからすべてのランナーを移動するか削除する必要があります。
Removing a runner group from an organization
- ランナー グループが配置されている組織のメイン ページに移動します。
- [ 設定] をクリックします。
- 左サイドバーにある [アクション] をクリックし、 [ランナー グループ] をクリックします。
- グループの一覧で、削除するグループの右側にある をクリックします。
- グループを削除するには、 [グループの削除] をクリックします。
- 確認プロンプトを確認し、 [Remove this runner group](このランナー グループの削除) をクリックします。
Removing a runner group from an enterprise
- GitHub の右上隅にあるプロフィール写真をクリックします。
- ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
- ページの上部にある [ Policies] をクリックします。
- 「 ポリシー」で、[アクション] をクリックします。
- [ランナー グループ] タブをクリックします。
- グループの一覧で、削除するグループの右側にある をクリックします。
- グループを削除するには、 [グループの削除] をクリックします。
- 確認プロンプトを確認し、 [Remove this runner group](このランナー グループの削除) をクリックします。