TCPトンネル
Prisma Postgres には、ローカルデータベースワークフロー向けに設計された認証プロキシである @prisma/ppg-tunnel
パッケージを使用して、TCPトンネル経由で安全にアクセスできます。このパッケージは、ローカルTCPサーバーを介してPrisma Postgresへのセキュアな接続を確立し、トラフィックルーティングと認証を自動的に処理しながら、セキュアなアクセスを可能にします。
これは Prisma Postgres の アーリーアクセス 機能です。本番環境での使用は推奨されておらず、アプリケーションレベルのアクセスを目的としたものではありません。
アーリーアクセス期間中は、TCPトンネルの使用は無料です。
前提条件
- Node.js がマシンにインストールされていること
- Prisma Postgres データベース接続文字列が
DATABASE_URL
という環境変数として設定されていること
環境変数のエクスポート
トンネルは、DATABASE_URL
環境変数が Prisma Postgres インスタンスの接続URLに設定されていることを想定しています。.env
ファイルに DATABASE_URL
がすでに設定されているプロジェクトからトンネルコマンドを実行している場合は、トンネルが自動的にそれを認識するため、このステップはスキップできます。
ターミナルセッションで DATABASE_URL
環境変数を一時的にエクスポートするには
- macOS
- Linux
- Windows
export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
set DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
API_KEY
プレースホルダーを Prisma Postgres インスタンスの API キーの値に置き換えます。
TCPトンネルの開始
プロキシサーバーを起動するには、次のコマンドを実行します
npx @prisma/ppg-tunnel
Prisma Postgres auth proxy listening on 127.0.0.1:52604 🚀
Your connection is authenticated using your Prisma Postgres API key.
...
==============================
hostname: 127.0.0.1
port: 52604
username: <anything>
password: <none>
==============================
これにより、ランダムに割り当てられたTCPポートでトンネルが開始されます。プロキシは認証を自動的に処理するため、任意のデータベース認証情報が受け入れられます。トンネルはトラフィックも暗号化するため、クライアントはSSLを必要としないように設定する必要があります。
これで、お気に入りの PostgreSQL クライアント(psql
や TablePlus、DataGrip などのGUI)を使用して Prisma Postgres エディターに接続できます。これを行うには、上記の出力から host
と port
のみを提供する必要があります。TCPトンネルは、Prisma Postgres 接続URLのAPIキーを介して認証を処理するため、username
と password
の値は省略できます。
ホストとポートのカスタマイズ
デフォルトでは、トンネルは 127.0.0.1
でリッスンし、ランダムなポートを割り当てます。Prisma Postgres データベースへのアクセスを提供するものであるため、信頼されたネットワーク内でのみ公開する必要があります。--host
および --port
フラグを使用して、カスタムホストとポートを指定できます
npx @prisma/ppg-tunnel --host 127.0.0.1 --port 5432
次のステップ
ローカルトンネルを使用すると、Postico、DataGrip、TablePlus、pgAdmin などのサードパーティ製データベースエディターから Prisma Postgres にアクセスできます。詳細については、このセクションを参照してください。
セキュリティに関する考慮事項
TCPトンネルを使用する場合は、次の点に注意してください
- トンネルは、スキーマ管理(つまり、Prisma Migrate外のDDLクエリ)をサポートしていません。
- トンネルは、信頼できないネットワークに公開しないでください。
- APIキーは常に安全に保管し、ハードコーディングしないでください。
- 必要なユーザーのみが Prisma Postgres データベースへの直接アクセス権を持っていることを確認してください。