次の方法で共有


Azure Machine Learning の監査と管理

チームが Azure Machine Learning で共同作業を行うときには、リソースを構成および編成するためのさまざまな要件に直面することがあります。 機械学習チームは、コラボレーションのためにワークスペースを編成したり、コンピューティング クラスターのサイズを実際のユース ケースの要件に合わせたりする方法に柔軟性があることを望む場合があります。 これらのシナリオでは、アプリケーション チームが独自のインフラストラクチャを管理できる場合に生産性が向上する可能性があります。

プラットフォーム管理者は、ポリシーを使用して、チームが独自のリソースを管理するためのガードレールを配置できます。 Azure Policy は、リソースの状態を監査および管理するのに役立ちます。 この記事では、Azure Machine Learning に対して監査制御とガバナンス プラクティスをどのように利用できるかについて説明します。

Azure Machine Learning のためのポリシー

Azure Policy は、Azure リソースがポリシーに準拠していることを確認できるガバナンス ツールです。

Azure Policy には、Azure Machine Learning を使用した一般的なシナリオに使用できる一連のポリシーが用意されています。 これらのポリシー定義は、既存のサブスクリプションに割り当てることも、独自のカスタム定義を作成するための基礎として使用することもできます。

次の表は、Azure Machine Learning で割り当てることができる組み込みポリシーをリストしています。 すべての Azure 組み込みポリシーのリストについては、「組み込みのポリシー」を参照してください。

