本記事は
ネットワークウィーク
15日目の記事です。
💻
14日目
▶▶ 本記事 ▶▶
🌐

こんにちは。横田です。 本ブログでは、Identity-Aware Proxy (以下、IAP)を活用して、パブリックIPを持たないVMインスタンスに安全にアクセスする方法をご紹介します。 想定する読者層は以下の通りです。
- IAPがどのような場面で活用されているか知りたい方
- IAPを使い始めた人
1. はじめに
使用するサービスはIAPとCompute Engine (以下、VMインスタンス)です。 IAPとは、ユーザーIDに基づいてアプリケーションやリソースへのアクセスを制御する仕組みであり、ゼロトラスト・セキュリティを実現するために重要なサービスです。
IAPを導入することで、以下のようなメリットがあります。
- IDベースの柔軟なアクセス制御:誰が(ユーザーアカウント、サービスアカウント、グループなど)、どのアプリケーションにアクセスできるかを細かく管理できます。
- 幅広いリソースの保護:Google Cloud上のサービスからオンプレミスのアプリケーションまでリソースの保護ができます。
- 安全なサーバーアクセス:外部IPアドレスを持たないVMインスタンスに、踏み台サーバなしでSSH/RDP接続が可能となり、セキュリティリスクを軽減できます。
構成図は以下です。今回は、プライベートインスタンスにIAPを経由してアクセスすることで、認証・認可されたユーザーだけが安全にリモートアクセスできる環境を実現します。 IAPはVPC内にトラフィックを通すかどうかを判断するためVPCの外に配置されます。

よりセキュアな構成として、IAP経由で踏み台サーバにアクセスし、そこから最終的なターゲットサーバ(データベースサーバなど)へ接続する方法もあります。 厳格なセキュリティが求められる環境やアクセスの管理・記録が必要なケースに有効です。

2. 実装
それでは、実際に設定を行っていきます。 参考にしたサイトは以下です。
Identity-Aware Proxy の概要 | Google Cloud
TCP 転送での IAP の使用 | Identity-Aware Proxy | Google Cloud Documentation
2.1 事前設定
まず、VPCとVMインスタンスを作成します。 VPCはデフォルトで用意されているものを使用して問題ありません。 VMインスタンス作成時は、「外部 IPv4アドレス」欄を「なし」に設定してください。 その他の項目は任意で構いません。

2.2 ユーザーからIAPへの接続設定
次に以下の通信設定の確認をします。この設定はIAMで制御されています。 デフォルトで設定されている場合もありますが確認していきましょう。

「IAM」のコンソールから該当のプリンシパルを確認し、以下のロールが割り当てられていることを確認してください。 権限が不足している場合は、鉛筆アイコンをクリックして権限を追加します。

2.3 IAPからVMインスタンスへの接続設定
続いて、以下の通信設定を行います。 この通信はFWルールで制御しています。

VPCネットワークのコンソールからサイドメニューの「ファイアウォール」を開き、右上の「ファイアウォール ルールを作成」をクリックします。 以下の項目を入力してください。記載のない項目はデフォルトで問題ありません。 送信元 IPv4範囲に設定しているIP範囲(35.235.240.0/20)は、IAPがTCP転送に使用するIP範囲です。 このIP範囲を入れることでIAP経由ですべてのVMインスタンスにアクセスができます。

| 設定項目 | 設定値 |
|---|---|
| 名前 | 任意 |
| ネットワーク | (該当のVPC) |
| ターゲット | ネットワーク上のすべてのインスタンス |
| 送信元 IPv4範囲 | 35.235.240.0/20 |
| TCP | (チェックを入れる) |
| TCPポート | 22 |
これで設定は完了です。
2.4 アクセス確認
設定が正しく行われているか確認します。
今回は、コンソール画面からSSH接続を行い、動作確認をします。
VMインスタンスのコンソール画面から「SSH」をクリックします。

ログイン時に承認画面が表示されるので「Authorize」をクリックします。
ここでIAPの認証が行われます。

下図の画面が表示されればSSH接続成功です。

3. まとめ
本ブログでは、IAPを経由してプライベートインスタンスにアクセスする方法をご紹介しました。 ポイントをまとめると以下になります。
- IAPを使うことで、IDベースの柔軟なアクセス制御が可能
- 外部IPを持たないインスタンスに、踏み台サーバなしで安全にアクセスが可能
最後までお読みいただきありがとうございました。 今後もGoogle Cloud関連のブログを発信していきたいと思います。