Skip to main content

IP 許可リストを使用して Enterprise へのネットワーク トラフィックを制限する

IP 許可リストを使用すれば、Enterprise へのアクセスを制限して、指定された IP アドレスからリソースへのアクセスのみを許可することができます。

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

Enterprise owners can configure IP allow lists.

ネットワーク トラフィックの制限について

デフォルトでは、許可されたユーザは任意の IP アドレスから Enterprise のリソースにアクセスできます。 特定の IP アドレスからのアクセスを許可または拒否するリストを構成することで、Enterprise のプライベート リソースへのアクセスを制限できます。 たとえば、プライベート リソースへのアクセス元をオフィス ネットワークの IP アドレスにのみ許可することができます。

GitHub IP 許可リストを構成すると、次のいずれかの認証方法を使用するときに、ユーザーまたはアプリが Web UI、API、または Git を介して保護されたリソースにアクセスできるかどうかを決定します。

対話型 (Web) 認証:

  • ユーザー認証には、GitHub 認証、SAML、OIDC 認証が含まれます。

非対話型認証:

  • Personal access token

  • OAuth アプリ トークン

  • SSH キー (GitHub Apps が使用しているデプロイ キーと SSH キーを含めます

  • GitHub App ユーザーからサーバーへのトークン、またはインストール トークン。GitHub ActionsGITHUB_TOKEN を含めます

    メモ

    現在、GitHub App がユーザー アカウントにインストールされ、サーバー間インストール トークンを使用して組織または企業にアクセスする場合、IP 許可リストはアクセスを制限しません。

IP 許可一覧は、企業と組織の所有者、リポジトリ管理者、外部のコラボレーターなど、あらゆるロールやアクセス権を持つユーザーに適用されます。

メモ

企業でEnterprise Managed Usersを使用している場合、IP 許可リストを有効にしても、SAML/SCIM、OpenID Connect (OIDC) と Entra ID、または REST API エンドポイントを介して実行されるユーザー プロビジョニング アクションは制限されません。 詳しくは、「SCIM を使用したエンタープライズ マネージド ユーザー」をご覧ください。

企業で Microsoft Entra ID (旧称 Azure AD) と OIDC でEnterprise Managed Usersを使用している場合は、GitHubの IP 許可リスト機能を使用するか、ID プロバイダー (IdP) の許可リスト制限を使用するかを選択できます。 企業で Azure および OIDC でEnterprise Managed Usersを使用していない場合は、GitHubの許可リスト機能を使用できます。

どのリソースが保護されますか?

IP 許可一覧は、次へのアクセスを制限します

  • Organization が所有するリポジトリ
  • プライベート リポジトリと内部リポジトリ
  • ユーザーが GitHub にサインインしたときのパブリック リソース (以下のような非対話型の認証方法を含めます:
    • Personal access token
    • OAuth アプリ トークン
    • SSH キー (デプロイ キーを含む)
    • GitHub App ユーザーからサーバーへのトークン、またはインストール トークン。GitHub ActionsGITHUB_TOKEN を含めます

      メモ

      ユーザー アカウントに対してインストールされている GitHub App が使用するインストール トークンを除外します。

  • リポジトリ内のファイルの加工されていない URL (例: https://raw.githubusercontent.com/octo-org/octo-repo/main/README.md?token=ABC10001)
  • マネージド ユーザー アカウント が所有するフォークを含むリポジトリ (有効な場合)

IP 許可一覧は、次へのアクセスを制限しません

  • パブリック リソース (匿名でアクセスされる場合)
  • GitHub App がユーザーアカウントにインストールされている場合の GitHub App サーバー間インストールトークン。
  • GitHub Copilot の機能は、GitHub からプライベートデータや組織データを直接フェッチする必要がありません。
  • データ所在地付き GitHub Enterprise Cloud を使用しない限り、issue や pull request (https://private-user-images.githubusercontent.com/10001/20002.png?jwt=ABC10001 など) にアップロードされた画像とビデオの匿名化された URL

GitHubの IP 許可リストについて

GitHubの IP 許可リストを使用して、企業および企業内の組織が所有する資産へのアクセスを制御できます。

CIDR表記を使って、単一のIPアドレスもしくはアドレスの範囲に対してアクセスを承認できます。 詳細については、ウィキペディアの CIDR 表記に関するページを参照してください。

IP許可リストを強制するには、まずIPアドレスをリストに追加し、それからIP許可リストを有効化しなければなりません。 リストが完成したら、特定の IP アドレスがリスト内のいずれかの有効なエントリによって許可されるかどうかを確認できます。

IP 許可リストを有効にするには、現在の IP アドレスまたは一致する範囲を追加する必要があります。 許可リストを有効化すると、設定したIPアドレスはすぐにEnterprise中のOrganizationの許可リストに追加されます。 許可リストを無効化すると、それらのアドレスはOrganizationの許可リストから削除されます。

組織の所有者は、組織の許可リストにエントリを追加できますが、エンタープライズ アカウントの許可リストから継承されたエントリを管理することはできません。また、エンタープライズの所有者は、組織の許可リストに追加されたエントリを管理できません。詳細については、「組織に対する許可 IP アドレスを管理する」を参照してください。

EnterpriseにインストールされたGitHub Appsに設定されたIPアドレスが自動的に許可リストに追加されるように選択することもできます。 GitHub Appの作者は、自分のアプリケーションのための許可リストを、アプリケーションが実行されるIPアドレスを指定して設定できます。 それらの許可リストを継承すれば、アプリケーションからの接続リクエストが拒否されるのを避けられます。 詳しくは、「GitHub Apps によるアクセスの許可」をご覧ください。

IdP の許可リストについて

Entra IDと OIDC でEnterprise Managed Usersを使用している場合は、IdP の許可リストを使用できます。

IdP の許可リストを使用すると、企業内のすべての組織の GitHub IP 許可リスト構成が非アクティブ化され、IP 許可リストを有効および管理するための GraphQL API が非アクティブ化されます。

既定では、IdP は、選択したどの IP 許可リスト構成でも、GitHub への初回の対話型 SAML または OIDC サインイン時に CAP を実行します。

OIDC CAP は、ユーザー トークン ( OAuth app の OAuth トークンや、ユーザーに代わって動作する GitHub App のユーザー アクセス トークンなど) を使用して、API への Web 要求と要求に適用されます。 GitHub App がインストール アクセス トークンを使用する場合、OIDC CAP は適用されません。 「GitHub アプリでの認証について」と「IdP の条件付きアクセス ポリシーのサポートについて」を参照してください。

メモ

Web セッションの CAP 保護は現在パブリック プレビュー段階にあり、変更される可能性があります。

Enterprise で IdP CAP のサポートが既に有効になっている場合は、Enterprise の [Authentication security] の設定から Web セッションの拡張保護にオプトインできます。 Web セッション保護が有効であり、ユーザーの IP 条件が満たされていない場合、ユーザーはすべてのユーザー所有リソースを表示およびフィルター処理できますが、通知、検索、個人用ダッシュボード、または星付きリポジトリの結果の詳細を表示することはできません。

OAuth トークンとユーザー アクセス トークンにポリシーを適用しながら OIDC CAP をシームレスに使用するには、企業が使用する各 GitHub App から IdP ポリシーにすべての IP 範囲をコピーする必要があります。

GitHubの IP 許可リストの使用

GitHubの IP 許可リストを有効にする

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。

  2. 組織をクリックして選択します。

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

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

  4. サイドバーの [Security] セクションで、[ Authentication security] をクリックします。

  5. OIDC でEnterprise Managed Usersを使用している場合は、[IP 許可リスト] で [IP 許可リストの構成] ドロップダウン メニューを選択し、GitHubをクリックします。

  6. [IP allow list] で [Enable IP allow list] を選択します。

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

許可 IP アドレスを追加する

それぞれに IP アドレスまたはアドレス範囲を含むエントリを追加することで、IP 許可リストを作成できます。 エントリの追加が完了したら、特定の IP アドレスがリスト内のいずれかの有効なエントリによって許可されるかどうかを確認できます。

Enterprise 内の Organization が所有するプライベート アセットへのアクセスがリストによって制限される前に、許可された IP アドレスも有効にする必要があります。

メモ

GitHub は、IPv6 のサポートを段階的にロールアウトしています。 GitHub サービスには引き続き IPv6 のサポートが追加されるため、GitHub ユーザーの IPv6 アドレスの認識を開始できます。 アクセスの中断の可能性を防ぐには、必要な IPv6 アドレスが自分の IP 許可リストに確実に追加されている状態にしてください。

メモ

キャッシュのため、IP アドレスの追加または削除が完全に有効になるまで数分かかる場合があります。

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。

  2. ページの上部にある [ Settings] をクリックします。

  3. [ Settings] の下にある [Authentication security] をクリックします。

  4. [IP 許可リスト] セクションの下部にある [IP アドレスまたは CIDR 表記の範囲] フィールドに、IP アドレスまたは CIDR 表記のアドレス範囲を入力します。

    IP 許可リストの設定のスクリーンショット。 [IP アドレスまたは CIDR 表記の範囲] というラベルの付いたテキスト フィールドがオレンジ色の枠線で強調表示されています。

  5. 必要に応じて、[IP アドレスまたは範囲の簡単な説明] フィールドに、許可されている IP アドレスまたは範囲の説明を入力します。

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

  7. 必要に応じて、特定の IP アドレスがリスト内のいずれかの有効なエントリによって許可されるかどうかを確認できます。 詳しくは、「IP アドレスが許可されているかどうかを確認する」をご覧ください。

GitHub Appsによるアクセスの許可

許可リストを使っているなら、EnterpriseにインストールしたGitHub Appsに設定されたIPアドレスを自動的に許可リストに追加するかも選択できます。

許可リストの設定で [Enable IP allow list configuration for installed GitHub Apps] (インストールされた GitHub Apps の IP 許可リストの設定を有効化する) を選択した場合、インストールされた GitHub Apps からの IP アドレスが許可リストに追加されます。 これは、許可リストがその時点で有効化されているかどうかに関係なく行われます。 GitHub Appをインストールして、その後にそのアプリケーションの作者が許可リスト中のアドレスを変更した場合、あなたの許可リストにはそれらの変更が自動的に反映されます。

GitHub Appsから自動的に追加されたIPアドレスは、descriptionフィールドを見れば判別できます。 それらのIPアドレスの説明は"Managed by the NAME GitHub App"となっています。 手動で追加されたアドレスとは異なり、GitHub Appsから自動で追加されたIPアドレスは編集、削除、無効化できません。

メモ

GitHub App の IP 許可リスト内のアドレスは、GitHub App のインストールによって行われた要求にのみ影響します。 GitHub App の IP アドレスが organization の許可リストに自動的に追加されても、その IP アドレスから接続する GitHub ユーザーのアクセスは許可されません。

作成した GitHub App の許可リストを作成する方法の詳細については、「GitHub アプリの許可された IP アドレスの管理」を参照してください。

GitHub AppsのIPアドレスの自動追加を有効化するには:

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。

  2. ページの上部にある [ Settings] をクリックします。

  3. [ Settings] の下にある [Authentication security] をクリックします。

  4. [IP 許可リスト] で、 [インストール済みの GitHub App の IP 許可リストの構成を有効にする] を選択します。

    メモ

    OIDC で Enterprise Managed Users を使っていて、IP 許可リストの構成に GitHub を使う場合は、GitHub Apps によるアクセスのみを許可できます。

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

許可 IP アドレスを編集する

IP 許可リストのエントリを編集できます。 有効なエントリを編集すると、変更がすぐに適用されます。

エントリの編集が終了した後で、リストを有効にしたら、許可リストが特定の IP アドレスからの接続を許可するかどうかを確認できます。

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。
  2. ページの上部にある [ Settings] をクリックします。
  3. [ Settings] の下にある [Authentication security] をクリックします。
  4. [IP 許可リスト] の下で、編集するエントリの横にある [編集] をクリックします。
  5. [IP アドレス] フィールドに、IP アドレスまたは CIDR 表記のアドレス範囲を入力してください。
  6. [説明] フィールドに、許可された IP アドレスまたは範囲の説明を入力してください。
  7. [Update] をクリックします。
  8. 必要に応じて、特定の IP アドレスがリスト内のいずれかの有効なエントリによって許可されるかどうかを確認できます。 詳しくは、「IP アドレスが許可されているかどうかを確認する」をご覧ください。

IP アドレスが許可されているかどうかを確認する

許可リストが現時点で有効になっていなくても、特定の IP アドレスがリスト内のいずれかの有効なエントリによって許可されるかどうかを確認できます。

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。
  2. ページの上部にある [ Settings] をクリックします。
  3. [ Settings] の下にある [Authentication security] をクリックします。
  4. [IP 許可リスト] セクションの最後にある [IP アドレスの確認] で、IP アドレスを入力します。
    [IP アドレスの確認] テキスト フィールドのスクリーンショット。

許可 IP アドレスを削除する

メモ

キャッシュのため、IP アドレスの追加または削除が完全に有効になるまで数分かかる場合があります。

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。
  2. ページの上部にある [ Settings] をクリックします。
  3. [ Settings] の下にある [Authentication security] をクリックします。
  4. [IP 許可リスト] の下で、削除するエントリの横にある [削除] をクリックします。
  5. 恒久的にエントリを削除するには、 [Yes, delete this IP allow list entry] (はい、この IP 許可リストを削除してください) をクリックしてください。

ID プロバイダーの許可リストを使用する

メモ

IdP の許可リストの使用は、Entra IDと OIDC を使用したEnterprise Managed Usersに対してのみサポートされます。

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。

  2. 組織をクリックして選択します。

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

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

  4. サイドバーの [Security] セクションで、[ Authentication security] をクリックします。

  5. [IP 許可リスト] の下で [IP 許可リストの構成] ドロップダウンを選択し、[ID プロバイダー] をクリックします。

  6. 必要に応じて、インストールされた GitHub と OAuth apps が任意の IP アドレスからエンタープライズにアクセスできるようにするには、[ アプリケーションの IdP チェックをスキップ] を選択します。

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

IP 許可リストを使用してユーザー所有リソースへのアクセスを制限する

メモ

ユーザー レベルの IP 許可リストの適用は、 Enterprise Managed Usersを使用する企業でのみ使用できます。

既定では、エンタープライズの IP 許可リストでは、 マネージド ユーザー アカウントが所有するリポジトリやその他のリソースへのアクセスは制限されません。 ユーザーレベルの適用を有効にして、次のようなユーザー所有リソースに IP 許可リストの制限を拡張できます。

  • ユーザー所有のリポジトリとそのフォーク
  • ユーザー プロファイル ページ

これにより、組織所有のリポジトリだけでなく、エンタープライズ コードが存在するすべての場所に、許可された IP アドレスからのみアクセスできるようになります。

ユーザー レベルの適用の有効化

  1. 企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。
  2. ページの上部にある [ Settings] をクリックします。
  3. [ Settings] の下にある [Authentication security] をクリックします。
  4. [IP 許可リスト] で、[ IP 許可リストのユーザー レベルの適用を有効にする] を選択します。
  5. [保存] をクリックします。

重要

ユーザー レベルの適用を有効にする前に、 マネージド ユーザー アカウント がエンタープライズ IP 許可リストへの接続に使用するすべての IP アドレスを追加します。 ユーザーが許可リストにない IP アドレスから接続すると、ユーザーが所有するリソースにアクセスできなくなります。

ユーザー レベルの強制の無効化

ユーザー所有のリソースに対する IP 許可リストの適用を停止するには、上記と同じ手順に従い、 IP 許可リストのユーザー レベルの適用を有効にするの選択を解除してから、[ 保存] をクリックします。 ユーザー所有のリソースへのアクセスは、IP 許可リストによって制限されなくなります。

IP 許可リストでの GitHub Actions の使用

警告

IP 許可リストを使用し、 GitHub Actionsも使用する場合は、セルフホステッド ランナー または静的 IP アドレス範囲を持つ GitHubホスト型の大規模ランナーを使用する必要があります。 Azure プライベート ネットワークを使用する場合は、Azure サブネットの IP を使用する必要があります。 必要な IP の数を減らすために、GitHub の許可リストに単一の IP 範囲を指定するロード バランサーを作成することをお勧めします。 詳細については、「 セルフホステッド ランナー リファレンス または より大きなランナー を参照してください。

セルフホステッド または大規模なホスト型 ランナーが GitHubと通信できるようにするには、企業用に構成した IP 許可リストにランナーの IP アドレスまたは IP アドレス範囲を追加します。

IP 許可リストでの GitHub Pages の使用

カスタム GitHub Actions ワークフローを GitHub Pages サイトの発行ソースとして使用する場合、ランナーがサイトに接続して構築できるようにするには、IP 許可リストのルールを構成する必要があります。

カスタム ワークフローを使用しない場合、ビルド ランナーは既定で GitHub Pages サイトのリポジトリにアクセスできます。 公開元について詳しくは、「GitHub Pages サイトの公開元を設定する」をご覧ください。

IP 許可リストでの Dependabot の使用

Dependabot は、リポジトリ アクセスが IP 許可リストの制限から除外されるファースト パーティの GitHub アプリです。 つまり、 Dependabot は、IP 許可リストの構成に関係なく、依存関係ファイルを読み取り、プル要求を作成できます。

Dependabot ランナーで実行GitHub Actionsジョブが、予測可能な IP アドレスを必要とする外部リソース (ファイアウォールの背後にあるプライベート パッケージ レジストリなど) に到達する必要がある場合は、セルフホステッド ランナーを設定するか、静的 IP アドレス範囲でより大きなランナー (larger runner)を構成する必要があります。 「セルフホステッド ランナー」と「GitHub Actionsランナーのディペンダボット」を参照してください。

さらに、静的 IP アドレス範囲を使用した より大きなランナー (larger runner) の構成の詳細については、 より大きなランナー を参照してください。

セルフホステッド ランナーまたは より大きなランナー (larger runner) が GitHubと通信できるようにするには、企業用に構成した IP 許可リストにランナーの IP アドレスまたは IP アドレス範囲を追加します。