AzureのOpenAIをEnterpriseで利用したいと考えた際に「社内PCからGPTを使いたいが、社内環境からAzureのパブリック(インターネット上)のAPIが利用できない」といった、ネットワーク上の問題が出てくる場合があるかと思います。
Azure OpenAIはAzureならではの機能として、Azure Virtual Network (VNet)経由のプライベートネットワーク接続に限定して利用することができます。
その他にもプライベートネットワーク限定で利用することで、以下の利点が考えられます。
- 外部からのリソースの不正利用を防ぐ
- ファインチューニングしたモデルをインターネットから保護する
今回は以下の構成図で検証します。
環境の構築
Azure OpenAIのデプロイ
リソースのデプロイは以前のこちらのブログを参考にしてください。今回はFine-tuningも試したいので米国中南部のリージョンへデプロイしました。
VnetとVMのデプロイ
今回はBastionを使って検証するので、VNetには下記サブネットを作成しました。
VMは普通にデプロイしました。
Azure OpenAIのネットワークの設定
すべてのネットワークからのアクセスを無効にする
デフォルトのネットワークの設定は「許可するアクセス元」がすべてのネットワークになっているので、こちらを無効にします。
プライベートエンドポイントの設定
次に、プライベートエンドポイントを東日本に作成します。
動作確認
インターネットからの接続
プライベートエンドポイント経由でのアクセスに制限したので、インターネットから接続した際にアクセスが制限されるか挙動を確認します。
Studioへのアクセス
デプロイしたリソースのStudioにアクセスできますが、Fine-tuningのモデル取得エラーが表示されます。
モデルのデプロイ
通常の手順で標準に用意されているモデルのデプロイはできてしまいました。
デプロイ完了後
プレイグラウンド
プレイグラウンドのチャットセッションで質問を送ると「Public access is disabled. Please configure private endpoint.」というメッセージで質問に対する回答は返ってきません。
Fine-tuning
Fine-tuningをする際に学習ファイルのアップロードをする必要がありますが、ファイル管理から学習データのアップロードが出来ませんでした。
VNet内のVMからの接続
インターネット経由でも一部のアクセスは出来ましたが、基本的には制限されていることが確認できたので、VNet内のVMからの挙動を確認します。
Studioへのアクセス
特にエラー無くStudioにアクセスできます。
モデルのデプロイ
インターネットから接続と同様にデプロイできました。
プレイグラウンド
プレイグラウンドのチャットセッションの質問にしっかり回答してくれました。
Fine-tuning
学習ファイルのアップロードが正常にできます。
モデルも正常に作れました。
モデルのデプロイもできます。
インターネットからは今回作ったものが表示されるか
学習データを見ることはできません。
カスタムモデルも見ることはできません。
デプロイしたカスタムモデルは見えてしまいました。
カスタムモデルのデプロイログも見えます。
まとめ
プライベートエンドポイントを設定し、許可するアクセス元で無効を選択しているAzure OpenAIのリソースに対して、インターネット経由ではStudioからモデルのデプロイができたり、ログが見えたりすることが可能ということが分かりました。まとめると以下の通りです。
インターネット | VNet | |
---|---|---|
Studioへのアクセス | アクセス可能だが「微調整されたモデルを取得できませんでした」というエラーが出る | アクセス可能 |
デプロイ | 標準モデルのデプロイは可能。デプロイされたカスタムモデルは表示される | 可能 |
モデルの利用 | 不可 | 可能 |
学習データ | アクセス不可 | アクセス可能 |
カスタムモデルの管理 | アクセス不可 | アクセス可能 |
Studioへのアクセスに関してはAzure ADで認証認可がされているので、リソースに対して権限を持っている人のみがアクセス可能です。
モデルの利用やカスタムモデル/学習データへのアクセスに関しては止められています。
Azure OpenAIのリソースが東日本でもデプロイできるようになるかどうかは現時点では不明ですがm上記方法であれば東日本のVNet経由で利用することは可能です。
ただし、学習データ・モデル・監査のための一時データは、作成したリージョンに暗号化したうえで保存されてしまうので、日本リージョン以外にデータを置くことが出来ない場合は今回の方法は使うことができません。
上田 英治(日本ビジネスシステムズ株式会社)
エンジニアとしてインフラ構築、システム開発やIoT基盤構築等を経験し、現在はクラウドアーキテクトとして先端技術の活用提案や新規サービスの立ち上げを担当。
担当記事一覧