Azure Functionsの全般設定のTips
はじめに
初投稿です!
社会人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からの変更方法が載っています。
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
で変更可能です。
実際に変更してみたら、ちゃんと反映されていることがテンプレートから確認できました!
ftpsState
がFtpsOnly
になってますね。
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