Skip to main content

Enforcing policies for GitHub Actions in your enterprise

You can enforce policies for GitHub Actions within your enterprise's organizations, or allow policies to be set in each organization.

Enterprise owners can enforce policies for GitHub Actions in an enterprise.

About policies for GitHub Actions in your enterprise

GitHub Actions helps members of your enterprise automate software development workflows on GitHub Enterprise Cloud. For more information, see "Understanding GitHub Actions."

Any organization on GitHub.com can use GitHub Actions. You can enforce policies to control how members of your enterprise on GitHub Enterprise Cloud use GitHub Actions. By default, organization owners can manage how members use GitHub Actions. For more information, see "Disabling or limiting GitHub Actions for your organization."

Enforcing a policy to restrict the use of GitHub Actions in your enterprise

Enterprise 内のすべての Organization に対して GitHub Actions を無効化するか、特定の Organization のみを許可するかを選択できます。 You can also limit the use of public actions and reusable workflows, so that people can only use local actions and reusable workflows that exist in your enterprise.

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

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

    If you choose Allow enterprise, and select non-enterprise, actions and reusable workflows, actions and reusable workflows within your enterprise are allowed, and there are additional options for allowing other specific actions and reusable workflows. For more information, see "Allowing select actions and reusable workflows to run."

    When you allow actions and reusable workflows from only in your enterprise, the policy blocks all access to actions authored by GitHub. For example, the actions/checkout action would not be accessible.

    この Enterprise アカウントについてアクションを無効化、無効化、または制限

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

Allowing select actions and reusable workflows to run

When you choose Allow enterprise, and select non-enterprise, actions and reusable workflows, local actions and reusable workflows are allowed, and there are additional options for allowing other specific actions and reusable workflows:

  • Allow actions created by GitHub: You can allow all actions created by GitHub to be used by workflows. Actions created by GitHub are located in the actions and github organizations. For more information, see the actions and github organizations.

  • Allow Marketplace actions by verified creators: You can allow all GitHub Marketplace actions created by verified creators to be used by workflows. When GitHub has verified the creator of the action as a partner organization, the badge is displayed next to the action in GitHub Marketplace.

  • Allow specified actions and reusable workflows: You can restrict workflows to use actions and reusable workflows in specific organizations and repositories.

    To restrict access to specific tags or commit SHAs of an action or reusable workflow, use the same syntax used in the workflow to select the action or reusable workflow.

    • For an action, the syntax is <OWNER>/<REPO>@<TAG OR SHA>. For example, use actions/javascript-action@v1.0.1 to select a tag or actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89 to select a SHA. For more information, see "Finding and customizing actions."
    • For a reusable workflow, the syntax is <OWNER>/<REPO>/<PATH>/<FILENAME>@<TAG OR SHA>. For example, octo-org/another-repo/.github/workflows/workflow.yml@v1. For more information, see "Reusing workflows."

    You can use the * wildcard character to match patterns. For example, to allow all actions and reusable workflows in organizations that start with space-org, you can specify space-org*/*. To allow all actions and reusable workflows in repositories that start with octocat, you can use */octocat**@*. For more information about using the * wildcard, see "Workflow syntax for GitHub Actions."

    Note: The Allow specified actions and reusable workflows option is only available in public repositories with the GitHub Free, GitHub Pro, GitHub Free for organizations, or GitHub Team plan.

This procedure demonstrates how to add specific actions and reusable workflows to the allow list.

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. "Policies(ポリシー)"の下で、Allow enterprise, and select non-enterprise, actions and reusable workflowsを選択し、必要なアクションと再利用可能なワークフローをリストに追加してください。

    許可リストへのアクションと再利用可能なワークフローの追加

Enforcing a policy for artifact and log retention in your enterprise

GitHub Actions can store artifact and log files. For more information, see "Downloading workflow artifacts."

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

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

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

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. Artifact and log retention duration(成果物とログの保持)の下で、新しい値を入力してください。

  6. Save(保存)をクリックして、変更を適用してください。

Enforcing a policy for fork pull requests in your enterprise

You can enforce policies to control how GitHub Actions behaves for GitHub.com when members of your enterprise or outside collaborators run workflows from forks.

