LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

Cognitive Services のエンドポイントへのアクセス制限 ~ ファイアウォール機能を試す

Cognitive Services の各サービスを Web API として利用するためにはサブスクリプションキーが必要、とは言っても、自分が所有しているエンドポイント(Web API リクエスト先 URL) に誰からでもアクセスされるのは気になります。
一番単純な方法として、Cognitive Services のエンドポイントにファイアウォールを設定し、Azure Virtual Network で設定する IP アドレス、または Private Endpoint 接続 (Azure の他のサービスとの接続) のみからのアクセスに制限することが可能です。

今回はこのファイアウォール機能を有効にして、ひとまず指定する IP アドレスのみアクセス可能にする手順を紹介します。
※ Face API を例としていますが、他の Cognitive Services のサービスでも手順は同じです。

Azure Portal からネットワーク設定

利用している Cognitive Services のサービスを Azure Portal で表示します。
左バナーから [ネットワーク] を選択します。

Firewall and virtual networks タブの内容を編集していきます。
- 許可するアクセス先 : 選択したネットワークとプライベートエンドポイント を選択します。
- ファイアウォール : 現在アクセスしているデバイスのグローバルアドレスが表示されますので、クライアントIPアドレス に ☑ (チェック) をつけます。

[Save] をクリックして設定内容を保存します。

20201210_CognitiveServices_Firewall.png

指定した IP アドレスからアクセス

それでは、Face API へのアクセス制限を設定した PC から (=設定した IP アドレスを使って)、Face API に HTTP リクエスト を送信してみます。

送信画像

20201210_CognitiveServices_RegisteredIP.png

これまで通り顔が検出されています。

指定外の IP アドレスからアクセス

今度は IP アドレスを変更して(Wifi再起動など)、同様に HTTP リクエストを送信します。
Access Denied (403) が戻ることが分かります。Virtual Network/Firewall のため、と理由が書かれていますね。(現在の自分の IP アドレスまで記載してくれていますね)

20201210_CognitiveServices_OtherIP.png

ドキュメント

Microsoft Docs > Azure Cognitive Services 仮想ネットワークを構成する

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1