Azure Function AppのFTP設定について
このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、Azure CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Azure Function AppでFTPS以外が許可されている場合のセキュリティリスクと、安全なデプロイメント方法への移行手順を詳しく解説します。
ポリシーの説明
Azure Function Appは、サーバーレスコンピューティングサービスとして、イベント駆動型のコード実行を提供します。デプロイメント方法としてFTP/FTPSをサポートしていますが、暗号化されていないFTPプロトコルの使用は、特にサーバーレス環境において深刻なセキュリティリスクをもたらします。Function Appは自動的にスケールし、複数のインスタンスで実行されるという特性上、一つのセキュリティ侵害が環境全体に波及する可能性があります。特に消費型プランでは、スケールアウトがゼロから数百インスタンスまで瞬時に発生する可能性があり、侵害されたコードが大規模に拡散するリスクがあります。本ポリシーは、FTPを無効化またはFTPSに制限し、Function Appのデプロイメントプロセスのセキュリティを確保することを目的としています。
修復方法
Azureポータルでの修復手順
Azureポータルを使用したFunction AppのFTP設定変更:
- Azure Portalへのアクセス
- Azure Portal (https://portal.azure.com) にログイン
- 適切な権限(Contributor以上)を持つアカウントを使用
- Function Appリソースの選択
- 左側のナビゲーションから「Function App」を選択
- 対象のFunction Appインスタンスをクリック
- 構成設定への移動
- Function App管理ブレードの「設定」セクションから「構成」を選択
- 全般設定タブの選択
- 「構成」ページで「全般設定」タブをクリック
- FTP状態の設定変更

- 「プラットフォーム設定」セクションまでスクロール
- 「FTPの状態」ドロップダウンから以下のいずれかを選択:
- 無効(
Disabled):FTPとFTPSの両方を完全に無効化(最もセキュア、推奨) - FTPS のみ(
FtpsOnly):TLS 1.2以上で暗号化されたFTPSのみを許可
- 無効(
- 設定の保存と適用
- ページ上部の「保存」ボタンをクリック
- 確認ダイアログで「続行」を選択
- Function Appが再起動されることを確認
- 設定の検証
- 保存完了後、FTP状態が正しく設定されていることを確認
- すべてのデプロイメントスロットで同様の設定を適用
最後に
Azure Function AppにおけるFTPの使用は、サーバーレス環境特有のリスクと相まって深刻なセキュリティ脅威となります。この記事で紹介した手順により、FTPを無効化またはFTPSに制限し、より安全なデプロイメント方法を採用することで、Function Appのセキュリティを大幅に向上させることができます。
重要なポイント:
- Function AppではFTPを完全に無効化することを強く推奨
- Azure Functions Core ToolsやCI/CDパイプラインなどの代替手法を採用
- マネージドIDとKey Vaultを活用したシークレット管理
- 継続的な監視とセキュリティ評価の実施
この問題の検出と継続的な管理は、弊社が提供するSecurifyのCSPM機能で自動化できます。サーバーレス環境のセキュリティポスチャーを改善し、コンプライアンス要件を満たしながら運用効率を向上させる製品となっていますので、ご興味がある方はお問い合わせください。
最後までお読みいただきありがとうございました。この記事が皆さまのAzure Function App環境のセキュリティ強化に役立てば幸いです。