名前
(Azure portal)
説明 効果 Version
(GitHub)
[プレビュー]: Azure Machine Learning のデプロイでは、承認済みのレジストリ モデルのみを使用する必要がある レジストリ モデルのデプロイを制限して、組織内で使用される外部で作成されたモデルを制御します Audit、Deny、Disabled 1.0.0-preview
[プレビュー]: Azure Machine Learning モデル レジストリのデプロイは、許可されたレジストリを除いて制限される 許可されたレジストリに、制限されていないレジストリ モデルのみをデプロイします。 Deny、Disabled 1.0.0-preview
Azure Machine Learning コンピューティング インスタンスでアイドル シャットダウンを行う必要がある。 アイドル シャットダウンをスケジュール設定すると、事前に決定されたアクティビティ期間の後にアイドル状態になっているコンピューティングがシャットダウンされ、コストが削減されます。 Audit、Deny、Disabled 1.0.0
最新のソフトウェア更新プログラムを取得するには、Azure Machine Learning コンピューティング インスタンスを再作成する必要がある Azure Machine Learning コンピューティング インスタンスが利用可能な最新のオペレーティング システムで実行されていることを確実にします。 最新のセキュリティ パッチを適用して実行することで、セキュリティが強化され、脆弱性が低減します。 詳細については、https://aka.ms/azureml-ci-updates/ を参照してください。 [parameters('effects')] 1.0.3
Azure Machine Learning コンピューティングは仮想ネットワーク内に存在する必要がある Azure Virtual Network は、Azure Machine Learning コンピューティングのクラスターおよびインスタンスに強化されたセキュリティと分離を提供することに加えて、サブネットやアクセス制御ポリシーなどのアクセスを詳細に制限するための機能も提供しています。 コンピューティングが仮想ネットワークで構成されていると、パブリックなアドレス指定ができなくなり、仮想ネットワーク内の仮想マシンとアプリケーションからのみアクセスできるようになります。 Audit、Disabled 1.0.1
Azure Machine Learning コンピューティングでローカル認証方法を無効にする必要がある ローカル認証方法を無効にすると、Machine Learning コンピューティングで認証専用の Azure Active Directory ID が必要になり、セキュリティが向上します。 詳細については、https://aka.ms/azure-ml-aad-policy を参照してください。 Audit、Deny、Disabled 2.1.0
Azure Machine Learning ワークスペースは、カスタマー マネージド キーを使用して暗号化する必要がある カスタマー マネージド キーを使用して、Azure Machine Learning ワークスペース データの保存時の暗号化を管理します。 既定では、顧客データはサービス マネージド キーを使用して暗号化されますが、規制コンプライアンス標準を満たすには、一般にカスタマー マネージド キーが必要です。 カスタマー マネージド キーを使用すると、自分が作成して所有する Azure Key Vault キーを使用してデータを暗号化できます。 ローテーションや管理など、キーのライフサイクルを完全に制御し、責任を負うことになります。 詳細については、https://aka.ms/azureml-workspaces-cmk をご覧ください。 Audit、Deny、Disabled 1.1.0
Azure Machine Learning ワークスペースで公衆ネットワーク アクセスを無効にする必要がある 公衆ネットワーク アクセスを無効にすると、Machine Learning ワークスペースがパブリック インターネットに公開されないようになり、セキュリティが向上します。 ワークスペースの公開は、その代わりにプライベート エンドポイントを作成することで制御できます。 詳細情報: https://learn.microsoft.com/azure/machine-learning/how-to-configure-private-link?view=azureml-api-2&tabs=azure-portal Audit、Deny、Disabled 2.0.1
ネットワークの分離の下位互換性をサポートするには、Azure Machine Learning ワークスペースで V1LegacyMode を有効にする必要がある Azure ML では、Azure Resource Manager 上の新しい V2 API プラットフォームへの移行が行われ、V1LegacyMode パラメーターを使用して API プラットフォームのバージョンを制御できます。 V1LegacyMode パラメーターを有効にすると、ワークスペースを V1 と同じネットワーク分離状態に保つことができますが、新しい V2 の機能は使用できません。 AzureML コントロール プレーン データをプライベート ネットワーク内に保持したい場合にのみ V1 レガシ モードを有効にすることをお勧めします。 詳細については、https://aka.ms/V1LegacyMode を参照してください。 Audit、Deny、Disabled 1.0.0
Azure Machine Learning ワークスペースではプライベート リンクを使用する必要がある Azure Private Link を使用すると、接続元または接続先にパブリック IP アドレスを使用せずに、仮想ネットワークを Azure サービスに接続できます。 Private Link プラットフォームでは、Azure のバックボーン ネットワークを介してコンシューマーとサービスの間の接続が処理されます。 プライベート エンドポイントを Azure Machine Learning ワークスペースにマッピングすると、データ漏えいのリスクが軽減されます。 プライベート リンクの詳細については、https://docs.microsoft.com/azure/machine-learning/how-to-configure-private-link を参照してください。 Audit、Disabled 1.0.0
Azure Machine Learning ワークスペースではユーザー割り当てマネージド ID を使用する必要がある ユーザー割り当てマネージド ID を使用して、Azure ML ワークスペースと関連付けられているリソース、Azure Container Registry、KeyVault、Storage、および App Insights へのアクセスを管理します。 既定では、関連付けられているリソースにアクセスするために、システムによって割り当てられたマネージド ID が Azure ML ワークスペースで使用されます。 ユーザー割り当てのマネージド ID を使用すると、Azure リソースとして ID を作成し、その ID のライフサイクルを保守することができます。 詳細については、https://docs.microsoft.com/azure/machine-learning/how-to-use-managed-identities?tabs=python をご覧ください。 Audit、Deny、Disabled 1.0.0
Azure Machine Learning コンピューティングを構成してローカル認証方法を無効にする ローカル認証方法を無効にすると、Machine Learning コンピューティングで認証専用の Azure Active Directory ID が必要になるようにします。 詳細については、https://aka.ms/azure-ml-aad-policy を参照してください。 Modify、Disabled 2.1.0
プライベート DNS ゾーンを使用するように Azure Machine Learning ワークスペースを構成する プライベート DNS ゾーンを使用して、プライベート エンドポイントの DNS 解決をオーバーライドします。 Azure Machine Learning ワークスペースを解決するために、プライベート DNS ゾーンが仮想ネットワークにリンクされています。 詳細については、https://docs.microsoft.com/azure/machine-learning/how-to-network-security-overview を参照してください。 DeployIfNotExists、Disabled 1.1.0
公衆ネットワーク アクセスを無効にするように Azure Machine Learning ワークスペースを構成する パブリック インターネット経由でワークスペースにアクセスできないように、Azure Machine Learning ワークスペースの公衆ネットワーク アクセスを無効にします。 これは、データ漏洩のリスクからワークスペースを保護するために役立ちます。 ワークスペースの公開は、その代わりにプライベート エンドポイントを作成することで制御できます。 詳細情報: https://learn.microsoft.com/azure/machine-learning/how-to-configure-private-link?view=azureml-api-2&tabs=azure-portal Modify、Disabled 1.0.3
プライベート エンドポイントを使用して Azure Machine Learning ワークスペースを構成する プライベート エンドポイントを使用すると、接続元または接続先にパブリック IP アドレスを使用せずに、仮想ネットワークが Azure サービスに接続されます。 プライベート エンドポイントを Azure Machine Learning ワークスペースにマッピングすると、データ漏えいのリスクを軽減できます。 プライベート リンクの詳細については、https://docs.microsoft.com/azure/machine-learning/how-to-configure-private-link を参照してください。 DeployIfNotExists、Disabled 1.0.0
Log Analytics ワークスペースに Azure Machine Learning ワークスペースの診断設定を構成する Azure Machine Learning ワークスペースのリソース ログをストリーミングする診断設定がない Azure Machine Learning ワークスペースが作成または更新されたときには、その診断設定を Log Analytics ワークスペースにデプロイします。 DeployIfNotExists、Disabled 1.0.1
Azure Machine Learning ワークスペースのリソース ログを有効にする必要がある リソース ログにより、セキュリティ インシデントの発生時や、ネットワークがセキュリティ侵害されたときに、調査の目的に使用するアクティビティ証跡を再作成できます。 AuditIfNotExists、Disabled 1.0.1

