FIXER cloud.config Tech Blog
Azure Cognitive Services for Language/Cognitive Searchをプライベート接続に制限する
2023年02月15日 10時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Azure Cognitive Services for LanguageとAzure Cognitive Searchをプライベートに接続してみやう」を再編集したものです。
はじめに
こんにちは。(おそらく)1年ぶりにブログを書きます。酒井です。
最近縁あってAzure Cognitive Services for Language(以下、Language)とAzure Cognitive Search(以下、Search)を触っております。
聡明な読者の皆様なら既にお気づきかと思います。そうです、QnA Maker(以下、QnA)後継サービス(どちらかというと機能?)です。
残念ながら、QnAは2025年3月31日を持って廃止されてしまいます。
こやつらは、デフォルトでパブリックアクセスが有効になっており、すべてのネットワークからアクセスできてしまいます。
はい、ではこちらをご覧ください。
と言いたいところですが、ほんのちょっっっっっとだけ分かりづらく、詰まってしまいがちな部分なので備忘録として残しておきます。
前提
予めLanguageのリソースを作成して、カスタム質問応答機能を有効にしておいてください(カスタム質問応答を有効にするタイミングで検索のリソースも一緒に作ることができます)。
このようになってたらOKです。
(ここから先は動作確認用です。)
また、Language Studio で適切なナレッジベースを作成してデプロイしてください。
方法はこちらの記事が大変参考になると思います。
【第2回】Azure Cognitive Services for Language で簡単テキスト分析!~質問応答を使ってみる編~
それでも難しい場合は、千尋の谷に落とされたと思って這い上がってみましょう。
手順
0. 試しにAPIを叩いてみる
正しく、ちゃんとAPIが叩けるか確認してみましょう。
LanguageはQuestion Answering - Get Answersを。
Searchはインデックスの一覧表示 (Azure Cognitive Search REST API)を叩いてみましょう。
Languageはこのようなレスポンスが返ってきます。
Searchはこのようなレスポンスが返ってきます。
ちなみに、APIキーをヘッダーに忘れると、このようになります。
Language
Search
確認できましたね。APIキーはAzure Portalで確認できるので、探してみてください。
それでは、設定していきましょう。
1. LanguageリソースにSearchリソースの「共同作成者」のロールを割り振る
まず、Languageに紐づいたSearchリソースのアクセス制御(IAM)を開きます。
[+ 追加] > ロールの割り当ての追加と進みます。
あとは流れで割り当ててください。
このようになっていたらOKです。次いきましょ。
2. Searchリソースのパブリックアクセスを無効化する
お次はそのままネットワークを開きます。
無効をクリックするとこのようなダイアログが出てくるのでOKを押してください。
ちゃんとしばらく時間がかかるので、しばらく待ちます。
(公式ドキュメントによると最大30分かかることがあるとかなんとか)
完了したらこのようになります。
これでSearchのパブリックアクセスが無効化できました。次いきましょ。
3. Languageリソースにアクセス制限を入れる
いよいよ大詰めです。ひとつ前の手順とは打って変わって、今度はLanguageのリソースを開きます。
ネットワークを開き、選択したネットワークとプライベートエンドポイントを選びます。
するとこのようになるので、お好きな仮想ネットワークを選ぶなりなんなりしてください。
Saveを押したらぼちぼち待ちます。
ちゃんと更新されたらOKです。
そうすると、あらびっくり。Searchリソースにプライベートエンドポイントが生えているではありませんか。良かったですね。
4. 制限がかかっていることを確認する
最後に動作確認してみましょう。一番最初と同じようにAPIを叩いてみます。
Languageは同じように叩けますね。
しかし、Searchはタイムアウトするようになりました。ちゃんと制限がかかってますね。すばらしい。
ちなみに、Languageを別のIPから叩くと、ちゃんとブロックしてくれます。すばらしい。
これでLanguageとSearchがプライベートに接続され、SearchはLanguageからのみアクセスできるようになりました。また、Languageも特定のIPからのみアクセスできるようになりました。
実際にアプリにLanguageを受け取った場合は、特定の仮想ネットワークからのアクセスを許可して使うことになると思います。
えーそれでは良い感じになったので、あとはよしなにやってください。
参考リンク
・QnA Maker とは
・ネットワーク分離とプライベートエンドポイント
・【第2回】Azure Cognitive Services for Language で簡単テキスト分析!~質問応答を使ってみる編~
・Question Answering - Get Answers
・インデックスの一覧表示 (Azure Cognitive Search REST API)
酒井凌大/FIXER
猫とRubyが好きです。 最近.NETが好きになりました。
[転載元]
Azure Cognitive Services for Language と Azure Cognitive Search をプライベートに接続してみやう
この連載の記事
-
TECH
メタバースのメリットは? 実際の活用事例から考えてみる -
TECH
法人向け「Microsoft Entra ID P2ライセンス」を個人で購入する方法 -
TECH
環境ごとに異なるTerraformのバックエンド設定を効率化、override.tfの使い方 -
TECH
Azure FunctionsとAzureのサービスを連携させる方法 -
TECH
PlaywrightをAzure Functionsにデプロイして動かす方法 -
TECH
Windows Admin Centerとは? ― 2020年代の新しい運用管理のカタチ -
TECH
Azureの管理コスト削減! リソースのタグ付けを自動化しよう -
TECH
Logic Appsでリソースのサブスクリプションを移動させる方法+注意点 -
TECH
生成AIで大注目のOpen InterpreterとAzure CLIを使ってリソースを自動作成してみた -
TECH
AzureのvCpuクォータ制限解除、爆速に改善されていて草 -
TECH
AzureのApplication Insightsでお手軽にお安く? HTTP監視しよう - この連載の一覧へ