次の方法で共有


Azure AI Studio でカスタム ポリシーを使用して AI モデルのデプロイを制御する

Azure AI サービスと Azure OpenAI のモデルを Azure AI Studio で使うとき、カスタム ポリシーを使って、開発者がデプロイできるモデルを制御することが必要になる場合があります。 カスタム Azure ポリシーを使うと、組織固有の要件を満たすポリシー定義を作成できます。 この記事では、モデルのデプロイを制御するカスタム ポリシーの例を作成して割り当てる方法を示します。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • ポリシーを作成して割り当てるためのアクセス許可。 ポリシーを作成して割り当てるには、Azure サブスクリプションまたはリソース グループ レベルの所有者またはリソース ポリシー共同作成者である必要があります。
  • Azure Policy に関する知識。 詳細については、「Azure Policy とは」を参照してください。

カスタム ポリシーの作成

  1. Azure portal で、ページの左側にある [ポリシー] を選択します。 また、ページ上部にある検索バーで「ポリシー」を検索することもできます。

  2. Azure Policy ダッシュボードの左側で [作成][定義] の順に選んだ後、ページの上部にある [+ ポリシー定義] を選びます。

  3. [ポリシー定義] フォームで、次の値を使います。

    • [定義の場所]: ポリシー定義を格納するサブスクリプションまたは管理グループを選びます。

    • [名前]: ポリシー定義の一意の名前を入力します。 たとえば、Custom allowed Azure AI services and Azure OpenAI models のようにします。

    • [説明]: ポリシー定義の説明を入力します。

    • [カテゴリ]: 新しいカテゴリを作成するか、既存のものを使用できます。 たとえば、"AI モデル ガバナンス" などです。

    • [ポリシー ルール]: ポリシー ルールを JSON 形式で入力します。 次の例で示すポリシー ルールは、Azure AI サービスと Azure OpenAI の特定のモデルのデプロイを許可します。

      ヒント

      Azure AI サービスは、もとは Azure Cognitive Services という名前でした。 このカスタム ポリシーで示されている値 Microsoft.CognitiveServices のように、この名前は Azure で内部的にまだ使われています。 Azure OpenAI は Azure AI サービスの一部であるため、このポリシーは Azure OpenAI のモデルにも適用されます。

      {
            "mode": "All",
            "policyRule": {
              "if": {
                "allOf": [
                  {
                    "field": "type",
                    "equals": "Microsoft.CognitiveServices/accounts/deployments"
                  },
                  {
                    "not": {
                      "value": "[concat(field('Microsoft.CognitiveServices/accounts/deployments/model.name'), ',', field('Microsoft.CognitiveServices/accounts/deployments/model.version'))]",
                      "in": "[parameters('allowedModels')]"
                    }
                  }
                ]
              },
              "then": {
                "effect": "deny"
              }
            },
            "parameters": {
              "allowedModels": {
                "type": "Array",
                "metadata": {
                  "displayName": "Allowed AI models",
                  "description": "The list of allowed models to be deployed."
                }
              }
            }
      }
      
  4. [保存] を選んで、ポリシー定義を保存します。 保存すると、ポリシー定義の概要ページが表示されます。

  5. ポリシー定義の概要ページで、[ポリシーの割り当て] を選んでポリシー定義を割り当てます。

  6. [ポリシーの割り当て] ページの [基本] タブでは、次の値を使います。

    • [スコープ]: ポリシーを割り当てるスコープを選びます。 スコープは、管理グループ、サブスクリプション、またはリソース グループにすることができます。
    • [ポリシー定義]: このフィールドには、前に作成したポリシー定義のタイトルが既に設定されています。
    • [割り当て名]: 割り当ての一意の名前を入力します。
    • [ポリシーの適用]: [ポリシーの適用] フィールドが [有効] に設定されていることを確認します。 有効になっていない場合、ポリシーは適用されません。

    ページの下部にある [次へ] を選ぶか、ページの上部にある [パラメーター] タブを選びます。

  7. [パラメーター] タブでは、[許可された AI モデル] に許可するモデルの一覧を設定します。 一覧には、モデル名と承認されるバージョンのコンマ区切りの一覧を、角かっこで囲んだものを設定する必要があります。 たとえば、["gpt-4,0613", "gpt-35-turbo,0613"] のようにします。

    ヒント

    モデル名とそのバージョンは、Azure AI Studio のモデル カタログで確認できます。 モデルを選んで詳細を表示してから、タイトルに含まれるモデル名とそのバージョンをコピーします。

  8. 必要に応じて、ページの上部にある [非準拠メッセージ] タブを選んで、準拠していない場合のカスタム メッセージを設定します。

  9. [確認と作成] タブを選択し、ポリシーの割り当てが正しいことを確認します。 準備ができたら、[作成] を選択してポリシーを割り当てます。

  10. ポリシーが適用されていることを開発者に通知します。 許可されるモデルの一覧にないモデルをデプロイしようとすると、エラー メッセージが表示されます。

ポリシーの割り当てを確認する

ポリシーが割り当てられていることを確認するには、Azure portal で [ポリシー] に移動し、[作成] の下にある [割り当て] を選びます。 ポリシーの一覧が表示されます。

コンプライアンスの監視

ポリシーへの準拠の監視は、次の手順に従って行います。

  1. Azure portal で、ページの左側にある [ポリシー] を選択します。 また、ページ上部にある検索バーで「ポリシー」を検索することもできます。
  2. Azure Policy ダッシュボードの左側にある [準拠] を選びます。 各ポリシー割り当てが、準拠の状態と共に一覧表示されます。 詳細を表示するには、ポリシー割り当てを選択します。

ポリシー割り当てを更新する

既存のポリシー割り当てを新しいモデルで更新するには、次の手順に従って行います。

  1. Azure portal で、ページの左側にある [ポリシー] を選択します。 また、ページ上部にある検索バーで「ポリシー」を検索することもできます。
  2. Azure Policy ダッシュボードの左側にある [割り当て] を選択し、既存のポリシー割り当てを見つけます。 割り当ての横にある省略記号 (...) を選択し、[割り当ての編集] を選択します。
  3. [パラメーター] タブで、[許可されたモデル] パラメーターを新しいモデルで更新します。
  4. [確認と保存] タブで、[保存] を選択し、ポリシー割り当てを更新します。

ベスト プラクティス

  • モデル名の取得: Azure AI Studio のモデル カタログを使い、モデルを選んで詳細を表示します。 タイトルに含まれるモデル名をポリシーで使います。
  • 詳細なスコープ設定: 適切なスコープでポリシーを割り当てて、制御と柔軟性のバランスを取ります。 たとえば、サブスクリプション内のすべてのリソースを制御するにはサブスクリプション レベルで適用し、特定のグループ内のリソースを制御するにはリソース グループ レベルで適用します。
  • ポリシーの名前付け: ポリシーの目的を識別しやすくするために、ポリシー割り当てに一貫した名前付け規則を使用します。 名前には目的やスコープなどの情報を含めます。
  • 文書化: 監査のために、ポリシーの割り当てと構成の記録を保持します。 時間の経過に従ってポリシーに行われた変更を文書化します。
  • 定期的なレビュー: ポリシーの割り当てを定期的に見直して、組織の要件に準拠していることを確認します。
  • テスト: ポリシーを運用リソースに適用する前に、それらを非運用環境でテストします。
  • コミュニケーション: 適用されているポリシーを開発者が認識し、自分の仕事に対する影響について理解していることを確認します。