2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure OpenAIからセキュアにAzureAISearchにアクセスする

Posted at

はじめに

  • 以前投稿した、Azure OpenAIのデータ ソース機能を検証した(APIバージョン. 2024-02-01) では、Azure AI Searchにはアクセス制限をかけていなかったため、AI SearchのAPIKeyが漏れた場合に、不正アクセスがなされるリスクがあった
  • 今回、APIKeyを使わずに、「システム割り当てマネージドID」を使った認証に切り替えることで、OpenAI以外からのアクセスを完全に防御し、リスクを排除した
  • 備忘録として記事に残しておく。APIバージョンは前回と同じ、2024-02-01を使用している

実施前
image.png

実施後
image.png

手順

OpenAIの「システム割り当てマネージドID」を有効化する

  • OpenAIのリソースを開き、Identity > System assignedと進み、初期値はOFFになっているので、ONにする

image.png

Azure AI SearchでマネージドID認証を有効化する

  • AI Searchのリソースを開き、Keysより、「API Access control」を、「Role-based access control」か「Both」にする
    • 従来のAPIKeyでのアクセス手段も残しておく必要のある場合はBothにしておこう。

image.png

Azure AI SearchのIAMで、OpenAIにアクセス権を付与する

  • Azure AI SearchのIAMを開き、以下の2つのRoleを、OpenAIのマネージドIDに付与する
    • Search Service Contributor
    • Search Index Data Reader

「Managed Identity」を選択し、メンバーに該当のOpenAIを選択しよう
image.png

Azure AI SearchのFirewallを有効化し、パブリックアクセスを禁止する

  • Azure AI Searchを開き、Networking > Firewalls and virtual networks より、「Public network access」を「Disabled」にし、Exceptionsにチェックを入れる

image.png

参考:マネージドID認証の場合のリクエストBody

  • 以下のようになる。
{
    "messages": [
        {
            "role": "user",
            "content": "ペット連れだけど大丈夫?"
        }
    ],
    "data_sources": [
        {
            "type": "azure_search",
            "parameters": {
                "endpoint": "https://{AI Searchサブドメイン}.search.windows.net",
                "index_name": "{インデックス名}",
                "authentication": {
                    "type": "system_assigned_managed_identity"
                }
            }
        }
    ],
    "max_tokens": 200,
    "stream": false
}
  • 以前のAPI Keyの場合(↓)は、キーをBodyに埋め込んでいたが、それも不要になった
                "authentication": {
                    "type": "api_key",
                    "key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                },

ハマりどころ

  • Azure AI Searchは、設定変更後、反映までに数分ディレイがあるので、それも考慮して確認すること
  • 設定がうまくいかずエラーになる場合がある。以下を参考にチェックしよう。
    • 400エラーの場合は、権限(RBACやIAM)まわりに問題
    • 403エラーの場合は、ネットワークアクセス制限まわりに問題

リファレンス

2
1
0

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
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?