Enforcing a policy for approval of pull requests from outside collaborators

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

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

ノート: pull_request_targetイベントでトリガーされたワークフローは、ベースブランチのコンテキスト内で実行されます。 ベースブランチは信頼できるものと見なされるので、これらのイベントでトリガーされたワークフローは、承認設定に関係なく常に実行されます。

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. Fork pull request workflows from outside collaborators(外部コラボレーターからのPull Requestワークフローのフォーク)の下で、オプションを選択してください。 このオプションは、制限が緩いものから厳しいものへとリストされています。

    パブリックフォークからのワークフローの認証の設定

  6. Save(保存)をクリックして、設定を適用してください。

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

Enforcing a policy for fork pull requests in private repositories

プライベートリポジトリのフォークの利用に依存しているなら、ユーザがどのようにpull_requestイベントの際にワークフローを実行できるかを制御するポリシーを設定できます。 プライベート及びインターナルリポジトリのみで、Enterprise、Organization、リポジトリにに対してこれらのポリシーを設定できます。

If a policy is enabled for an enterprise, the policy can be selectively disabled in individual organizations or repositories. If a policy is disabled for an enterprise, individual organizations or repositories cannot enable it.

  • Run workflows from fork pull requests(フォークのPull Requestからワークフローを実行) - 読み取りのみの権限を持ち、シークレットにはアクセスできないGITHUB_TOKENを使って、フォークのPull Requestからワークフローを実行することをユーザに許可します。
  • Send write tokens to workflows from pull requests(Pull Requestから書き込みトークンをワークフローに送信) - 書き込み権限を持つGITHUB_TOKENの利用をフォークからのPull Requestに許可します。
  • Send secrets to workflows from pull requests(Pull Requestからワークフローにシークレットを送信) - すべてのシークレットをPull Requestから利用可能にします。
  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. Fork pull request workflows(Pull Requestワークフローのフォーク)の下で、オプションを選択してください。 例: このリポジトリのアクションを有効化、無効化、または制限する

  6. Save(保存)をクリックして、設定を適用してください。

Enforcing a policy for workflow permissions in your enterprise

GITHUB_TOKENに付与されるデフォルトの権限を設定できます。 GITHUB_TOKENに関する詳しい情報については「自動トークン認証」を参照してください。 デフォルトで制限された権限セットを選択することも、より幅広い権限設定を適用することもできます。

You can set the default permissions for the GITHUB_TOKEN in the settings for your enterprise, organizations, or repositories. If you choose a restricted option as the default in your enterprise settings, this prevents the more permissive setting being chosen in the organization or repository settings.

リポジトリに対して書き込みアクセス権を持つ人は、ワークフローファイル中のpermissionsキーを編集することによって、GITHUB_TOKENに付与される権限を変更したり、必要に応じてアクセス権を追加したり削除したりできます。 詳しい情報については権限を参照してください。

デフォルトのGITHUB_TOKEN権限の設定

By default, when you create a new enterprise, GITHUB_TOKEN only has read access for the contents scope.

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. [Workflow permissions]の下で、GITHUB_TOKENにすべてのスコープに対する読み書きアクセスを持たせたいか、あるいはcontentsスコープに対する読み取りアクセスだけを持たせたいかを選択してください。

    Set GITHUB_TOKEN permissions for this enterprise

  6. Save(保存)をクリックして、設定を適用してください。

GitHub ActionsがPull Requestの作成もしくは承認をできないようにする

GitHub Actionsワークフローに対してPull Requestの作成もしくは承認を許可あるいは拒否できます。

By default, when you create a new enterprise, workflows are not allowed to create or approve pull requests.

  1. GitHub.comの右上で、自分のプロフィール写真をクリックし、続いてYour enterprises(自分のEnterprise)をクリックしてください。 GitHub Enterprise Cloudのプロフィール写真のドロップダウンメニュー内の"Your enterprises"

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

  3. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  4. Under " Policies", click Actions.

  5. Under "Workflow permissions", use the Allow GitHub Actions to create and approve pull requests setting to configure whether GITHUB_TOKEN can create and approve pull requests.

    Set GITHUB_TOKEN permissions for this enterprise

  6. Save(保存)をクリックして、設定を適用してください。