Azure4 択難易度 応用

状況

App Service のアプリから Azure SQL Database に接続できない。アプリのログには「Cannot open server 'sql-prod' requested by the login. Client with IP address '20.x.x.x' is not allowed to access the server.」と出ている。

原因を調べる順番として、最も適切なものは?

  1. A接続文字列のユーザー名とパスワード
  2. BSQL Database を上位の価格レベルに変更する
  3. C接続文字列のサーバー名
  4. Dサーバーのファイアウォール規則に、エラー中の IP からの許可があるか

正答

  1. C → A → D → B
  2. A → C → D → B
  3. B → D → A → C
  4. D → A → C → B

解説

エラーは sql-prod サーバー自身が返しており、送信元の IP が許可されていないと言っている。名前解決とサーバー名は正しく、サーバーまで届いていると分かるので C は後回し。Azure SQL はログインを判定する前にファイアウォールで接続元を確かめるため、ユーザー名とパスワード(A)はまだ判定されておらず、ファイアウォール(D)を直した後に確かめる。価格レベル(B)は接続の可否と関係なく、料金が上がるだけなので最後。直すときに 0.0.0.0〜255.255.255.255 の規則を足すと全世界に開くことになる。「Azure サービスおよびリソースにこのサーバーへのアクセスを許可する」も他の顧客の Azure リソースからの接続まで含むので、アプリの送信 IP だけを許可するか、VNet 統合とプライベートエンドポイントで閉じた経路にする。

参考: learn.microsoft.com

azure-sql-databasefirewallapp-servicetroubleshootinvestigation-order

この問題を含む Azure のテストを制限時間つきで解く

Azureクイズへ