ポリシーは、サブスクリプション レベルやリソース グループ レベルなど、さまざまなスコープで設定できます。 詳細については、Azure Policy のドキュメントを参照してください。

組み込みポリシーの割り当て

Azure Machine Learning に関連する組み込みのポリシー定義を表示するには、次の手順を使用します。

  1. Azure portalAzure Policy に移動します。
  2. [定義] を選択します。
  3. [種類] で、[ビルトイン] を選択します。 [カテゴリ] で、[機械学習] を選択します。

ここから、ポリシー定義を選択して表示することができます。 定義を表示しているときに、 [割り当て] リンクを使用して、ポリシーを特定のスコープに割り当て、ポリシーのパラメーターを構成することができます。 詳細については、「Azure portal を使用して、ポリシーの割り当てを作成し、準拠していないリソースを特定する」を参照してください。

Azure PowerShellAzure CLI、またはテンプレートを使用してポリシーを割り当てることもできます。

条件付きアクセス ポリシー

Azure Machine Learning ワークスペースにアクセスできるユーザーを制御するには、Microsoft Entra の条件付きアクセスを使用します。 Azure Machine Learning ワークスペースに条件付きアクセスを使用するには、Azure Machine Learning という名前のアプリに条件付きアクセス ポリシーを割り当てる必要があります。 アプリ ID は 0736f41a-0425-bdb5-1563eff02385 です。

ランディング ゾーンを使用してセルフサービスを有効にする

ランディング ゾーンは、規模、ガバナンス、セキュリティ、生産性を考慮したアーキテクチャ パターンです。 データ ランディング ゾーンは、データや分析ワークロードをホストするためにアプリケーション チームが使用する、管理者によって構成される環境です。

ランディング ゾーンの目的は、すべてのインフラストラクチャ構成作業が完了しているようにすることです。 たとえば、セキュリティ制御は組織の標準に準拠して設定され、ネットワーク接続が設定されます。

