Google Cloud Platform

App Engine ファイアウォールを正式リリース

クラウド アプリケーションのセキュリティを確保することは、さまざまな理由から重要です。たとえば、「アクセス元を信頼できる IP アドレスに制限したい」「ユーザー データを保護したい」「DoS 攻撃に備えてアプリケーションの使用帯域幅を制限したい」などが挙げられます。

App Engine ファイアウォール を使えば、一連のルール セットにより、App Engine アプリケーションへのアクセスを管理できます。この機能は先ごろ正式リリース(GA)となり、これによって本番アプリケーションへのアクセスのセキュリティ確保が可能になりました。アプリケーションをセットアップし、拒否または許可する IP アドレス範囲のリストを用意すれば、後は App Engine がすべて処理してくれます。

今回の GA リリースに伴い、App Engine ファイアウォールによる IPv4 および IPv6 アドレスのフィルタリングを利用して、より包括的なセキュリティ ポリシーを強制できるようになりました。開発者がアプリケーションに変更を加える必要はありません。

App Engine ファイアウォールが提供するセキュリティ機能については、お客様やパートナーから良い評価を多数いただいています。以下では Reblaze と Cloudflare からお寄せいただいたコメントを紹介します。

新しくリリースされた App Engine ファイアウォールのおかげで、リソースが豊富なハッカーが私たち Reblaze のゲートウェイを迂回して App Engine アプリケーションに直接アクセスしようとしても、防止できるようになりました。この新機能により、お客様は Reblaze の包括的なウェブ セキュリティ機能(DDoS 保護、WAF/IPS、ボット緩和、フルリモート管理など)を App Engine で利用できます。Tzury Bar Yochay 氏、Reblaze Technologies の CTO
App Engine ファイアウォールにより、お客様は、Cloudflare の IP アドレスからのトラフィックだけを受け入れるようにアプリケーションをロックできます。Cloudflare はリバース プロキシ サーバーを使用しているので、App Engine ファイアウォールと Cloudflare の統合により、アプリケーションのオリジン サーバーへの直接アクセスの防止が強化され、Cloudflare は悪意ある挙動をフィルタリングし、ブロックできます。Travis Perkins 氏、Cloudflare のアライアンス責任者

シンプルで効果的

App Engine ファイアウォールを使い始めるのは簡単です。Google Cloud Platform Console から App Engine Admin API を使って REST リクエストを行うか、あるいは gcloud CLI からルールをセットアップできます。

たとえば、不正ネットワークのいくつかのアドレスから攻撃されているアプリケーションがあるとしましょう。まず、アプリケーションのリクエスト ログから、その IP アドレスを入手します。次に、不正ネットワークの拒否ルールをファイアウォールに追加します。他のユーザーがアプリケーションにアクセスできるように、デフォルト ルールは許可に設定するようにします。

91H4XMOE6Opn3RsrNi224DHuMtTAhj2RLCnEi1VdqMnlv1eHC_Mh5mxgiIUbkbj7ovYErTD8i06A0VVgkIrZvdddKxYCB22qey-oReNy2Gm8uMXXJ00zF6XuKGo7JzxdtJIJgklQx13x.PNG

セットアップは以上です。アプリケーションを書き換えて再デプロイする必要はありません。ホワイトリスト化された IP アドレスからのみアプリケーションにアクセスできるようになっています。拒否ルールに合致する IP アドレスは、リクエストがアプリケーションに到達する前に、HTTP 403 エラー コードを返されます。これは、アプリケーションの追加インスタンスが起動されたり、そのリクエストの処理に対して課金されたりしないということです。

IP ルールの検証

一部のアプリケーションは複雑なルール セットを持っており、特定の IP アドレスが許可されるのか、拒否されるのかが判断しにくいかもしれません。その場合は Cloud Console の Test IP タブで IP アドレスを入力してください。ファイアウォールがそのリクエストを許可するのか、拒否するのかがわかります。

S8cCA7l5s130sLYedIgVYaJp2UycRuEKwRwiFXkC6rkzr-9uGKejPjy-cec24v7HqbbiCbEqPVWoRa7jng1OWKTnfZtLQfoQcDJvMOXOfLiZViViLWbeqSACfzoBWv7Ai7AeGt4x8sdw.PNG

試しに、社内開発者の IP アドレスが許可されるか確認してみましょう。すると、“不正ネット” をブロックするルールが優先され、このアドレスは拒否されることがわかります。

SOXn-kgYOhu1tEHQMa34VRDHrY65g5vNigGDDJ7NhVutRtO3ZP2pd3FZgZyMA5cGUYIqe4h8EAeYvIVi-VKJNNZZgznvg1ompzzAyb1J1MXeR7rwk4m0CrHYRKhlWxkcjgm4qnvm96zo.PNG

ルールは優先順位に従って評価され、最初に合致したルールが適用されます。そこで、開発者の IP アドレスの優先順位の値を、ブロックされる所属ネットワークよりも小さくすれば、この問題を解決できます。

gdTUjlE1wOYG8ip5bO9acLcSnvGz606D0l8rpysOz-iTiRHus5MIYkHan3eFrjfqdcj8hX-reN059cO3Mh7CBVkShq1Ntasf5HmJlGBSQdjgEayq3HmtrVqR9fK-0q8BBO7jVTxBvn4d.PNG

再び確認すると、意図したとおりになっていることがわかります。

m2hnFda4vJ4idaWj9S-TjkJ1ImGYRvYgrSXC9G_3sm37HGMpMNQP7zbZU5diytJ91aI0gbkWzjUTFoi5ykvdDuXyPRCgtxAFLFkViyGxjTe-h3M8CAAsHvUoGTYXcpB6vTf0-PNlys1m.PNG

その他のサンプルや詳細については、App Engine ファイアウォールのドキュメントをご覧ください。

フィードバックをお寄せいただいたすべてのベータ ユーザーに感謝します。ご質問や気になる点、ご意見がありましたら、パブリック イシューApp Engine フォーラムApp Engine の Slack チャンネルなどを使ってご連絡ください。

* この投稿は米国時間 10 月 13 日、Software Engineer である Ben Marks と、Engineering Manager である Tad Hunt によって投稿されたもの(投稿はこちら)の抄訳です。

- By Ben Marks, Software Engineer and Tad Hunt, Engineering Manager