はじめに
App EngineのファイアウォールとIdentity-Aware Proxy (IAP) のアクセス制御リスト (ACL) は、どちらも送信元IPアドレスのアクセス制御を提供しますが、結局どの場合にどっちを使った方が良いんだろう?ということが分からなかったので整理してみました。
以下にそれぞれの特徴と違いを説明します。
App Engineのファイアウォール
-
役割:
- App Engineのファイアウォールは、アプリケーションへの外部からのトラフィックを制御します。
- IPアドレスやCIDR範囲に基づいてアクセスを許可または拒否できます。
-
適用範囲:
- ルールはApp Engineアプリケーション全体に適用されます。
- すべてのリクエストに対して適用され、アプリケーションのエントリーポイントでフィルタリングされます。
-
例:
- 特定のIPアドレスからのアクセスのみを許可する。
- 特定のIPアドレス範囲からのアクセスを拒否する。
Identity-Aware Proxy (IAP) のACL
-
役割:
- IAPは、Google Cloud上のアプリケーションやリソースへのアクセスを認証および認可します。
- ユーザーのアイデンティティに基づいてリソースへのアクセスを制御します。
-
適用範囲:
- IAPは、HTTP(S)ロードバランサを介してアクセスされるアプリケーションやリソースに適用されます。
- アプリケーションの個々のパスやエンドポイントに対して細かい制御が可能です。
-
例:
- 特定のGoogleアカウントを持つユーザーのみがアクセスできるようにする。
- 特定のGoogleグループのメンバーのみがアクセスできるようにする。
設定方法:
結論
- App EngineのファイアウォールはIPアドレスに基づいてアプリケーション全体へのアクセスを制御します。
- IAPのACLはユーザーやグループのアイデンティティに基づいて、HTTP(S)ロードバランサ経由のアクセスを制御します。
よりユーザーレベルで柔軟にアクセス制御したい場合やIPアドレス以外の制御もしたい場合はApp Engine、全てのユーザーに対してIPアドレスのみをしたい場合はファイアウォールを適用すると良いのかなと思います。
参考サイト