ランディング ゾーン パターンを使用すると、機械学習チームは独自のリソースをセルフサービスでデプロイし、管理できるようになります。 管理者として Azure ポリシーを使用すると、Azure リソースのコンプライアンスを監査および管理できます。

Azure Machine Learning は、クラウド導入フレームワークのデータ管理および分析のシナリオにおいて、データ ランディング ゾーンと統合されます。 このリファレンス実装では、機械学習ワークロードを Azure Machine Learning に移行するための最適化された環境が提供され、事前に構成されたポリシーが含まれています。

組み込みポリシーを構成する

コンピューティング インスタンスでアイドル シャットダウンを行う必要がある

このポリシーでは、Azure Machine Learning コンピューティング インスタンスでアイドル シャットダウンを行う必要があるかどうかを制御します。 アイドル シャットダウンは、アイドル状態で指定された期間を経過した場合に、コンピューティング インスタンスを自動的に停止します。 このポリシーは、コストを削減し、リソースが不必要に使用されないようにするのに役立ちます。

このポリシーを構成するには、effect パラメーターを AuditDeny、または Disabled に設定します。 Audit に設定すると、アイドル シャットダウンを有効にせずにコンピューティング インスタンスを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ソフトウェア更新プログラムを取得するには、コンピューティング インスタンスを再作成する必要がある

Azure Machine Learning コンピューティング インスタンスを監査して、利用可能な最新のソフトウェア更新プログラムが実行されていることを確認するかどうかを制御します。 このポリシーは、セキュリティとパフォーマンスを維持するために、コンピューティング インスタンスが最新のソフトウェア更新プログラムを実行していることを確認するのに役立ちます。 詳細については、「Azure Machine Learning での脆弱性の管理」を参照してください。

このポリシーを構成するには、effect パラメーターを Audit または Disabled に設定します。 Audit に設定すると、コンピューティングで最新のソフトウェア更新プログラムが実行されていない場合に、アクティビティ ログに警告イベントが作成されます。

コンピューティング クラスターとインスタンスが仮想ネットワーク内にある

仮想ネットワークの背後にあるコンピューティング クラスターとインスタンス リソースの監査を制御します。

このポリシーを構成するには、effect パラメーターを Audit または Disabled に設定します。 Audit に設定すると、仮想ネットワークの背後に構成されていないコンピューティングを作成できます。また、アクティビティ ログに警告イベントが作成されます。

コンピューティングでローカル認証方法を無効にする必要がある

Azure Machine Learning のコンピューティング クラスターまたはインスタンスで、ローカル認証 (SSH) を無効にするかどうかを制御します。

このポリシーを構成するには、effect パラメーターを AuditDeny、または Disabled に設定します。 Audit に設定すると、SSH を有効にしてコンピューティングを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、SSH を無効にしないとコンピューティングを作成できません。 SSH が有効になっているコンピューティングを作成しようとすると、エラーが発生します。 このエラーは、アクティビティ ログにも記録されます。 このエラーの一部としてポリシー識別子が返されます。

ワークスペースは、カスタマー マネージド キーを使用して暗号化する必要がある

ワークスペースをカスタマー マネージド キーで暗号化するか、Microsoft マネージド キーを使用してメトリックとメタデータを暗号化するかを制御します。 カスタマーマネージド キーの使用の詳細については、データ暗号化の記事の Azure Cosmos DB に関するセクションをご覧ください。

このポリシーを構成するには、effect パラメーターを Audit または Deny に設定します。 Audit に設定すると、カスタマー マネージド キーを使用せずにワークスペースを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、カスタマー マネージド キーを指定しないとワークスペースを作成できません。 カスタマー マネージド キーを使用せずにワークスペースを作成しようとすると、Resource 'clustername' was disallowed by policy のようなエラーが発生し、アクティビティ ログにエラーが作成されます。 このエラーの一部としてポリシー識別子も返されます。

パブリック ネットワーク アクセスを無効にするようにワークスペースを構成する

ワークスペースでパブリック インターネットからのネットワーク アクセスを無効にする必要があるかどうかを制御します。

