はじめに

GoogleCloudに対してのIP開放したところ、思った箇所以外に変更が必要な箇所があり、App Engineに対するIPアドレス制限について記載する。

今回の問題が発生した構成

構成補足

  • サーバレスの構成でLB配下にCloudStorage、App Engine、CloudFunctionsをぶら下げている。
  • App Engine、CloudFunctionsに対するCloudArmorの設定は可能だが、CloudStorageに対するCloudArmorの適用はできない(※)。
  • LB配下にぶら下げたCloudStorageにコンテンツを配置した場合、アクセス制限をかけたかったので、リバプロとして動作させるApp Engineを作成し、間にかませる構成にし、App Engineに紐付けたCloudArmorでアクセス制限した。

※なお、2022/6にCloudStorageへのCloudArmorでのアクセス制限が可能になった!個人的にこのことがあったので熱いアプデ
https://cloud.google.com/blog/ja/products/identity-security/cloud-armor-adds-more-edge-security-policies-proxy-load-balancers

発生した事象

事象内容

App Engineに紐付いているCloudArmorにてIPアドレスを許可しても、アクセス可能にならなかった

一次対応を受けて調査

  • LBのログの出力内容確認(500エラーであることしか記録されず、、、)
  • CloudArmorのルール制限に抵触していないか確認するも抵触していない(※1)
  • CloudArmorがちゃんと適用されていないのでは?と思い、新たにCloudArmorを作成し、同じルールで適用するもNG

※1 https://cloud.google.com/armor/quotas?hl=ja#limits

ここでの中間の感想

  • 他に思い当たる制限箇所もこの時ありませんでしたので、問い合わせることに

サポートからの回答

  • App Engineのファイアウォールによりアクセス制限されており、そこで対象IPアドレスを許可してください。

回答を受けての調査

  • App Engineの画面を開いたところ、App Engineの設定にFW設定があり、そこでIPアドレス制限がされていました

原因

  • App Engineのサービス自体でFW機能があり、そこでIP制限しており、CloudArmorでも制限しており、2箇所でIPアドレス制限をしていた。

対応

Ingress設定

すべてのトラフィックを許可する設定になっていたが、LB経由ないし内部トラフィックのみに制限した(App Engine側で制御するなら変えなくてもよかったと思います)。

ファイアウォールルール設定

App Engineのファイアウォールでの制限はせずに基本的にすべて許可とした。

App Engineが関連するIP制限まとめ

  • CloudArmor
    • 今やLBにぶら下がる、CloudStorage、CDNに対しても制限可能であり、App Engine、Cloud Run、Cloud Functionsなど(サーバーレス ネットワーク エンドポイント グループ)に対してWAF機能を提供することができる
  • App EngineのINGRESS設定
    • ここはIP制限とは少し違うがパブリックで受けるのかLB経由のみ受けるのか、内部通信のみ受けるのか、を選択することが可能
  • App Engineのファイアウォール
    • App Engineに対するアクセス制限をIPアドレスですることが可能

感想

AWSのEC2でいうと、ただOS上のfirewalldで制限してて、インスタンスのSGでIP許可しても駄目だったみたいな感じと思うと情けないです。。
近々App EngineをやめてCloudStorageに対してCloudArmorをかけるかたちに変えたいと思います。

元記事はこちら

[GoogleCloud] App Engineのアクセス制限について
著者:@hirosait


アイレットなら、Google Cloud で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業すべてを一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。Google Cloud プレミアサービスパートナーであるアイレットに、ぜひお任せください。

Google Cloud サーバー監視・運用サービスページ:
https://cloudpack.jp/service/gcp/maintenance.html

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://www.iret.co.jp/contact/service/form/