GAEのベータ機能として8/24より登場した「ファイアウォール ルール」
これまでもGAEでは dos.xml や dos.yaml を設定することによって、IP アドレスのブラックリスト登録をすることはできました。
しかし、dos 設定は、登録できるルールは100件まで、特定の IP アドレスのみを許可する設定はできない、などあまり使い勝手のよいものではありませんでした。
例えば、特定の IP アドレスのみを許可したい場合はアクセスしてきた IP アドレスをアプリケーション内でチェックして許可/拒否 の処理をする必要があったため、アクセス分がそのまま処理コストとなっているなど、GAEにおけるIP制限は課題がありました。
そんな課題を払拭する、GAEの新機能(結構珍しい)「ファイアウォール ルール」はクラウドコンソールやコマンドラインから容易に操作出来るIP制限機能です。
クラウドコンソールでの設定手順や動作について解説していきます!
どこにある?
まずはクラウドコンソールからファイアウォールルールを設定し、動作を確認していきましょう。
App Engine の機能一覧に「ファイアウォール ルール」が追加されていることが確認できます。
この項目をクリックするとファイアウォールルールのベージに飛びます。
デフォルト設定ではすべてのIPアドレスが許可されています。
ルールを作成する!!
それでは実際にファイアウォール ルールを作成してみましょう。
画面上部にある「ルールを作成」ボタンを押下します。
すると、「ファイアウォール ルールの作成」というページに飛びます。
それぞれの項目の説明です
※ネットワーク用語の説明は割愛させていただきます。
項目 | 説明 |
---|---|
優先度 | IP アドレスが複数のルールと一致した際の、適用優先度を設定します。
設定した数字が大きいものから適用され、1~2147483646 の範囲を指定できます。 |
一致したときのアクション | ルールがアクセス元の IP アドレスと一致した際の、許可 / 拒否 を設定します。 |
IP 範囲 | 範囲を入力するには、CIDR 表記を使用して、”開始 IP アドレス/サブネットマスクのビット数”を入力します。
サブネット内の最小の IP アドレスを指定する必要があります。 |
ちなみにデフォルト設定を見てみると優先度と IP 範囲はグレーアウトされているため編集できず、一致した場合の 許可/拒否 のみが変更できるようになっています。
優先度は、「ルールを作成」で指定できる最大数値を上回っているため常に最低で、IP 範囲は 0.0.0.0 ~ 255.255.255.255 の全てが対象となっています。
実際にファイアウォールルールを設定してみました
この設定は下記の順に適用されます。
- 優先度「デフォルト」の設定で全てのIPアドレスを「許可」
- 優先度「2」の設定で IP 範囲を「1.1.1.0/24」としているので、 1.1.1.0 ~ 1.1.1.255 を「拒否」
- 優先度「1」の設定で 1.1.1.1 を「許可」
これにより、1.1.1.2~255までが拒否で他はすべて許可ということになります。
設定した IP アドレスをテストしてみる!!
設定が正しく出来ているか確認してみます。
画面上部の「IP アドレスをテスト」ボタンを押下します。
すると、下記画像の画面に遷移するので、確認したい IP アドレスを入力し、「テスト」ボタンで実行します。
今回は下記3つの IP アドレスをテストしてみます。
- 0.0.0.0
- 1.1.1.0
- 1.1.1.1
設定が間違っていなければ、下記のようになるはずです
- 0.0.0.0: 許可
- 1.1.1.0: 拒否
- 1.1.1.1: 許可
それでは実際にやってみます。、結果は・・・
・0.0.0.0: 許可
・1.1.1.0: 拒否
・1.1.1.1: 許可
正しく設定出来ていることが確認できました!
まとめ
今まで GAE ではアプリケーション内でアクセス元 IP アドレスを取得し、アクセスの許可/拒否を設定していましたが、クラウドコンソールから非常に簡易に設定できることが確認できました!
また、IP アドレスをテストすることができるので、正しい設定ができているかを誰でも簡単に確認することができます!
ただし、この状態だとルールを設定した瞬間に反映されてしまうため、本番等ではなかなか試してみるのが難しい設定もあるかも知れませんし、画面からだとミスも心配ですね。
次回は gcloud コマンドからファイアウォールを設定することでテスト環境と本番環境への適用を間違い無く実施出来るようにしつつ、実際の検証も行います。GCEインスタンス2台からアクセスして検証、結果をログやインスタンスの挙動からみてみます。!!
※ 弊社ではクラウドエース(Cloud Ace)というGCPの導入・運用支援サービスを提供しておりますので、ご興味のある方はこちらまでお問い合わせください
GAEに限らず、あらゆるGCPサービスのサポートが可能です!