次の方法で共有


カスタム ポリシーでモデル デプロイを制御する

Azure AI Foundry (旧称 Azure AI Services) と Azure OpenAI のモデルを Azure AI Foundry と共に使用する場合は、カスタム ポリシーを使用して、ユーザーが使用できる デプロイ オプションの種類 や、ユーザーがデプロイできる特定のモデルを制御することが必要になる場合があります。 この記事では、Azure ポリシーを使用して、モデルのデプロイを制御するポリシーを作成する方法について説明します。

ヒント

この記事の手順は、Foundry プロジェクトとハブ ベースのプロジェクトの両方に適用されます。

[前提条件]

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

カスタム ポリシーの作成

次の手順に従って、サンプルのカスタム ポリシーを作成し、割り当てて、モデルのデプロイを制御します。

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

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

    Azure Policies で新しいポリシー定義を作成する方法を示すスクリーンショット。

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

    • [定義の場所]: ポリシー定義を格納するサブスクリプションまたは管理グループを選びます。
    • [名前]: ポリシー定義の一意の名前を入力します。 たとえば、Custom allowed Azure AI services and Azure OpenAI models のようにします。
    • [説明]: ポリシー定義の説明を入力します。
    • [カテゴリ]: 新しいカテゴリを作成するか、既存のものを使用できます。 たとえば、"AI モデル ガバナンス" などです。
  4. [ポリシー ルール] に、ポリシー ルールの詳細を JSON 形式で入力します。 自分のケースにより適したシナリオを選択してください。

    次のポリシーを使用すると、デプロイに使用できる特定のモデルとバージョンを制御できます。 このポリシーは、ニーズに応じてさまざまなレベルで適用できます。

    {
          "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."
              }
            }
        }
    }
    

    ヒント

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

  5. [保存] を選んで、ポリシー定義を保存します。 保存すると、ポリシー定義の概要ページが表示されます。

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

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

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

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

  8. 次のようにポリシーのパラメーターを構成します (存在する場合)。

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

    ヒント

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

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

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

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

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

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

コンプライアンスの監視

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

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

  2. Azure Policy ダッシュボードの左側にある [準拠] を選びます。 各ポリシー割り当てが、準拠の状態と共に一覧表示されます。 詳細を表示するには、ポリシー割り当てを選択します。 次の例は、グローバル標準型のデプロイをブロックするポリシーのコンプライアンス レポートを示しています。

    グローバル標準デプロイ SKU をブロックするポリシーのポリシー コンプライアンス レポートの例を示すスクリーンショット。

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

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

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

ベスト プラクティス

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