🙆‍♀️

Azure PipelinesからAzure SQL Serverに接続ときのFirewall設定

2022/03/13に公開

Azure Pipelinesとは言ってもMicrosoft hosted agentの話です。
https://docs.microsoft.com/ja-jp/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml

Azure SQL Serverの設定を見てたら Allow Azure services and resources to access this server という項目があったのでこれを有効にしてみたらできた。

そもそもAllow Azure services and resources to access this serverってどんな設定なんだろう?
https://docs.microsoft.com/en-us/azure/azure-sql/database/firewall-configure#connections-from-inside-azure

ふーん・・と見てたんだけど、以下の文が気になった

Switching the setting to ON creates an inbound firewall rule for IP 0.0.0.0 - 0.0.0.0 named AllowAllWindowsAzureIps.

あれ?これはAllow Allな設定なんじゃないのかな?
確認してみたらAllowAllWindowsAzureIpsで0.0.0.0が設定されてた。

これは・・と思ってClient IP addressを設定せず自分の端末からアクセスをしてみたら・・・接続できず。とりあえず全てのIPアドレスからの許可ではない。
設定名通りAzureのサービスやリソースだけから許可なんだろう。

一応調べてみたら、以下の記事を見つけた。多分ここに書いてあるとおりAllow Azure services and resources to access this serverを有効にしたらAzureのサービス・リソースからは許可、それ以外はClient IP addressを設定する必要があるんだろう。
https://techcommunity.microsoft.com/t5/azure-database-support-blog/lesson-learned-126-deny-public-network-access-allow-azure/ba-p/1244037

Machines/Services running in Azure Environment will be able to connect.For Azure outside connections you need to specify the public IP.

ちなみにこの記事にも書いてあるけど、Deny Public Network Accessを有効にしたら、多分接続できなくなる。(private linkが必要

  • Azure PipelinesからAzure SQL Serverに接続するためには、FirewallのAllow Azure services and resources to access this serverを有効にする
  • AllowAllWindowsAzureIpsという名前で0.0.0.0が設定されるが、設定名通りAzureのサービス・リソースからの接続だけを許可する制限になっている

Discussion