はじめに
ゼロからグローバルに到達可能で認証済みのサービスを4ステップで構築できます。Consoleでプロジェクトとサービスアカウントを作成し、ワークロードの横にWarpgateをデプロイし、ルートを設定して、公開します。
前提条件
- 任意のプラットフォームで動作するワークロード(Webアプリ、API、またはその他のサービス)。Secure Ingressはクラウド非依存です。任意のクラウドプロバイダー、コンテナ、仮想マシン、またはローカル開発マシンでアプリケーションを実行でき、特定のランタイム、フレームワーク、デプロイターゲットは必要ありません。
- Warpgate実行用のDockerまたはKubernetes
- Secure Ingressアカウント(Consoleで作成 )
このガイドでは、Webサービスがコンテナ内またはホスト上でポート8080をリッスンしていることを前提とします。
ステップ1:Consoleでプロジェクトとサービスアカウントを作成
WarpgateはサービスアカウントのAPIキーで認証するため、デプロイの前に認証情報を作成します。Consoleを開きます:
- プロジェクトを作成:名前と説明を設定
- 環境を作成:本番、ステージング、または開発。各環境は固有のエンドポイントホスト名を持ちます
- サービスアカウントを追加:プロジェクトのサービスアカウントを開いて作成し、生成されたAPIキーをコピーします。これがWarpgateトークン(以下の
YOUR_API_KEY)で、表示は一度きりです。
ステップ2:ワークロードの横にWarpgateをデプロイ
ワークロードと一緒にWarpgateをデプロイします。WarpgateはAltuur Edgeに対して外側に接続するため、インフラでインバウンドポートを開放する必要はありません。Warpgateはプライベートなネットワーク経路でアプリケーションに到達し、アプリケーション自体がインターネットに公開されることはありません。
Docker Composeを使用(推奨)
アプリケーションとWarpgateを同じComposeプロジェクトの2つのサービスとして実行します。Composeが両者にプライベートネットワークを用意するため、Warpgateはサービス名でアプリケーションに到達でき、アプリケーションにはports:の指定がありません。そのネットワークの内側からしか到達できない状態です。
services:
app:
image: your-app:latest
# portsなし:アプリはプライベートなComposeネットワーク内からのみ到達可能
warpgate:
image: mezusphere/warpgate
command: ["--api-key", "YOUR_API_KEY", "--upstream-url", "http://app:8080"]
depends_on:
- appホスト上のアプリケーションに対してDockerを使用
アプリケーションがコンテナではなくホスト上で直接動作している場合は、ホストをWarpgateコンテナから参照できるようにし、アップストリームをそこに向けます。コンテナ内のlocalhostはホストではなくコンテナ自身を指します。
docker run --add-host=host.docker.internal:host-gateway mezusphere/warpgate \
--api-key YOUR_API_KEY \
--upstream-url http://host.docker.internal:8080この方法は、アプリケーションがホスト上でリッスンし、Dockerブリッジネットワークからの接続を受け付けること(たとえば0.0.0.0:8080にバインドする)、そしてポート8080が公開されていないことを前提とします。ホストのファイアウォールまたはクラウドのセキュリティグループで、このポートをインターネットに対して閉じたままにしてください。到達できるのはWarpgateだけであるべきです。
オプション:エコーモードで接続を確認
アップストリームを接続する前に、経路全体を確認できます。--echoを付けると、Warpgateはエンドポイント経由のすべてのリクエストに、受け取った内容をJSONで反射して応答します:
docker run mezusphere/warpgate --api-key YOUR_API_KEY --echoブラウザで環境のエンドポイントを開き、エコー応答が表示されたら、--echoを--upstream-urlに置き換えるとトラフィックがサービスに流れます。
直接経路を閉じる
Warpgateを追加しても、既存のパブリックIPアドレス、リスナー、ファイアウォールルールは消えません。アプリケーションが以前からインターネットに到達可能だった場合は、公開していたポート、DNSレコード、セキュリティグループのルールを削除するか、信頼できるアドレスだけに制限し、ワークロードへの唯一の経路がAltuur Edge経由になるようにしてください。セキュリティセクションで説明するセキュリティ特性は、この作業を前提としています。
ステップ3:Consoleでルートを設定
Consoleに戻り、作成した環境を開きます:
- ルートを定義:バックエンドへのURLパスルーティングルールを設定
- 認証を有効化(オプション):特定のルートでエンドユーザーログインを要求。公開のままにしたルート(たとえばヘルスチェック)は、エンドユーザー認証なしで通過します
ステップ4:公開
設定が完了すると、エンドユーザーはAltuur Edgeを通じて接続します。トラフィックは自動的に:
- TLS 1.3で暗号化
- エッジのレート制限と不正利用対策で保護
- 認証を有効にしたルートでは、Warpgateに到達する前に認証
- パスルールに基づいて正しいバックエンドにルーティング
アプリケーションコードを変更することなく、サービスはグローバルに到達可能でセキュアになります。
次のステップ
- コアコンセプト:組織、プロジェクト、環境、ルートを理解する
- Warpgateリファレンス:デプロイオプション、設定、接続性
- Consoleガイド:主要なワークフローのウォークスルー