このポリシーを構成するには、effect パラメーターを AuditDeny、または Disabled に設定します。 Audit に設定すると、パブリック アクセスを使用してワークスペースを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、パブリック インターネットからのネットワーク アクセスを許可するワークスペースを作成できません。

ネットワークの分離の下位互換性をサポートするには、ワークスペースで V1LegacyMode を有効にする必要がある

ネットワークの分離の下位互換性をサポートするためにワークスペースで V1LegacyMode を有効にする必要があるかどうかを制御します。 このポリシーは、Azure Machine Learning コントロール プレーン データをプライベート ネットワーク内に保持する場合に有用です。 詳細については、新しい API プラットフォームでのネットワーク分離の変更に関する記事を参照してください。

このポリシーを構成するには、effect パラメーターを AuditDeny、または Disabled に設定します。 Audit に設定すると、V1LegacyMode を有効にせずにワークスペースを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、V1LegacyMode を有効にしなければワークスペースを作成できません。

ワークスペースで Azure Private Link を使用して Azure Virtual Network と通信するかどうかを制御します。 プライベート リンクの使用の詳細については、「Azure Machine Learning ワークスペース用にプライベート エンドポイントを構成する」を参照してください。

このポリシーを構成するには、effect パラメーターを Audit または Deny に設定します。 Audit に設定すると、プライベート リンクを使用せずにワークスペースを作成できます。また、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、プライベート リンクを使用しないとワークスペースを作成できません。 プライベート リンクなしでワークスペースを作成しようとすると、エラーが発生します。 このエラーは、アクティビティ ログにも記録されます。 このエラーの一部としてポリシー識別子が返されます。

ワークスペースではユーザー割り当てマネージド ID を使用する必要がある

システム割り当てのマネージド ID (既定値) とユーザー割り当てのマネージド ID のどちらを使用してワークスペースを作成するかを制御します。 ワークスペースのマネージド ID は、Azure Storage、Azure Container Registry、Azure Key Vault、Azure Application Insights などの関連リソースにアクセスするために使用されます。 詳しくは、「Azure Machine Learning とその他のサービス間の認証を設定する」をご参照ください。

このポリシーを構成するには、effect パラメーターを AuditDeny、または Disabled に設定します。 Audit に設定すると、ユーザー割り当てのマネージド ID を指定せずにワークスペースを作成できます。 システムによって割り当てられた ID が使用され、アクティビティ ログに警告イベントが作成されます。

ポリシーを Deny に設定した場合、作成プロセス中にユーザー割り当ての ID を指定しないとワークスペースを作成できません。 ユーザー割り当て ID を指定せずにワークスペースを作成しようとすると、エラーが発生します。 このエラーは、アクティビティ ログにも記録されます。 このエラーの一部としてポリシー識別子が返されます。

コンピューティングを構成してローカル認証を変更または無効にする

このポリシーは、Azure Machine Learning のコンピューティング クラスターまたはインスタンスの作成要求を変更して、ローカル認証 (SSH) を無効にします。

このポリシーを構成するには、effect パラメーターを Modify または Disabled に設定します。 Modify に設定すると、このポリシーが適用されるスコープ内にコンピューティング クラスターやインスタンスを作成すると、自動的にローカル認証が無効になります。

プライベート DNS ゾーンを使用するようにワークスペースを構成する

このポリシーは、プライベート DNS ゾーンを使用するようにワークスペースを構成し、プライベート エンドポイントの既定の DNS 解決を上書きします。

このポリシーを構成するには、effect パラメーターを DeployIfNotExists に設定します。 privateDnsZoneId を、使用するプライベート DNS ゾーンの Azure Resource Manager ID に設定します。

パブリック ネットワーク アクセスを無効にするようにワークスペースを構成する

パブリック インターネットからのネットワーク アクセスを無効にするようにワークスペースを構成します。 公衆ネットワーク アクセスの無効化は、データ漏洩のリスクからワークスペースを保護するために役立ちます。 代わりに、プライベート エンドポイントを作成してワークスペースにアクセスできます。 詳細については、「Azure Machine Learning ワークスペース用にプライベート エンドポイントを構成する」を参照してください。

