Skip to main content

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

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

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

Enterprise owners can configure IP allow lists.

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

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

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

  • GitHub 認証または SAML SSO を使用したユーザー名とパスワード
  • Personal access token
  • SSH キー

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

エンタープライズによって Enterprise Managed Users が Microsoft Entra ID (旧称 Azure AD) と OIDC で使用されている場合は、GitHub の IP 許可一覧機能を使用するか、ID プロバイダー (IdP) 用の許可リスト制限を使用するかを選択できます。 エンタープライズによって Enterprise Managed Users が Azure と OIDC で使用されていない場合は、GitHub の許可リスト機能を使用できます。

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

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

  • Organization が所有するリポジトリ
  • プライベート リポジトリと内部リポジトリ
  • ユーザーが GitHub にサインインしたときのパブリック リソース
  • リポジトリ内のファイルの加工されていない URL (例: https://raw.githubusercontent.com/octo-org/octo-repo/main/README.md?token=ABC10001)

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

  • マネージド ユーザー アカウント が所有するリポジトリ (フォークを含む)
  • パブリック リソース (匿名でアクセスされる場合)
  • GitHub からプライベート データまたは組織データを直接フェッチする必要がない GitHub Copilot の機能
  • 問題や pull requests にアップロードされた画像やビデオの匿名化された URL (例: https://private-user-images.githubusercontent.com/10001/20002.png?jwt=ABC10001)

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 App によるアクセスの許可」を参照してください。

IdP の許可リストについて

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

IdP の許可リストを使用すると、Enterprise 内のすべての Organization の GitHub IP 許可リスト構成が無効になり、IP 許可リストを有効にして管理するための GraphQL API が無効になります。

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

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

OAuth トークンやユーザー アクセス トークンにポリシーを適用しながら OIDC CAP がシームレスに使用されるようにするには、エンタープライズで使用する各 GitHub App からすべての IP 範囲を IdP ポリシーにコピーする必要があります。

GitHub の IP 許可リストを使用する

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

  1. GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。 1. 組織の隣の [設定] をクリックします。
  2. サイドバーの [セキュリティ] セクションで、 [認証セキュリティ] をクリックします。
  3. OIDC で Enterprise Managed Users を使用している場合は、[IP 許可リスト] で [IP 許可リストの構成] ドロップダウン メニューを選び、 [GitHub] をクリックします。
  4. [IP 許可リスト] で、 [IP 許可リストを有効にする] を選択します。
  5. [保存] をクリックします。

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

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

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

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

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

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

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

  3. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  4. [設定] で、 [認証セキュリティ] をクリックします。

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

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

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

  7. [追加] をクリックします。

  8. 必要に応じて、特定の 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 Enterprise Cloudユーザへのアクセスを許可しません。

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

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

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

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

  3. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  4. [設定] で、 [認証セキュリティ] をクリックします。

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

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

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

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

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

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

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

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

  3. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  4. [設定] で、 [認証セキュリティ] をクリックします。

  5. [IP 許可リスト] の下で、編集するエントリの横にある [編集] をクリックします。

  6. [IP アドレス] フィールドに、IP アドレスまたは CIDR 表記のアドレス範囲を入力してください。

  7. [説明] フィールドに、許可された IP アドレスまたは範囲の説明を入力してください。

  8. [Update] をクリックします。

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

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

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

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

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

  3. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  4. [設定] で、 [認証セキュリティ] をクリックします。

  5. [IP 許可リスト] セクションの最後にある [IP アドレスの確認] で、IP アドレスを入力します。

    [IP アドレスの確認] テキスト フィールドのスクリーンショット。

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

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

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

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

  3. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  4. [設定] で、 [認証セキュリティ] をクリックします。

  5. [IP 許可リスト] の下で、削除するエントリの横にある [削除] をクリックします。

  6. 恒久的にエントリを削除するには、 [Yes, delete this IP allow list entry] (はい、この IP 許可リストを削除してください) をクリックしてください。

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

注: IdP の許可リストの使用は、Entra ID と OIDC での Enterprise Managed Users でのみサポートされます。

  1. GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。 1. 組織の隣の [設定] をクリックします。
  2. サイドバーの [セキュリティ] セクションで、 [認証セキュリティ] をクリックします。
  3. [IP 許可リスト] で [IP 許可リストの構成] ドロップダウンを選び、 [ID プロバイダー] をクリックします。
  4. 必要に応じて、インストールされた GitHub および OAuth apps が任意の IP アドレスから Enterprise にアクセスできるようにするには、 [アプリケーションの IdP チェックをスキップする] を選びます。
  5. [保存] をクリックします。

IP許可リストで GitHub Actions を使用する

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

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

IP 許可リストで GitHub Pages を使用する

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

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