🎼

Azure Container Apps の送信トラフィックを Azure Firewall で保護する

2023/09/29に公開

今回見つけた下記の Microsoft ブログ記事。実は Azure Container Apps を使うかもしれない状況でもあり、すごーく興味があったので試してみました。

元となるネタは、下記の GitHub にて公開されているとのことです。

環境

  • Windows 10
  • WSL2 (Ubuntu 20.04)
  • Azure CLI (2.53.0)

構築の流れ

大まかな流れを列挙していきますと、下記の通りとなっています。

  • 各種変数の設定
  • リソースグループの作成
  • VNet の作成
    • サブネットの作成
    • FirewallSubnet の作成
  • パブリック IP の作成
  • Azure Firewall の作成と IP 設定
  • Firewall ルールの作成
    • デモ用のアクセス経路ルールの作成
  • ルートテーブルの作成と ACA サブネットへの適用
  • ACA コンテナーアプリ環境の作成
    • デモ用のコンテナーアプリの作成
  • 動作確認

流れを押さえたうえでコマンド群を読んでいくと、大変分かりやすいかと🤗

今回のキモは、Azure Firewall を作成し、Container Apps Environment は Azure Firewall を経由するようにルーティングした VNet と統合するように作成している点ですね。こうすることで、Container Apps からの送信トラフィックを Azure Firewall 経由にするように構成しています。

構築

GitHub の手順を参考に、デプロイ先のリージョン (location) を東日本 (japaneast) にしましたが、特に詰まるところもなく構築することができました。詰まったところ等があれば残したかったですが… 残念ですw

所要時間は概ね 30 分くらいでしょうか。なお、最初に「az login」でログインしておくことをお忘れなく。

動作確認

今回のデモでは、「icanhazip.com」および「www.microsoft.com」への HTTP / HTTPS アクセスで試験しています。

Azure Firewall ルールの設定上、「http://icanhazip.com」および「https://icanhazip.com」のみ通信可能であれば想定通り。

上記の通り、想定通りの結果となりました。

ブログ記事のように HTTPS だけを許可したい場合は、下記の Firewall ルールを作成する箇所の 'http=80' をカットすれば良さそうですね。

# Just for demo purposes we'll also add icanhazip.com
az network firewall application-rule create \
-g $RG \
-f $FIREWALLNAME \
--collection-name 'demo' \
-n 'icanhazip' \
--source-addresses '*' \
--protocols 'http=80' 'https=443' \
--target-fqdns icanhazip.com \
--action allow --priority 202

まとめ

Azure Container Apps は周りでも少し聞くようになってきましたので、是非おさえておきたいサービス。

Azure Firewall を経由させることで、通信のガバナンス・監視などもできるのは嬉しいですね!

Discussion