このポリシーを構成するには、effect パラメーターを Modify または Disabled に設定します。 Modify に設定した場合、このポリシーが適用されるスコープ内にワークスペースを作成すると、自動的にパブリック ネットワーク アクセスが無効になります。

プライベート エンドポイントを使用してワークスペースを構成する

Azure Virtual Network の指定したサブネット内にプライベート エンドポイントを作成するようにワークスペースを構成します。

このポリシーを構成するには、effect パラメーターを DeployIfNotExists に設定します。 privateEndpointSubnetID をサブネットの Azure Resource Manager ID に設定します。

ログ分析ワークスペースにログを送信するように診断ワークスペースを構成する

Log Analytics ワークスペースにログを送信するように、Azure Machine Learning ワークスペースの診断設定を構成します。

このポリシーを構成するには、effect パラメーターを DeployIfNotExists または Disabled に設定します。 DeployIfNotExists に設定した場合、このポリシーは、Log Analytics ワークスペースにログを送信するように診断設定を作成します (まだ存在しない場合)。

ワークスペースのリソース ログを有効にする必要がある

Azure Machine Learning ワークスペースのリソース ログが有効になっているかどうかを監査します。 リソース ログは、ワークスペース内のリソースに対して実行された操作に関する詳細情報を提供します。

このポリシーを構成するには、effect パラメーターを AuditIfNotExists または Disabled に設定します。 AuditIfNotExists に設定した場合、このポリシーは、ワークスペースのリソース ログが有効になっていないかどうかを監査します。

カスタム定義を作成する

組織のカスタム ポリシーを作成する必要がある場合は、Azure Policy の定義の構造を使用して独自の定義を作成できます。 ポリシーの作成とテストを行うために、Visual Studio Code 拡張機能を使用できます。

定義で使用できるポリシー エイリアスを検出するには、次の Azure CLI コマンドを使用して Azure Machine Learning のエイリアスを一覧表示します。

az provider show --namespace Microsoft.MachineLearningServices --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"

特定のエイリアスに許可される値を検出するには、Azure Machine Learning REST API リファレンスを参照してください。

カスタム ポリシーの作成方法に関するチュートリアル (Azure Machine Learning 固有のものではありません) については、カスタム ポリシー定義の作成を参照してください。

例: サーバーレスの Spark コンピューティング ジョブをブロックする

{
    "properties": {
        "displayName": "Deny serverless Spark compute jobs",
        "description": "Deny serverless Spark compute jobs",
        "mode": "All",
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "Microsoft.MachineLearningServices/workspaces/jobs/jobType",
                        "in": [
                            "Spark"
                        ]
                    }
                ]
            },
            "then": {
                "effect": "Deny"
            }
        },
        "parameters": {}
    }
}

例: マネージド コンピューティングにパブリック IP を構成しない

{
    "properties": {
        "displayName": "Deny compute instance and compute cluster creation with public IP",
        "description": "Deny compute instance and compute cluster creation with public IP",
        "mode": "all",
        "parameters": {
            "effectType": {
                "type": "string",
                "defaultValue": "Deny",
                "allowedValues": [
                    "Deny",
                    "Disabled"
                ],
                "metadata": {
                    "displayName": "Effect",
                    "description": "Enable or disable the execution of the policy"
                }
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                  {
                    "field": "type",
                    "equals": "Microsoft.MachineLearningServices/workspaces/computes"
                  },
                  {
                    "allOf": [
                      {
                        "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
                        "notEquals": "AKS"
                      },
                      {
                        "field": "Microsoft.MachineLearningServices/workspaces/computes/enableNodePublicIP",
                        "equals": true
                      }
                    ]
                  }
                ]
              },
            "then": {
                "effect": "[parameters('effectType')]"
            }
        }
    }
}