Azure Machine Learning のデータ流出防止

Azure Machine Learning には、受信と送信の依存関係がいくつかあります。 そうした依存関係の中には、組織内の悪意のあるエージェントによってデータが流出するリスクを顕在化させるものがあります。 このドキュメントでは、受信要件と送信要件を制限することで、データ流出リスクを最小限に抑える方法について説明します。

  • 受信: コンピューティング インスタンスまたはクラスターでパブリック IP アドレスが使用されている場合は、azuremachinelearning (ポート 44224) サービス タグに受信があります。 この受信トラフィックは、ネットワーク セキュリティ グループ (NSG) とサービス タグを使用して制御できます。 Azure サービス IP を偽装することは困難であるため、データ流出リスクは低くなっています。 パブリック IP を使用しないようにコンピューティングを構成することもでき、そうすれば受信要件は排除されます。

  • 送信: 悪意のあるエージェントに送信先リソースへの書き込みアクセス権がなければ、その送信を使ってデータを流出させることはできません。 Microsoft Entra ID、Azure Resource Manager、Azure Machine Learning、Microsoft Container Registry は、このカテゴリに属します。 一方、Storage と AzureFrontDoor.frontend は、データの流出に使用されるおそれがあります。

    • 送信: 悪意のあるエージェントは、送信先リソースへの書き込みアクセス権がない場合、その送信を使ってデータを流出させることはできません。 悪意のあるエージェントが、この送信規則を使用して、独自のストレージ アカウントにデータをプロビジョニングして保存すれば、データが流出するおそれがあります。 Azure サービス エンドポイント ポリシーと Azure Batch の簡略化されたノード通信アーキテクチャを使用して、データ流出リスクを取り除くことができます。

    • AzureFrontDoor.frontend 送信: Azure Machine Learning スタジオの UI と AutoML には Azure Front Door を使用します。 サービス タグ (AzureFrontDoor.frontend) への送信を許可する代わりに、完全に修飾された次のドメイン名 (FQDN) に切り替えます。 これらの FQDN に切り替えると、サービス タグに含まれる不要な送信トラフィックが削除され、Azure Machine Learning スタジオの UI と AutoML に必要なもののみが許可されます。

      • ml.azure.com
      • automlresources-prod.azureedge.net

ヒント

この記事の情報は、主に Azure Virtual Network の使用に関するものです。 Azure Machine Learning は、マネージド仮想ネットワーク を使用することもできます。 マネージド仮想ネットワークを使用すると、Azure Machine Learning はワークスペースとマネージド コンピューティングのネットワーク分離のジョブを処理します。

データ流出の懸念に対処するために、マネージド仮想ネットワークを使用すると、承認された送信トラフィックのみにエグレスを制限できます。 詳細については、「ワークスペース マネージド ネットワーク分離」を参照してください。

前提条件

  • Azure サブスクリプション
  • Azure Virtual Network (VNet)
  • その VNet にプライベート エンドポイントで接続する Azure Machine Learning ワークスペース。
    • ワークスペースで使用されるストレージ アカウントも、プライベート エンドポイントを使用して VNet に接続する必要があります。
  • コンピューティング インスタンスを再作成するか、コンピューティング クラスターをゼロ ノードにスケールダウンする必要があります。
    • プレビューに参加している場合は必須ではありません。
    • 2022 年 12 月以降に新しいコンピューティング インスタンスとコンピューティング クラスターを作成した場合は必須ではありません。

サービス エンドポイント ポリシーを使用する必要がある理由

サービス エンドポイント ポリシーを使用すると、サービス エンドポイント経由の Azure Storage アカウントの仮想ネットワーク エグレス トラフィックをフィルター処理し、データ流出を特定の Azure Storage アカウントのみに許可することができます。 Azure Machine Learning コンピューティング インスタンスとコンピューティング クラスターでは、プロビジョニングのために Microsoft マネージド ストレージ アカウントにアクセスする必要があります。 サービス エンドポイント ポリシーの Azure Machine Learning エイリアスには、Microsoft マネージド ストレージ アカウントが含まれています。 Azure Machine Learning エイリアスでサービス エンドポイント ポリシーを使用して、データ流出を防いだり、宛先ストレージ アカウントを制御したりします。 詳細については、サービス エンドポイント ポリシーのドキュメントを参照してください。

