10.7K Views
July 11, 23
スライド概要
Azure OpenAI Service は PaaS なので、エンドポイントがパブリックにさらされています。
「API キー認証」または「Azure AD 認証」が構成できるが、念の為エンドポイントはプライベートにしておきたいところです。
企業利用ならエンドポイントのプライベート化は必須なので、この際試しておきたいという意図もあります。
SIerの人。Xamarin.iOS が好き。Azure と戯れるのが仕事。Visual Studio for Mac が Win版と同等になる日を切望。Microsoft MVP Developer Technologies 2017-
プライベート DNS ゾーン 問い合わせ abcde.openai.azure.com VNet DNSレコード abcde.openai.azure.com 応答 10.0.10.4 10.0.10.4 PaaS Private Endpoint 10.0.10.4 Azure OpenAI Service を プライベートエンドポイントで保護しよう! Azure OpenAI Service Tomohiro Suzuki @hiro128_777 2023-7-11 C# Tokyo
自己紹介 鈴木友宏 M365、Azure、Power Platform、.NET などの Microsoft 製品を用いたシステムの構築をしています。 Twitter:@hiro128_777 blog:https://hiro128.hatenablog.jp/ 2
News!!Azure OpenAI 東日本リージョン、来ました! 3
Azure OpenAI Service を C# で叩いて遊ぼうと思ったが… • Azure OpenAI Service は PaaS なので、エンドポイントがパブリックにさらされている • 「API キー認証」または「Azure AD 認証」が構成できるが、念の為エンドポイントはプライベー トにしておきたい • 企業利用ならエンドポイントのプライベート化は必須なので、この際試しておきたい 基本ありえないが、万が一、知らないうちに API をガンガン叩かれると課金が怖い… C# で色々叩いて遊ぶ前に、まず、エンドポイントをプライベートにしておこう! 4
デフォルトの Azure OpenAI Service のデプロイ • OpenAI Service のエンドポイントはパブリック IP である Azure AD認証 API Key 認証 www Azure OpenAI Service 5
プライベートエンドポイントとは プライベートエンドポイントは「プライベート IP で Azure PaaS に接続する」機能 プライベートDNSゾーンを構成することで、クライアントは接続先の FQDN に対する名前解決の結果として、プライ ベート エンドポイントの IP を受け取る。(通常、PaaS は名前解決の応答としてパブリック IP を受け取る) プライベート DNS ゾーン 問い合わせ abcde.openai.azure.com VNet DNSレコード abcde.openai.azure.com 応答 10.0.10.4 Private Endpoint 10.0.10.4 10.0.10.4 PaaS Azure OpenAI Service 6
構成例① Bastion+仮想マシンから使う ChatGPT プレイグラウンドを使いたい場合 • VNet内に仮想マシンを配置し、 Bastion でアクセス • OpenAI Service はプライベート IP でのアクセスとなり、パブリックにさらされない Azure ポータル 経由のアクセス VNet 10.0.0.0/16 Subnet 10.0.1.0/24 www Bastion Subnet 10.0.2.0/24 Subnet 10.0.10.0/24 Virtual Machine Private Endpoint Azure OpenAI Service 使わない時は「停止」することで OpenAI へのアクセスはできない 「割り当て解除」すれば料金もかからない 7
構成例② App Service のフロントエンドから使う なるべくお金をかけず、ChatGPT プレイグラウンドを使いたい場合 • App Service を VNet 統合で立てる • OpenAI Service はプライベート IP でのアクセスとなり、パブリックにさらされない VNet 10.0.0.0/16 Azure AD認証 各種IDプロバイダー認証 Subnet(送信) 10.0.1.0/24 Subnet 10.0.10.0/24 www App Service Region VNet Integration Private Endpoint Azure OpenAI Service 使わない時は「停止」することで OpenAI へのアクセスはできない (停止しても料金はかかる) 8
構成例③ API Management を通して使う 開発などでクライアントから API を叩きたい場合 • API Management を通して OpenAI の API を叩く • OpenAI Service はプライベート IP でのアクセスとなり、パブリックにさらされない VNet 10.0.0.0/16 Azure AD, OAuth2.0等 Subnet(送信) 10.0.1.0/24 Subnet 10.0.10.0/24 www API Management Private Endpoint Azure OpenAI Service 未使用時は IP 制限や24時間1回 など非常に厳しい流量制限をかけ ることで、まともに使えないようにする 9
終わりに Azure OpenAI に限らず、Azure の PaaS をパブリックにさらしたくないときは、プ ライベートエンドポイントを構成します。 どの PaaS を使う時も基本的な構成は同じですので、覚えておくと便利です。 10
ご清聴ありがとうございました