本文へスキップ

はじめに

はじめに:以下の手順はAltuur Secure Ingress(アルトゥール セキュアイングレス)のオンボーディングワークフローを説明しています。サポートが必要な場合はお問い合わせください。

ゼロからグローバルに到達可能で認証済みのサービスを4ステップで構築できます。Console(コンソール)でプロジェクトとサービスアカウントを作成し、ワークロードの横にWarpgate(ワープゲート)をデプロイし、ルートを設定して、公開します。

前提条件

  • 任意のプラットフォームで動作するワークロード(Webアプリ、API、またはその他のサービス)。Secure Ingress(セキュアイングレス)はクラウド非依存です。任意のクラウドプロバイダー、コンテナ、仮想マシン、またはローカル開発マシンでアプリケーションを実行でき、特定のランタイム、フレームワーク、デプロイターゲットは必要ありません。
  • Warpgate(ワープゲート)実行用のDockerまたはKubernetes
  • Secure Ingress(セキュアイングレス)アカウント(Consoleで作成 )

このガイドでは、Webサービスがコンテナ内またはホスト上でポート8080をリッスンしていることを前提とします。

ステップ1:Console(コンソール)でプロジェクトとサービスアカウントを作成

Warpgate(ワープゲート)はサービスアカウントのAPIキーで認証するため、デプロイの前に認証情報を作成します。Console(コンソール)を開きます:

  1. プロジェクトを作成:名前と説明を設定
  2. 環境を作成:本番、ステージング、または開発。各環境は固有のエンドポイントホスト名を持ちます
  3. サービスアカウントを追加:プロジェクトのサービスアカウントを開いて作成し、生成された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(コンソール)に戻り、作成した環境を開きます:

  1. ルートを定義:バックエンドへのURLパスルーティングルールを設定
  2. 認証を有効化(オプション):特定のルートでエンドユーザーログインを要求。公開のままにしたルート(たとえばヘルスチェック)は、エンドユーザー認証なしで通過します

ステップ4:公開

設定が完了すると、エンドユーザーはAltuur(アルトゥール) Edgeを通じて接続します。トラフィックは自動的に:

  • TLS 1.3で暗号化
  • エッジのレート制限と不正利用対策で保護
  • 認証を有効にしたルートでは、Warpgate(ワープゲート)に到達する前に認証
  • パスルールに基づいて正しいバックエンドにルーティング

アプリケーションコードを変更することなく、サービスはグローバルに到達可能でセキュアになります。

次のステップ