🙇‍♂️

Azure Functionsの全般設定のTips

2022/06/25に公開

はじめに

初投稿です!
社会人3年目になりました一端の基盤エンジニアです。1年目はAWS中心に触ってましたが、2年目から今も引き続きAzureにどっぷりです。ということでAzureを中心に書いていこうと思ってます!
発信していこうかなという気持ちはありつつも、投稿する心理的ハードルが上がって全然投稿しなくなるのもアレなので、なるべく軽い内容をポンポン書けたらいいなぁ。。。

では早速本題に移ります。今回はFunctionsの全般設定に関するTipsを書いていきます。

Functionsの全般設定とは

ポータル上で「構成」→「全般設定」で遷移することができます。

Functions(Windows)
こんな感じで言語のバージョンとかプラットフォームの設定などを変更できるところです。
CISベンチマーク準拠とかいう話になると、FTPSのみ許可やTLS最小バージョン1.2を設定する必要があるので、避けては通れない設定ですね。

OSによる違い

さて、上の画像はWindowsのFunctionsですが、LinuxのFunctionsだと下のようになります。

Functions(Linux)
全般設定がない!?
はい、どうやらLinuxのFunctionsではポータルからの全般設定がサポートされていないようです。
じゃあそもそもこのあたりのパラメータを持っていないのか・・・?
こういうときはARMテンプレートから確認してみます。

Functions(Linux)のARMテンプレート

↓このあたりでちゃんとパラメータ持っていることが分かります。

"scmIpSecurityRestrictionsUseMain": false,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"preWarmedInstanceCount": 0,
"functionAppScaleLimit": 200,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}

そしてポータルからFunctionsを作成すると、デフォルトでhttps通信のみ許可の設定が「オフ」になっていたり、FTPの状態が「すべて許可」になっていたりするので、セキュリティ上変更したほうがよいです。ここは作成時には指定できないパラメータなので作成後に変更する必要があります。
ポータルでポチポチではなくARMテンプレートからのデプロイであれば細かくパラメータ指定できるので、作成時でも指定可能です。

設定変更方法

↓こちらのドキュメントにAzure CLI, PowerShellからの変更方法が載っています。
https://docs.microsoft.com/ja-jp/azure/app-service/deploy-ftp?tabs=portal
PowerShellの場合はこんなコマンドを打てばFTPSを強制する設定に変更できます。

Set-AzWebApp -Name <app-name> -ResourceGroupName <group-name> -FtpsState FtpsOnly

これは「FTPの状態」を変更する場合ですが、https通信のみ許可にする場合は

Set-AzWebApp -Name <app-name> -ResourceGroupName <group-name> -HttpsOnly true

で変更可能ですし、TLSの最小バージョンを1.2にする場合には

Set-AzWebApp -Name <app-name> -ResourceGroupName <group-name> -MinTlsVersion 1.2

で変更可能です。
実際に変更してみたら、ちゃんと反映されていることがテンプレートから確認できました!
ftpsStateFtpsOnlyになってますね。

Functions(Linux)のARMテンプレート(PowerShellにて変更後)

App Serviceは?

App SeriviceについてはLinuxでも全般設定が表示されました。

App Service(Linux)
もちろんCLI, PowerShellでも変更可能なので、設定変更する際はお好きなほうを選べばOKです。
ちなみにCLI, PowerShellのコマンドはFunctionsのときと同じです。

おわりに

今回はFunctionsの全般設定に関するTipsを書きました。
執筆時点(2022/6/25)ではLinuxのFunctionsでポータルから全般設定が表示されませんが、今後のアップデートでサポートされるかもなので期待です!

Discussion