Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

プライベート ネットワークへの接続

GitHub ホステッド ランナーをプライベート ネットワーク上のリソース (パッケージ レジストリ、シークレット マネージャー、その他のオンプレミス サービスなど) に接続できます。

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

GitHub ホステッド ランナーについて

GitHub ホステッド ランナーは、既定でパブリック インターネットにアクセスできます。 た� し、これらのランナーは、パッケージ レジストリ、シークレット マネージャー、その他のオンプレミス サービスなど、プライベート ネットワーク上のリソースにアクセスすることもできます。

GitHub ホステッド ランナーは、すべての GitHub のお客様間で共有されるため、ワークフローの実行中にご自身のランナー� けにプライベート ネットワークを接続する方法が必要になります。 このアクセスを構成するには、異なるいくつかの方法があり、それぞれ異なる利点と� 点があります。

WireGuard を使用してネットワーク オーバーレイを作成する

API ゲートウェイのための別個のインフラストラクチャを維持することを望まない� �合は、両方の� �所で WireGuard を実行することで、ランナーとプライベート ネットワーク内のサービスの間にオーバーレイ ネットワークを作成できます。

このアプローチにはさまざまな� 点があります。

  • プライベート サービスで実行されている WireGuard に到達するには、ワークフローで参照できる既知の IP アドレスとポートが必要です。これは、パブリック IP アドレスとポート、ネットワーク ゲートウェイ上のポート マッピング、または DNS を動的に更新するサービスのいずれかです。
  • WireGuard は既定では NAT トラバーサルを処理しないため、このサービスを提供する方法を特定する必要があります。
  • この接続は 1 対 1 であるため、高可用性または高スループットが必要な� �合は、WireGuard 上にそれを構築する必要があります。
  • ランナーとプライベート サービスの両方のキーを生成して安全に保存する必要があります。 WireGuard は UDP を使用するため、ネットワークで UDP トラフィックをサポートする必要があります。

利点もいくつかあります。WireGuard は既存のサーバーで実行できるので別個のインフラストラクチャを維持する必要がなく、また、GitHub ホステッド ランナーで十分にサポートされています。

例: WireGuard を構成する

このワークフロー例では、プライベート サービスに接続するように WireGuard を構成します。

この例では、プライベート ネットワークで実行されている WireGuard インスタンスの構成は次のとおりです。

  • 192.168.1.1 というオーバーレイ ネットワーク IP アドレス
  • 1.2.3.4:56789 というパブリック IP アドレスとポート
  • 公開キー examplepubkey1234...

GitHub Actions ランナーの WireGuard インスタンスの構成はこのとおりです。

  • 192.168.1.2 というオーバーレイ ネットワーク IP アドレス
  • 秘密キーは、GitHub Actions シークレットとして WIREGUARD_PRIVATE_KEY に保存されます。
name: WireGuard example

on:
  workflow_dispatch:

jobs:
  wireguard_example:
    runs-on: ubuntu-latest
    steps:
      - run: sudo apt install wireguard

      - run: echo "$" > privatekey

      - run: sudo ip link add dev wg0 type wireguard

      - run: sudo ip address add dev wg0 192.168.1.2 peer 192.168.1.1

      - run: sudo wg set wg0 listen-port 48123 private-key privatekey peer examplepubkey1234... allowed-ips 0.0.0.0/0 endpoint 1.2.3.4:56789

      - run: sudo ip link set up dev wg0

      - run: curl -vvv http://192.168.1.1

キーを安全に保存する方法については、「WireGuard クイック スタート」と「暗号化されたシークレット」を参照してく� さい。

Tailscale を使用してネットワーク オーバーレイを作成する

Tailscale は WireGuard 上に構築された商用製品です。 このオプションは WireGuard によく似ていますが、Tailscale はオープンソース コンポーネントではなく完全な製品エクスペリエンスである点が異なります。

� 点は WireGuard に似ています。接続は 1 対 1 であるため、高可用性または高スループットのために追� の作業を行うことが必要な� �合があります。 キーを生成して安全に保存する必要があります。 プロトコルはま�  UDP であるため、ネットワークで UDP トラフィックをサポートする必要があります。

た� し、WireGuard に勝るいくつかの利点があります。NAT トラバーサルが組み込まれているため、パブリック インターネットにポートを公開する必要はありません。 Tailscale では、オーバーレイ ネットワークに接続する 1 つのステップで GitHub Actions ワークフローが提供されるため、これらのオプションの中では最もすばやく起動して実行できます。

詳細については、「Tailscale GitHub アクション」を参照してく� さい。また、キーを安全に保存する方法については、「暗号化されたシークレット」を参照してく� さい。