Skip to main content

エンタープライズで GitHub Actions のポリシーを適用する

エンタープライズの 組織内で GitHub Actions に対してポリシーを適用したり、各 組織でポリシーを設定したりできます。

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

Enterprise owners and users with the "Manage organization Actions policies" permission can enforce policies for GitHub Actions in an enterprise.

エンタープライズの GitHub Actions のポリシーについて

GitHub Actions は、エンタープライズのメンバーが GitHub Enterprise Cloud でソフトウェア開発のワークフローを自動化する際に役立ちます。 詳しくは、「GitHub Actions を理解する」を参照してください。

GitHub.com のすべての組織は、GitHub Actions を使用できます。 GitHub Enterprise Cloud のエンタープライズのメンバーが GitHub Actions を使用する方法を制御するポリシーを適用できます。 既定では、Organization の所有者と "Organization のアクション ポリシーを管理" アクセス許可を持つユーザーは、メンバーが GitHub Actions を使用する方法を管理できます。 詳しくは、「Organization について GitHub Actions を無効化または制限する」を参照してください。

カスタム Organization の役割の詳細については、「カスタム組織の役割の情報」をご覧ください。

エンタープライズで GitHub Actions の使用を制限するポリシーを適用する

エンタープライズ内のすべての 組織に対して GitHub Actions を無効化するか、特定の 組織 のみを許可するかを選択できます。 また、パブリック アクションと再利用可能なワークフローの使用を制限して、エンタープライズ内に存在するローカル アクションと再利用可能なワークフローのみを使用できるようにすることもできます。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. "Policies(ポリシー)"の下で、オプションを選択してください。

    [Allow enterprise, and select non-enterprise, actions and reusable workflows](エンタープライズを許可し、非エンタープライズ、アクション、再利用可能なワークフローを選択する) を選択した場合、エンタープライズ内のアクションおよび再利用可能なワークフローが許可され、追加のオプションで、その他の特定のアクションや再利用可能なワークフローも許可されます。 詳細については、「選択したアクションと再利用可能なワークフローの実行の許可」を参照してください。

    エンタープライズからのみ再利用可能なワークフローとアクションを許可する場合、ポリシーにより GitHub で作成したアクションへのすべてのアクセスがブロックされます。 たとえば、actions/checkout アクションにはアクセスできません。

  6. [保存] をクリックします。

選択したアクションと再利用可能なワークフローの実行の許可

[ [Allow enterprise, and select non-enterprise, actions and reusable workflows](エンタープライズを許可し、非エンタープライズ、アクション、再利用可能なワークフローを選択する) ] を選ぶと、ローカル アクションと再利用可能なワークフローが許可され、他の特定のアクションや再利用可能なワークフローを許可するための追加のオプションがあります。

  • [GitHub によって作成されたアクションを許可する]: GitHub によって作成されたすべてのアクションを、ワークフローで使用できるようにします。 GitHub によって作成されたアクションは、actions および github 組織にあります。 詳しくは、actions および github の Organization をご覧ください。

  • [検証済みの作成者による Marketplace アクションを許可する]: 検証済みの作成者が作成したすべての GitHub Marketplace アクションをワークフローで使用できるようにできます。 GitHubがアクションの作者をパートナーOrganizationとして検証すると、GitHub Marketplaceでアクションの隣にバッジが表示されるようになります。

  • [指定したアクションと再利用可能なワークフローを許可する]: ワークフローで使用できるアクションと再利用可能なワークフローを、特定の組織とリポジトリのものに制限します。 指定されたアクションを 1000 を超えるアクションに設定することはできません。

    アクションまたは再利用可能なワークフローの特定のタグまたはコミット SHA へのアクセスを制限するには、ワークフローで使われているのと同じ構文を使って、アクションまたは再利用可能なワークフローを選びます。

    • アクションの場合の構文は、OWNER/REPOSITORY@TAG-OR-SHA です。 たとえば、タグを選択するには actions/javascript-action@v1.0.1 を使用し、SHA を選択するには actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f を使用します。 詳しくは、「アクションの検索とカスタマイズ」を参照してください。
    • 再利用可能なワークフローの場合の構文は、OWNER/REPOSITORY/PATH/FILENAME@TAG-OR-SHA です。 たとえば、octo-org/another-repo/.github/workflows/workflow.yml@v1 のように指定します。 詳しくは、「ワークフローの再利用」を参照してください。

    パターンのマッチには、ワイルドカード文字 * を使用できます。 たとえば、space-org で始まる Organization のすべてのアクションと再利用可能なワークフローを許可するには、space-org*/* と指定できます。 octocat で始まるリポジトリのすべてのアクションと再利用可能なワークフローを許可するには、*/octocat**@* を使用できます。 * ワイルドカードの使用の詳細については、「ギットハブ アクション のワークフロー構文」を参照してください。

