
ゼロトラストネットワーキングプラットフォーム。暗号学的アイデンティティ、ポリシーベースのアクセス、エンドツーエンド暗号化でサービスを不可視化します。VPNを置き換え、IoTを保護し、オープンポートなしでマルチクラウド環境を接続します。
<!-- markdownlint-disable MD033 --> [](https://github.com/openziti/ziti/actions/workflows/main.yml?query=branch%3Arelease-next) [](https://goreportcard.com/report/github.com/openziti/ziti) [](https://pkg.go.dev/github.com/openziti/ziti) [](https://openziti.discourse.group/) [](https://github.com/openziti/ziti/blob/main/LICENSE) [](https://github.com/openziti/ziti) # OpenZiti OpenZiti は、ネットワークサービスを不正ユーザーから不可視にする、オープンソースのゼロトラストネットワーキングプラットフォームです。ユーザー、サービス、デバイス、ワークロードを問わず、すべての接続は暗号化されたアイデンティティで認証され、ポリシーで承認され、エンドツーエンドで暗号化されます。 OpenZiti は、既存のアプリケーション(コード変更不要の軽量トンネラーを使用)と新しいアプリケーション(最も強力なゼロトラストモデルを実現する組み込み SDK を使用)の両方で動作します。そのため、ブラウンフィールド環境とグリーンフィールド開発の両方に実用的です。 [NetFoundry](https://netfoundry.io) によって作成・スポンサーされています。ライセンスは [Apache 2.0](https://github.com/openziti/ziti/blob/main/LICENSE) です。 <p align="center"> <img src="https://raw.githubusercontent.com/openziti/ziti/HEAD/doc/images/openziti-architecture.svg" alt="OpenZiti Architecture: Controller, Edge Routers, SDKs, and Tunnelers" width="100%"/> </p> --- ## 目次 - [ユースケース](#use-cases) - [主要機能](#key-capabilities) - [3つの導入モデル](#three-deployment-models) - [はじめに](#getting-started) - [アーキテクチャ](#architecture) - [ゼロトラスト、ダークサービス、エンドツーエンド暗号化](#zero-trust-dark-services-and-end-to-end-encryption) - [SDK](#sdks) - [コミュニティ&サポート](#community--support) - [コントリビューション](#contributing) - [採用事例](#adopters) - [マネージドソリューション](#managed-solution) --- ## ユースケース OpenZiti を使用すると、複数のネットワークやサードパーティをまたいで、非ヒューマンワークロードやワークフローを含むあらゆるユースケースに対して、どこでもゼロトラストを拡張できます。以下は一般的なユースケースの一部です。 ### VPN の置き換え VPN クライアント、スプリットトンネリングの頭痛、コンセントレーターのボトルネックなしに、内部サービスへの安全なアクセスを提供します。各サービスは個別に承認されます。「一度中に入れば、すべてにアクセスできる」という問題はありません。 ### ダーク API とサービス API とサービスをインターネットから不可視にします。リッスンポートがゼロであれば、攻撃対象領域もゼロです。承認されたクライアントのみが OpenZiti 経由で接続し、他の誰も何も見えません。 ### IoT と非ヒューマンアイデンティティ すべてのデバイス、センサー、マシンに一意の暗号化アイデンティティを付与します。OpenZiti のアイデンティティモデルは、人間のユーザーと同様に非ヒューマンワークロードでも機能し、現代のネットワークトラフィックの大部分を占めるマシン間接続に強力な認証を提供します。 ### ゼロトラストワークロード クラウドや環境をまたいだワークロード間通信を保護します。サービスはネットワーク上の位置ではなく、暗号化アイデンティティで相互認証します。共有シークレット、IP 許可リスト、アンビエント権限は不要です。 ### エージェント AI すべての AI 参加者に暗号化アイデンティティを付与して、エージェント間およびエージェントとサービスの通信を保護します。MCP サーバー、ツールエンドポイント、プライベート LLM は、リッスンポートや公開 URL を持たずにダーク状態を維持します。エージェントは強力で一意のアイデンティティで認証し、ポリシーで許可されたリソースにのみ到達するため、自律的なワークフローは必要なアクセスを取得しつつ、他のすべてに対するアンビエント権限は持ちません。 ### マルチクラウドおよびハイブリッド接続 AWS、Azure、GCP、オンプレミスのデータセンター、エッジロケーションをまたいだ単一のオーバーレイネットワークです。クラウド固有のネットワーキングツール、環境間の VPN トンネル、複雑なピアリング設定は不要です。 ### セルフホスト型サービスアクセス Nextcloud、Home Assistant、メディアサーバー、開発環境などのホームラボやセルフホスト型サービスにどこからでもアクセスできます。ルーターポートを開放する必要も、動的 DNS も、サードパーティのトンネルサービスへの依存もありません。パス全体を自分で制御します。 ### Kubernetes およびクラスター間サービス 複雑な Ingress ルール、サービスメッシュサイドカー、クラスター間の VPN トンネルなしに、Kubernetes クラスター間でサービスを接続します。Kubernetes を超えて機能し、k8s サービスと VM、ベアメタル、IoT デバイス、またはオーバーレイ上のその他のものを接続できます。 --- ## 主要機能 | 機能 | 説明 | |---|---| | **ダークサービス** | サービスはリッスンポートをゼロにします。スキャナーや不正ユーザーから不可視になります。 | | **あらゆるものにアイデンティティ** | ユーザー、サービス、デバイス、非ヒューマンワークロード (NHI) に暗号化アイデンティティを付与。IP ベースではありません。 | | **アイデンティティベースの運用** | IP アドレスやファイアウォールルールではなく、アイデンティティとポリシーでネットワークを管理します。運用を簡素化し、手動によるネットワーク設定を排除します。 | | **エンドツーエンド暗号化** | libsodium を使用してソースから宛先までデータを暗号化。認証には mTLS を使用。ネットワークパスに対するゼロトラスト。 | | **VPN や開放ポートは不要** | 接続は OpenZiti のオーバーレイ経由でルーティングされます。VPN クライアント、インバウンドファイアウォールルール、露出したポートは不要。 | | **スマートルーティング** | メッシュファブリックによるインテリジェントなパス選択で、パフォーマンスと信頼性を実現。 | | **柔軟な導入** | SDK の組み込み、トンネラーの使用、ネットワークレベルでの導入が可能。サービスごとに組み合わせて使用できます。 | | **ポリシーベースのアクセス** | きめ細かいアイデンティティベースのポリシー。アクセスはリアルタイムで取り消し可能で、アクティブな接続も切断します。 | | **プログラム可能な REST API** | 自動化と統合のための完全な管理 API。Web ベースの管理コンソールも含まれます。 | | **完全にセルフホスト可能** | プラットフォーム全体を自身のインフラ上で実行可能。ベンダー依存なし。オープンソース、Apache 2.0。 | --- ## 3つの導入モデル OpenZiti は3つのゼロトラストモデルをサポートしています。単一のネットワーク内でこれらを混在させ、時間をかけて移行することも可能です。 ### ネットワークアクセス 信頼できるネットワークゾーンに OpenZiti エッジルーターを導入します。トラフィックは認証されたクライアントからオーバーレイに入り、サービスの実行されているプライベートネットワークに出ます。 - **コード変更:** 不要 - **サービスホスト上のエージェント:** 不要 - **セキュリティモデル:** ネットワーク境界でのアイデンティティベースのアクセス。ゲートウェイに似ていますが、暗号化アイデンティティと暗号化トランスポートを備えています。 ### ホストアクセス サービスと同じホスト上で OpenZiti トンネラーを実行します。トンネラーがアイデンティティ、認証、暗号化を処理します。サービスは localhost からの接続を受け入れるだけで済みます。 - **コード変更:** 不要 - **セットアップ:** トンネラーのインストール、アイデンティティの登録 - **セキュリティモデル:** ホスト OS における信頼境界。サービスはネットワークからはダークであり、トンネラー経由でのみ到達可能です。 ### アプリケーションアクセス(最強) OpenZiti SDK をクライアントアプリケーションやサーバーアプリケーションに直接組み込みます。アプリケーション自体が暗号化アイデンティティを保持し、プロセス内でトラフィックを暗号化します。localhost にもリッスンポートは存在しません。 - **コード変更:** あり - **セキュリティモデル:** 最強。プロセス内でのエンドツーエンド暗号化。完全にダーク。アイデンティティはネットワーク層やホスト層ではなく、アプリケーション層にあります。 > **どこから始めるか:** 多くのチームは既存のサービスに対して**ホストアクセス**(トンネラー)から始めます。コード変更なしで数分で導入できます。新しい開発や高いセキュリティが求められるワークロードには、**アプリケーションアクセス**(SDK)が最も強力なゼロトラスト体制を提供します。 --- ## はじめに 以下のクイックスタートでは、開発、テスト、学習用のローカル OpenZiti ネットワークをセットアップする方法を示します。本番導入については、https://netfoundry.io/docs/openziti/category/deployments/ の製品ドキュメントを参照してください。 ### Docker を使用したクイックスタート ローカル OpenZiti ネットワークを最も速く立ち上げる方法: ```bash wget https://get.openziti.io/dock/all-in-one/compose.yml docker compose up ``` これにより、コントローラー、エッジルーター、Ziti コンソールが1つのコンポーズスタックで起動します。コンソールは `https://localhost:1280/zac/` で利用可能です。ここからアイデンティティの作成、サービスの定義、アクセスポリシーの設定が行えます。 ストレージオプション、環境変数、CLI の使用法など、詳細については [all-in-one Docker quickstart](https://github.com/openziti/ziti/blob/main/quickstart/docker/all-in-one) を参照してください。 ### CLI を使用したクイックスタート [GitHub Releases](https://github.com/openziti/ziti/releases/latest) から最新の `ziti` バイナリをダウンロードし、次のコマンドを実行します: ```bash ziti edge quickstart ``` これにより、ローカル開発用ネットワーク(コントローラー、ルーター、デフォルトの管理アイデンティティ)が起動します。テストや学習に最適です。 実行中のコントローラーに Ziti Admin Console (ZAC) を追加するには: ```bash ziti ops console download --location /opt/openziti/console ziti ops console configure /path/to/controller.yml --all --location /opt/openziti/console # コントローラーを再起動し、https://<controller-address>/zac/ を開きます ``` または、コントローラーの設定を変更せずに ZAC をローカルで提供するには: ```bash ziti run console --version latest # https://127.0.0.1:8443 が開きます。ブラウザから任意のコントローラーを指定できます ``` ### さらに学ぶ | リソース | 説明 | |---|---| | [Introduction](https://netfoundry.io/docs/openziti/learn/introduction/) | 中核となる概念と OpenZiti の動作方法 | | [Quickstart Guides](https://netfoundry.io/docs/openziti/learn/quickstarts/) | ローカル、Docker、ホスト環境向けの段階的なセットアップ | | [Zero Trust Models](https://netfoundry.io/docs/openziti/learn/core-concepts/zero-trust-models/overview/) | 3つの導入モデルの詳細解説 | | [Tunneler Reference](https://netfoundry.io/docs/openziti/reference/tunnelers/) | コード変更なしで始める方法 | --- ## アーキテクチャ OpenZiti のオーバーレイネットワークは、既存のインフラ(任意の IP ネットワーク、任意のクラウド、任意の組み合わせ)上で動作します。中核となるコンポーネント: ### コントローラー コントローラーは管理プレーンです。以下を処理します: - **アイデンティティ管理**: ネットワーク上のすべての参加者に対して暗号化アイデンティティ(x509 証明書)を発行・検証 - **ポリシー適用**: どのアイデンティティがどのエッジルーターを経由してどのサービスにアクセスできるかを定義 - **ネットワーク状態**: ルーター、サービス、トポロジーを追跡し、管理用の REST API と Web ベースの管理コンソールを提供 ### エッジルーター エッジルーターはデータプレーンを形成し、エンドポイント間で暗号化トラフィックを運ぶメッシュファブリックです。 - **パブリックルーター** はインターネットから到達可能で、ネットワークへのエントリーポイントとして機能 - **プライベート(「ダーク」)ルーター** はプライベートネットワーク内に導入され、アウトバウンド接続のみを行う ルーターは自動的に相互検出し、メッシュ接続を形成し、レイテンシ、スループット、コストに基づいて最適なパスを選択するスマートルーティングを使用します。 ### エンドポイント: SDK とトンネラー エンドポイントは、アプリケーションやユーザーが OpenZiti ネットワークに接続する方法です: - **SDK** (Go, C, Python, Node.js, Java, Swift, C#): アプリケーションに直接ゼロトラストを組み込みます。アプリ自体がアイデンティティを保持し、暗号化を処理します。サイドカー、エージェント、リッスンポートは不要。 - **トンネラー** (Linux, Windows, macOS, iOS, Android): 変更されていないソフトウェアに OpenZiti 接続を提供する軽量アプリ。トラフィックを透過的にインターセプトし、オーバーレイ経由でルーティングします。コード変更は不要。 --- ## ゼロトラスト、ダークサービス、エンドツーエンド暗号化 ### ゼロトラストとアプリケーションセグメンテーション OpenZiti ネットワーク内のすべての参加者(例:ユーザー、サービス、デバイス、ワークロード)は、x509 証明書に裏打ちされた一意の暗号化アイデンティティを持ちます。接続が試行されると、OpenZiti は以下を検証します: 1. アイデンティティが有効で登録されていること 2. そのアイデンティティに要求されたサービスへのアクセスを許可するポリシーが存在すること 3. 接続が許可されたエッジルーター経由であること いずれかのチェックが失敗すると、接続は拒否されます。後でアクセスが取り消された場合、アクティブな接続は即座に終了します。ネットワーク上の位置に基づく暗黙の信頼はありません。同じ LAN にいることは、ポリシーで明示的に許可されない限り、インターネットを経由するよりも多くのアクセスを付与しません。 このモデルはゼロトラストアプリケーションセグメンテーションを提供します。各サービスは独立して承認されます。1つのサービスへのアクセスを取得しても、他のサービスへのアクセスは付与されません。 ### ダークサービス 「ダーク」サービスは、ポートを開放していません。着信接続のためにネットワークインターフェースでリッスンすることはありません。代わりに、サービス(またはその隣のトンネラー)は OpenZiti エッジルーターへの**アウトバウンド**接続を行い、自身を登録します。クライアントは、認証と承認の後にのみ、OpenZiti ファブリックを介してサービスに到達します。 実際にこれが意味すること: - **ポートスキャンでは何も見つからない**: 発見できるリッスンポートはありません - **攻撃対象領域ゼロ**: 到達できないものを悪用することはできません - **DDoS 耐性**: 攻撃される公開エンドポイントはありません - **不正ユーザーから不可視**: マッチするポリシーを持つアイデンティティだけがサービスの存在を知ることができます - **NAT とファイアウォールにフレンドリー**: すべての接続はアウトバウンドであるため、CG-NAT、ダブル NAT、制限の厳しいファイアウォールも問題になりません エッジルーターもダークにできます。プライベートルーターはアウトバウンド接続のみを行うため、プライベートネットワーク内にインバウンドファイアウォールルールは不要です。 ### エンドツーエンド暗号化 OpenZiti SDK を使用すると、トラフィックは送信アプリケーションから受信アプリケーションまで、データパスには libsodium、アイデンティティ認証には mTLS を使用して暗号化されます。ルーターや中間ネットワークが侵害されても、トラフィックを復号化したり改ざんしたりすることはできません。 トンネラーを使用する場合、暗号化はトンネラー間(またはトンネラーから SDK)のパスをカバーし、アプリケーションを変更することなくマシン間の暗号化を提供します。 --- ## SDK アプリケーションに直接ゼロトラストネットワーキングを組み込む: | 言語 | リポジトリ | 備考 | |---|---|---| | Go | [sdk-golang](https://github.com/openziti/sdk-golang) | OpenZiti プロジェクト自体で使用 | | C | [ziti-sdk-c](https://github.com/openziti/ziti-sdk-c) | 組み込みシステム、IoT、高性能ユースケースに最適 | | Java / Kotlin | [ziti-sdk-jvm](https://github.com/openziti/ziti-sdk-jvm) | Android サポートを含む | | Swift | [ziti-sdk-swift](https://github.com/openziti/ziti-sdk-swift) | iOS および macOS | | Node.js | [ziti-sdk-nodejs](https://github.com/openziti/ziti-sdk-nodejs) | | | C# / .NET | [ziti-sdk-csharp](https://github.com/openziti/ziti-sdk-csharp) | | | Python | [ziti-sdk-py](https://github.com/openziti/ziti-sdk-py) | | すべての SDK は [OpenZiti GitHub organization](https://github.com/openziti) にリストされています。 --- ## セキュリティ OpenZiti はセキュリティ重視のプロジェクトです。脆弱性の責任ある開示は、プラットフォームとそのユーザーの安全を守るのに役立ちます。 **脆弱性の報告:** セキュリティ上の問題を発見した場合は、詳細について [脆弱性開示ポリシー](https://github.com/openziti/security/blob/main/vulnerability_disclosure_policy.md) を確認してください。機密性の高い問題は **[email protected]** に報告してください。機密性の低い問題は、適切なリポジトリで GitHub イシューとして報告できます。7日以内に返信があるはずです。 **脆弱性の処理方法:** 当社の [製品セキュリティインシデント対応プロセス](https://github.com/openziti/security/blob/main/product_security_incident_response_process.md) は、報告された脆弱性がどのようにトリアージ、文書化、解決されるかを説明しています。これには、CVE のリリースが修正とどのように調整されるかも含まれます。 **セーフハーバー:** OpenZiti および NetFoundry は、脆弱性を誠実に調査・報告する者に対して法的措置をとりません。セキュリティ研究を奨励し、報告された発見をアドバイザリやリリースノートで報告者に帰属させます。 --- ## コミュニティ&サポート OpenZiti には活発で成長を続けるコミュニティがあります: - **[Discourse Forum](https://openziti.discourse.group/)**: 質問、プロジェクトの共有、コミュニティやメンテナーからのヘルプ - **[YouTube](https://www.youtube.com/@OpenZiti)**: チュートリアル、デモ、詳細解説 - **[Blog](https://blog.openziti.io)**: プロジェクトの更新と技術記事 - **[Twitter/X](https://twitter.com/openziti)**: ニュースとお知らせ --- ## コントリビューション OpenZiti プロジェクトは、コード、ドキュメント、バグ報告、フィードバックなど、あらゆるコントリビューションを歓迎します。 ### 主要リポジトリ | リポジトリ | 説明 | |---|---| | [openziti/ziti](https://github.com/openziti/ziti) | 中核プラットフォーム: コントローラー、ルーター、CLI | | [sdk-golang](https://github.com/openziti/sdk-golang) | Go SDK | | [ziti-sdk-c](https://github.com/openziti/ziti-sdk-c) | C SDK | | [ziti-sdk-jvm](https://github.com/openziti/ziti-sdk-jvm) | Java / Kotlin / Android SDK | | [ziti-sdk-swift](https://github.com/openziti/ziti-sdk-swift) | Swift / iOS SDK | | [ziti-sdk-nodejs](https://github.com/openziti/ziti-sdk-nodejs) | Node.js SDK | | [ziti-sdk-csharp](https://github.com/openziti/ziti-sdk-csharp) | C# SDK | | [ziti-sdk-py](https://github.com/openziti/ziti-sdk-py) | Python SDK | | [ziti-tunnel-sdk-c](https://github.com/openziti/ziti-tunnel-sdk-c) | Linux トンネラーと中核トンネラー SDK | | [ziti-tunnel-apple](https://github.com/openziti/ziti-tunnel-apple) | macOS および iOS エッジクライアント | | [desktop-edge-win](https://github.com/openziti/desktop-edge-win) | Windows デスクトップエッジクライアント | | [ziti-doc](https://github.com/openziti/ziti-doc) | ドキュメントサイト | ### ソースからのビルド ビルド手順については [ローカル開発チュートリアル](https://github.com/openziti/ziti/blob/main/doc/002-local-dev.md) を参照してください。 ### 開発者向けドキュメント - [開発者概要](https://github.com/openziti/ziti/blob/main/doc/001-overview.md) - [ローカル開発](https://github.com/openziti/ziti/blob/main/doc/002-local-dev.md) - [ローカル導入](https://github.com/openziti/ziti/blob/main/doc/003-local-deploy.md) - [コントローラー PKI](https://github.com/openziti/ziti/blob/main/doc/004-controller-pki.md) - [リリースノート](https://github.com/openziti/ziti/blob/main/CHANGELOG.md) --- ## 採用事例 OpenZiti は、[DeltaSecure](https://deltasecure.de/)(管理 SOC)、[Resulticks](https://www.resulticks.com/)(マーケティング自動化)、[Chirp Wireless](https://chirpwireless.io/)(IoT/テレコム)、[GIGO Dev](https://gigo.dev/)(クラウド開発環境)、[OSMIT](https://osmit.de/)(管理 IT/GDPR コンプライアンス)などの組織、および [zrok](https://zrok.io) や [BlueBubbles](https://bluebubbles.app) などのオープンソースプロジェクトで本番運用されています。 完全なリストは **[ADOPTERS.md](https://github.com/openziti/ziti/blob/main/ADOPTERS.md)** をご覧ください。OpenZiti を使用していますか?ぜひ追加させてください。イシューを開くか、PR を送信してください。 --- ## マネージドソリューション 自身のインフラを管理せずにゼロトラストネットワーキングを利用したい場合は、[NetFoundry](https://netfoundry.io/docs/openziti/#deploy_an_overlay) が、SLA、エンタープライズサポート、グローバルなエッジルーターファブリックを備えた、完全マネージドでグローバルに分散された OpenZiti ネットワークをサービスとして提供しています。 --- *OpenZiti は [NetFoundry, Inc](https://netfoundry.io) によって開発・オープンソース化されています。*