1. サービス エンドポイント ポリシーを作成する

  1. Azure portal から新しいサービス エンドポイント ポリシーを追加します。 [基本] タブで必要な情報を入力し、[次へ] を選択します。

  2. [ポリシー定義] タブで、次のアクションを実行します。

    1. [+ リソースを追加する] を選択し、次の情報を入力します。

      • サービス: Microsoft.Storage
      • [スコープ]: ネットワーク トラフィックを 1 つのストレージ アカウントに制限するには、スコープとして [単一のアカウント] を選びます。
      • サブスクリプション: ストレージ アカウントが存在する Azure サブスクリプション。
      • リソース グループ: ストレージ アカウントが存在するリソース グループ。
      • [リソース]: ワークスペースの既定のストレージ アカウント。

      [追加] を選択してリソース情報を追加します。

      A screenshot showing how to create a service endpoint policy.

    2. [+ エイリアスの追加] を選択し、[Server Alias] (サーバーの別名) の値として /services/Azure/MachineLearning を選択します。 [追加] を選択して別名を追加します。

      注意

      Azure CLI と Azure PowerShell では、ポリシーに別名を追加するためのサポートは提供されません。

  3. [確認と作成][作成] の順に選択します。

重要

コンピューティング インスタンスとコンピューティング クラスターが追加のストレージ アカウントにアクセスする必要がある場合は、サービス エンドポイント ポリシーのリソース セクションに追加のストレージ アカウントを含める必要があります。 ストレージ プライベート エンドポイントを使用する場合は必須ではないことに注意してください。 サービス エンドポイント ポリシーとプライベート エンドポイントは独立しています。

2. 受信および送信ネットワーク トラフィックを許可する

受信

重要

次の情報は、トレーニング環境を保護する方法に関する記事に記載されているガイダンスを変更したものです。

重要

次の情報は、トレーニング環境を保護する方法に関する記事に記載されているガイダンスを変更したものです。

"パブリック IP アドレス" で Azure Machine Learning コンピューティング インスタンスを使用する場合は、Azure Batch 管理からの受信トラフィック (サービス タグ BatchNodeManagement.<region>) を許可します。 パブリック IP なしのコンピューティング インスタンスでは、このインバウンド通信は必要ありません

送信

重要

以下の情報は、仮想ネットワークを使用したトレーニング環境の保護受信ネットワーク トラフィックと送信ネットワーク トラフィックの構成に関する記事のガイダンスに追加される内容となっています。

重要

以下の情報は、仮想ネットワークを使用したトレーニング環境の保護受信ネットワーク トラフィックと送信ネットワーク トラフィックの構成に関する記事のガイダンスに追加される内容となっています。

使用する構成を選択してください。

次のサービス タグに対する送信トラフィックを許可します。 <region> は、ご利用のコンピューティング クラスターまたはコンピューティング インスタンスがある Azure リージョンに置き換えてください。

サービス タグ Protocol Port
BatchNodeManagement.<region> ANY 443
AzureMachineLearning TCP 443
Storage.<region> TCP 443

注意

送信ストレージについて、後続の手順で、送信トラフィックを制限するためのサービス エンドポイント ポリシーが適用されます。

3. サブネットのストレージ エンドポイントを有効にする

Azure Machine Learning コンピューティング クラスターとコンピューティング インスタンスを含むサブネットのストレージ エンドポイントを有効にするには、次の手順に従います。

  1. Azure portal から、ご利用の Azure Machine Learning ワークスペースの Azure 仮想ネットワークを選択します。
  2. ページの左側から [サブネット] を選択し、ご利用のコンピューティング クラスターおよびコンピューティング インスタンスがあるサブネットを選択します。
  3. 表示されたフォームで [サービス] ドロップダウンを展開して、Microsoft.Storage を有効にします。 [保存] を選択して、これらの変更を保存してください。
  4. ワークスペース サブネットにサービス エンドポイント ポリシーを適用します。

A screenshot of the Azure portal showing how to enable storage endpoint for the subnet.

4. キュレーションされた環境

Azure Machine Learning のキュレーション環境を使用する場合は、必ず最新の環境バージョンを使用してください。 また、環境のコンテナー レジストリは mcr.microsoft.com であることが必要です。 コンテナー レジストリをチェックするには、次の手順に従います。

  1. Azure Machine Learning スタジオからワークスペースを選択し、[環境] を選択します。

  2. Azure コンテナー レジストリmcr.microsoft.com の値で始まっていることを確認します。

    重要

    コンテナー レジストリが viennaglobal.azurecr.io である場合、データ流出のあるキュレーション環境を使うことはできません。 最新バージョンのキュレーション環境にアップグレードしてみてください。

  3. また、mcr.microsoft.com を使用する場合は、以下のリソースへの送信構成を許可する必要があります。 使用する構成オプションを選択してください。

    以下のサービス タグに対する TCP ポート 443 での送信トラフィックを許可します。 <region> は、ご利用のコンピューティング クラスターまたはコンピューティング インスタンスがある Azure リージョンに置き換えてください。

    • MicrosoftContainerRegistry.<region>
    • AzureFrontDoor.FirstParty

次のステップ

詳細については、次の記事を参照してください。