注: GitHub Free、GitHub Pro、組織のGitHub Free、またはGitHub Team プランでは、指定されたアクションと再利用可能なワークフロー を許可するオプションは公開リポジトリでのみ使用できます。

この手順では、特定のアクションと再利用可能なワークフローを許可リストに追加する方法を示します。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [ポリシー] で [ [Allow enterprise, and select non-enterprise, actions and reusable workflows](エンタープライズを許可し、非エンタープライズ、アクション、再利用可能なワークフローを選択する) ] を選び、必要なアクションと再利用可能なワークフローを一覧に追加します。

リポジトリ レベルのセルフホステッド ランナーの無効化

GitHub Enterprise Cloud のセルフホステッド ランナーが一時的でクリーンな仮想マシンでホストされる保証はありません。 その結果、ワークフロー内の信頼できないコードによって侵害される可能性があります。

同様に、リポジトリをフォークしてプル リクエストを開くことができるユーザー (通常は、リポジトリへの読み取りアクセス権を持つユーザー) は、セルフホステッド ランナー環境を侵害する可能性があります。それには、シークレットへのアクセスや、リポジトリへの書き込みアクセス権を設定に応じて付与できる GITHUB_TOKEN の取得が含まれます。 ワークフローは、環境と必要なレビューを使用して環境シークレットへのアクセスを制御できますが、これらのワークフローは分離された環境では実行されず、セルフホストランナーで実行した場合でも同じリスクの影響を受けやすくなります。

このような理由やその他の理由から、ユーザーがリポジトリ レベルでセルフホステッド ランナーを作成できないようにすることができます。リポジトリ レベルでのセルフホステッド ランナーの作成について詳しくは、「自己ホストランナーの追加」を参照してください。

既定で、リポジトリの管理者アクセスを持つすべてのユーザーが、リポジトリのセルフホステッド ランナーを追加できます。 エンタープライズ設定を使用すると、エンタープライズ内のすべてのリポジトリでリポジトリ レベルのセルフホステッド ランナーの使用を無効にすることができます。 Enterprise でリポジトリ レベルのセルフホステッド ランナーを許可する場合、Organization の所有者と "Organization ランナーとランナー グループの管理" アクセス許可を持つユーザーは、Organization 内の一部またはすべてのリポジトリのリポジトリ レベルのセルフホステッド ランナーの作成を許可または禁止することを選べます。 詳しくは、「Organization について GitHub Actions を無効化または制限する」をご覧ください。

カスタム Organization の役割の詳細については、「カスタム組織の役割の情報」をご覧ください。

: セルフホステッド ランナーがリポジトリ レベルで作成できなくなっている場合でも、ワークフローは Enterprise レベルまたは Organization レベルで設定されたセルフホステッド ランナーにアクセスできます。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [ランナー] セクションで、 [すべての組織に対して無効にする] を選びます。

    : マネージド ユーザー アカウントが所有するリポジトリのランナーの作成を、マネージド ユーザーを含む Enterprise の所有者が、 [すべてのエンタープライズ マネージド ユーザー (EMU) リポジトリで無効にする] を選んで、制限することもできます。

  6. [保存] をクリックして変更を適用します。

エンタープライズで成果物とログの保持に関するポリシーを適用する

GitHub Actions では、成果物とログのファイルを格納できます。 詳しくは、「ワークフローの成果物をダウンロードする」を参照してください。

デフォルトでは、ワークフローによって生成された成果物とログファイルは、90日間保持された後自動的に削除されます。 保持期間は、リポジトリの種類によって調整できます。

  • パブリックリポジトリの場合: この保持時間を1日から90日の間で変更できます。
  • プライベートと内部のリポジトリの場合: この保持期間を 1 から 400 日の間で変更できます。

保持期間をカスタマイズした場合、適用されるのは新しい成果物とログファイルに対してであり、既存のオブジェクトにさかのぼっては適用されません。 管理されたリポジトリ及びOrganizationについては、最大の保持期間は管理するOrganizationあるいはEnterpriseによって設定された上限を超えることはできません。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [成果物とログの保持] に、新しい値を入力します。

  6. [保存] をクリックして変更を適用します。

エンタープライズでフォーク pull request のポリシーを適用する

エンタープライズのメンバーまたは外部のコラボレーターがフォークからワークフローを実行するときに、GitHub.com に対する GitHub Actions の動作を制御するポリシーを適用できます。

外部コラボレーターからの pull request の承認のためのポリシーを適用する

パブリックリポジトリをフォークし、リポジトリのGitHub Actionsワークフローへの変更を提案するPull Requestをサブミットすることは誰でもできます。 フォークからのワークフローはシークレットなどの機密データにアクセスできませんが、悪用目的で変更された場合、メンテナが迷惑を被る可能性があります。

これを防ぐために、外部コラボレータのパブリックリポジトリへのPull Requestではワークフローは自動的には動作せず、まず承認が必要になることがあります。 デフォルトでは、すべての初めてのコントリビューターは、ワークフローを実行するのに承認を必要とします。

