このページでは、Identity-Aware Proxy(IAP)で TCP 転送を処理する方法について説明します。トンネリングされたリソースへのアクセス権をプリンシパルに付与する方法と、TCP トラフィックをルーティングするトンネルの作成方法については、TCP 転送での IAP の使用をご覧ください。
はじめに
IAP の TCP 転送機能を使用すると、公共のインターネットからバックエンドの SSH や RDP などの管理サービスへのアクセスを許可するユーザーを制御できます。TCP 転送機能は、これらのサービスがインターネットに露出するのを防ぎます。その代わりに、サービスへのリクエストは、ターゲット リソースに到達する前に認証と承認のチェックにパスする必要があります。
クラウドでワークロードを実行するときに、管理サービスがインターネットに露出するとリスクが発生します。IAP を使用して TCP トラフィックを転送すると、そのリスクを軽減し、許可されたユーザーだけがこれらの重要なサービスにアクセスできるようになります。
この機能は主に管理サービスを対象としているため、負荷分散されたターゲットはサポートされません。
モバイル デバイスでは、IAP TCP 転送サービスの呼び出しはサポートされていません。
IAP の TCP 転送の仕組み
IAP の TCP 転送機能を使用すると、Compute Engine インスタンスの任意の TCP ポートに接続できます。一般的な TCP トラフィックでは、IAP はすべてのトラフィックを指定のインスタンスに転送するリスニング ポートをローカルホスト上に作成します。次に、クライアントからのすべてのトラフィックを HTTPS でラップします。ユーザーは、ターゲット リソースの Identity and Access Management(IAM)ポリシーの認証と認可のチェックに合格すると、インターフェースとポートにアクセスできるようになります。
特殊なケースでは、gcloud compute ssh
を使用して SSH 接続を確立すると、HTTPS に SSH 接続がラップされ、リモート インスタンスに転送されます。この場合、ローカルホストのリスニング ポートを使用する必要はありません。
管理リソースで IAP を有効にしても、リソースに対する直接的なリクエストは自動的にブロックされません。IAP は、IAP TCP 転送 IP からリソースの関連サービスへでない TCP リクエストのみをブロックします。
IAP を使用した TCP 転送では、リソースに割り当てられたルーティング可能なパブリック IP アドレスは必要ありません。代わりに、内部 IP が使用されます。
次のステップ
- インスタンス上の TCP ポートに接続し、トンネリングされたリソースへのアクセス権をプリンシパルに付与する方法を学習する。