Azure上での安全なAI開発
最近ではチャットボットやデータ分析などのAI-agentアプリ開発がトレンドですが、プラットフォームエンジニアリングの観点でも、安全なAI開発のプラットフォーム提供は必要不可欠になってくるでしょう。
そこで突然ですが、Azure上での安全なAI開発について考察してみました。
AI開発の構成
設計のポイント
項目 | 内容 | 備考 |
---|---|---|
パブリックアクセスのネットワーク制限 | ・各AIサービスおよびStorage accountとACRはAzure FirewallのパブリックIPからのみ、アクセス許可する ・APIMのIPポリシーで、 Azure FirewallのパブリックIPからのみ、アクセス許可する ・AIhubはパブリックアクセスを無効(プライベートエンドポイントでのみアクセス可) |
・AIhubはIPアドレス制限には未対応(2025/3現在) ・ACRについてプレミアムプランが必要 |
認証方法 | ・Storage accountとACRはEntra ID認証 ・各AIサービスとAPIMはAPIキーおよびサブスクリプションキー |
各AIサービスの認証方法をEntra IDにできるが、APIMの認証方法と同じにする |
APIM | ワークスペース機能で開発チームごとにapi開発を分離 | APIMPremiumプランが必要 |
AI開発構成のテンプレート範囲
AI開発のプラットフォームは、テンプレートとして提供する必要があります。テンプレート範囲は次の通りです。
- 事前払い出し
- APIMのワークスペース
- DevBox
上図のAPIについて、事前に払い出したAPIMのワークスペースに関連付けて設定投入するイメージです。
また、プラットフォーム設計によっては、いくつかのリソースを全開発チーム共通とすることもよいと思います。
- 共通リソース例
- Log analytics workspace(LAW)
→運用効率やSentinel(SIEM)導入の観点からもログはなるべく集約したほうがよい - ACR
→開発チーム間でのアプリ開発の知見共有の観点で、共通化もよい。しかし、コンテナイメージ内に直接機密情報を混入させない等、セキュアコーディングがより必要。
- Log analytics workspace(LAW)
補足:AI開発のライフサイクルに合わせたProject(AI hub)の活用
AI開発のライフサイクル(dev→stage→prodなど)に合わせて、AI hubのprojectを活用すると、より効率的なAI開発が可能かと思います。
projectを作成すると、自動的にAI hubから各AIサービスの引継ぎとコンテナが作成されます。
マネージドIDの作成や各権限付与は別途行う必要があります。