注: pull_request_target イベントによってトリガーされるワークフローは、ベース ブランチのコンテキストで実行されます。 ベース ブランチは信頼済みと見なされるため、承認設定に関係なく、これらのイベントによってトリガーされるワークフローは常に実行されます。 pull_request_target イベントについて詳しくは、「ワークフローをトリガーするイベント」をご覧ください。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [外部コラボレーターからの pull request ワークフローのフォーク] の下で、オプションの 1 つを選択します。

    • GitHub を初めて使用する共同作成者の承認が必要です。 このオプションでは、リポジトリにコミットしたことがなく、新しい GitHub アカウントを持つユーザーに対してワークフローを実行するための承認が必要です。
    • 初めての共同作成者の承認が必要です。 このオプションでは、リポジトリにコミットしたことがないユーザーのワークフローを実行するための承認が必要です。
    • すべての外部コラボレーターの承認が必要です。 このオプションでは、リポジトリ コラボレーターではないすべてのユーザーに対してワークフローを実行するための承認が必要です。 リポジトリが組織によって所有されている場合、このオプションでは、組織のメンバーではないすべてのリポジトリ コラボレーターに対してワークフローを実行するための承認が必要です。
  6. [保存] をクリックして設定を適用します。

このポリシーが適用されるワークフロー実行の承認の詳細については、「パブリックフォークで実行されるワークフローの実行を承認する」を参照してください。

非公開リポジトリでのフォーク pull request のポリシーを適用する

プライベート リポジトリのフォークの利用に依存している場合、pull_request イベントの際にユーザーがどのようにワークフローを実行できるかを制御するポリシーを構成できます。 プライベート リポジトリと内部リポジトリでのみ使用でき、Enterprise、Organization、またはリポジトリに対してこれらのポリシー設定を構成できます。

エンタープライズでポリシーが有効になっている場合は、個々の組織またはリポジトリでポリシーを選択的に無効にすることができます。 エンタープライズでポリシーが無効になっている場合は、個々の組織またはリポジトリでそれを有効にすることはできません。

  • フォーク pull request からワークフローを実行する - 読み取り専用権限を持ち、シークレットへのアクセス権を持たない GITHUB_TOKEN を使用して、フォーク pull request からワークフローを実行できます。
  • pull request からワークフローに書き込みトークンを送信する - フォークからの pull request で書き込み権限を持つ GITHUB_TOKEN を使用できます。
  • pull request からワークフローにシークレットを送信する - すべてのシークレットを pull request で利用できるようにします。
  • フォークの pull request ワークフローに対して承認を要求する - 書き込みアクセス許可のないコラボレーターからの pull request に対するワークフロー実行には、実行する前に書き込みアクセス許可を持つ誰かからの承認が必要になります。
  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [Fork pull request workflows](pull request ワークフローのフォーク) で、オプションを選択します。

  6. [保存] をクリックして設定を適用します。

エンタープライズでワークフロー アクセス許可のポリシーを適用する

GITHUB_TOKEN に付与される既定のアクセス許可を設定できます。 GITHUB_TOKEN について詳しくは、「自動トークン認証」をご覧ください。 デフォルトとして制限付きアクセス許可セットを選択するか、より幅広く許可をする設定を適用できます。

エンタープライズ、組織、またはリポジトリの設定で、GITHUB_TOKEN の既定のアクセス許可を設定できます。 エンタープライズの設定で制限付きオプションを既定値として選択した場合、組織またはリポジトリの設定では、より制限の緩い設定は選択されなくなります。

リポジトリへの書き込みアクセス権を持っている人は誰でも、ワークフロー ファイルの permissions キーを編集して、GITHUB_TOKEN に付与されたアクセス許可を変更でき、必要に応じて追加または削除できます。 詳細については、permissions をご覧ください。

既定の GITHUB_TOKEN のアクセス許可の構成

既定では、新しいエンタープライズを作成するとき、GITHUB_TOKEN には contents および packages スコープの読み取りアクセス権のみが付与されます。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [ワークフローのアクセス許可] で、GITHUB_TOKEN に対してすべてのスコープでの読み取りと書き込みアクセスを許可するか (制限の緩い設定)、contents スコープと packages スコープでの読み取りアクセスのみを許可するか (制限された設定) を選びます。

  6. [保存] をクリックして設定を適用します。

GitHub Actions による pull request の作成または承認を回避する

GitHub Actions ワークフローが pull request を作成または承認することを許可または禁止するかを選択できます。

既定では、エンタープライズを作成するときに、ワークフローは pull request の作成または承認を許可されません。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。

  3. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  4. ポリシー」で、[アクション] をクリックします。

  5. [ワークフローのアクセス許可] にある、 [GitHub Actions での pull request の作成と承認を許可する] 設定を使用して、GITHUB_TOKEN で pull request の作成と承認ができるかどうかを構成します。

  6. [保存] をクリックして設定を適用します。