仮想ネットワーク (VNet) を使用して Azure Machine Learning ワークスペース リソースを保護する

ヒント

Microsoft では、この記事の手順ではなく、Azure Machine Learning のマネージド仮想ネットワークの使用をお勧めしています。 マネージド仮想ネットワークを使用すると、Azure Machine Learning はワークスペースとマネージド コンピューティングのネットワーク分離のジョブを処理します。 また、ワークスペースに必要なリソース (Azure Storage アカウントなど) のプライベート エンドポイントを追加することもできます。 詳しくは、ワークスペースのマネージド ネットワーク分離に関する記事をご覧ください。

Azure Virtual Network (VNet) を使用して Azure Machine Learning ワークスペース リソースとコンピューティング環境をセキュリティで保護します。 この記事では、完全な仮想ネットワークを構成する方法を示すシナリオ例を使用します。

この記事は、Azure Machine Learning ワークフローのセキュリティ保護に関するシリーズの一部です。 このシリーズの他の記事は次のとおりです。

この記事は、Azure Machine Learning ワークフローのセキュリティ保護に関するシリーズの一部です。 このシリーズの他の記事は次のとおりです。

セキュリティで保護されたワークスペースの作成に関するチュートリアルについては、「チュートリアル: セキュリティで 保護されたワークスペースを作成する」または「チュートリアル: テンプレートを使用してセキュリティで保護されたワークスペースを作成する」を参照してください。

前提条件

この記事では、次の記事について理解していることを前提としています。

シナリオ例

このセクションでは、プライベート IP アドレスを使用して Azure Machine Learning の通信をセキュリティで保護するために、一般的なネットワーク シナリオがどのように設定されるかについて説明します。

次の表は、VNet がある場合とない場合で、サービスが Azure Machine Learning ネットワークのさまざまな部分にアクセスする方法を比較したものです。

シナリオ ワークスペース 関連付けられているリソース トレーニングのコンピューティング環境 推論のコンピューティング環境
仮想ネットワークなし パブリック IP パブリック IP パブリック IP パブリック IP
パブリックワークスペース、仮想ネットワーク内の他のすべてのリソース パブリック IP パブリック IP (サービス エンドポイント)
または
プライベート IP (プライベート エンドポイント)
パブリック IP プライベート IP
仮想ネットワーク内のリソースをセキュリティで保護 プライベート IP (プライベート エンドポイント) パブリック IP (サービス エンドポイント)
または
プライベート IP (プライベート エンドポイント)
プライベート IP プライベート IP
  • ワークスペース - ワークスペースのプライベート エンドポイントを作成します。 プライベート エンドポイントは、複数のプライベート IP アドレスを使用してワークスペースを VNet に接続します。
    • パブリックアクセス -必要に応じて、セキュリティで保護されたワークスペースのパブリックアクセスを有効にすることができます。
  • 関連するリソース - サービス エンドポイントまたはプライベート エンドポイントを使用して、Azure storage、Azure Key Vault などのワークスペース リソースに接続します。 Azure Container Services の場合は、プライベート エンドポイントを使用します。
    • サービス エンドポイントは、仮想ネットワークの ID を Azure サービスに提供します。 ご利用の仮想ネットワークでサービス エンドポイントを有効にしたら、仮想ネットワーク規則を追加して、Azure サービス リソースへのアクセスを仮想ネットワークに限定することができます。 サービス エンドポイントは、パブリック IP アドレスを使用します。
    • プライベート エンドポイントは、Azure Private Link を使用するサービスに安全に接続するネットワーク インターフェイスです。 プライベート エンドポイントでは、自分の VNet からのプライベート IP アドレスを使用して、サービスを実質的に VNet に取り込みます。
  • トレーニングのコンピューティング アクセス - パブリックまたはプライベート IP アドレスを使用して、Azure Machine Learning コンピューティング インスタンスや Azure Machine Learning コンピューティング クラスターのようなトレーニングのコンピューティング ターゲットにアクセスします。
  • 推論のコンピューティング アクセス - プライベート IP アドレスを使用して、Azure Kubernetes Services (AKS) コンピューティング クラスターにアクセスします。

次のセクションでは、前述のネットワーク シナリオをセキュリティで保護する方法について説明します。 ネットワークをセキュリティで保護するには、次のことを行う必要があります。

  1. ワークスペースと関連するリソースをセキュリティで保護します。
  2. トレーニング環境をセキュリティで保護します。
  3. 推論環境をセキュリティで保護します。
  4. 必要に応じて、Studio の機能を有効にします
  5. ファイアウォール設定を構成します。
  6. DNS 名前解決を構成します。

パブリックワークスペースとセキュリティで保護されたリソース

重要

これは Azure Machine Learning でサポートされている構成ですが、Microsoft では推奨していません。 仮想ネットワークの背後にある Azure Storage アカウント内のデータは、パブリック ワークスペースで公開できます。 運用環境で使用する前に、セキュリティ チームでこの構成を確認する必要があります。

仮想ネットワークですべての関連リソースを保護したまま、パブリックインターネット経由でワークスペースにアクセスする場合は、次の手順を実行します。

  1. Azure 仮想ネットワークを作成します。 このネットワークは、ワークスペースによって使用されるリソースをセキュリティで保護します。

  2. パブリックにアクセス可能なワークスペースを作成するには、次のいずれかのオプションを使用します。

    OR

  3. サービス エンドポイントまたはプライベート エンドポイントの "どちらか" を使用して、次のサービスを仮想ネットワークに追加します。 また、信頼された Microsoft サービスによるこれらのサービスへのアクセスを許可します。

  4. ワークスペースの Azure Storage アカウントのプロパティで、ファイアウォール設定の許可一覧にクライアント IP アドレスを追加します。 詳細については、ファイアウォールと仮想ネットワークの構成に関する記事を参照してください。

ワークスペースと関連するリソースをセキュリティで保護する

ワークスペースと関連するリソースをセキュリティで保護するには、次の手順に従います。 これらの手順により、サービスが仮想ネットワークで通信できるようになります。

  1. Azure 仮想ネットワークを作成します。 このネットワークにより、ワークスペースとその他のリソースがセキュリティで保護されます。 次に、Private Link が有効なワークスペースを作成し、VNet とワークスペース間の通信を有効にします。

  2. サービス エンドポイントまたはプライベート エンドポイントの "どちらか" を使用して、次のサービスを仮想ネットワークに追加します。 また、信頼された Microsoft サービスによるこれらのサービスへのアクセスを許可します。

    サービス エンドポイント情報 信頼できる情報を許可する
    Azure Key Vault サービス エンドポイント
    プライベート エンドポイント
    信頼された Microsoft サービスを許可して、このファイアウォールをバイパスする
    Azure Storage アカウント サービスとプライベート エンドポイント
    プライベート エンドポイント
    Azure リソース インスタンスからのアクセスを許可する
    または
    信頼された Azure サービスへのアクセスを許可する
    Azure Container Registry プライベート エンドポイント 信頼されたサービスを許可する
  1. Azure 仮想ネットワークを作成します。 この仮想ネットワークにより、ワークスペースとその他のリソースがセキュリティで保護されます。 次に、Private Link が有効なワークスペースを作成し、VNet とワークスペース間の通信を有効にします。

  2. サービス エンドポイントまたはプライベート エンドポイントの "どちらか" を使用して、次のサービスを仮想ネットワークに追加します。 また、信頼された Microsoft サービスによるこれらのサービスへのアクセスを許可します。

    サービス エンドポイント情報 信頼できる情報を許可する
    Azure Key Vault サービス エンドポイント
    プライベート エンドポイント
    信頼された Microsoft サービスを許可して、このファイアウォールをバイパスする
    Azure Storage アカウント サービスとプライベート エンドポイント
    プライベート エンドポイント
    Azure リソース インスタンスからのアクセスを許可する
    または
    信頼された Azure サービスへのアクセスを許可する
    Azure Container Registry プライベート エンドポイント 信頼されたサービスを許可する

Diagram showing how the workspace and associated resources communicate inside a VNet.

これらの手順を完了する方法の詳細については、Azure Machine Learning ワークスペースのセキュリティ保護に関するページを参照してください。

これらの手順を完了する方法の詳細については、Azure Machine Learning ワークスペースのセキュリティ保護に関するページを参照してください。

制限事項

仮想ネットワーク内のワークスペースと関連するリソースをセキュリティで保護するには、次の制限があります。

  • ワークスペースと既定のストレージ アカウントは、同じ VNet 内にある必要があります。 ただし、同じ VNet 内の複数のサブネットは許容されます。 たとえば、あるサブネット内のワークスペースと別のサブネット内のストレージなどです。

    ワークスペースの Azure Key Vault と Azure Container Registry も同じ VNet 内に存在することをお勧めします。 ただし、これらのリソースの両方をピアリングされた VNet に含めることもできます。

トレーニング環境をセキュリティで保護する

このセクションでは、Azure Machine Learning でトレーニング環境をセキュリティで保護する方法について説明します。 また、Azure Machine Learning でトレーニング ジョブがどのように完了するかについても説明するので、ネットワーク構成がどのように連携するかを理解できます。

トレーニング環境をセキュリティで保護するには、次の手順に従います。

  1. トレーニング ジョブを実行するために、Azure Machine Learning コンピューティング インスタンスとコンピューター クラスターを仮想ネットワークに作成します。

  2. コンピューティング クラスターまたはコンピューティング インスタンスがパブリック IP アドレスを使っている場合は、管理サービスがコンピューティング リソースにジョブを送信できるように、受信方向の通信を許可する必要があります。

    ヒント

    コンピューティング クラスターとコンピューティング インスタンスは、パブリック IP アドレスを使用して、または使用しないで作成できます。 パブリック IP アドレスを使って作成した場合は、パブリック IP を持つロード バランサーで、Azure Batch サービスと Azure Machine Learning サービスからのインバウンド アクセスを受け入れるようになります。 ファイアウォールを使う場合は、ユーザー定義ルーティング (UDR) を構成する必要があります。 パブリック IP アドレスを使わずに作成した場合は、パブリック IP ではなく、プライベート リンク サービスで、Azure Batch サービスと Azure Machine Learning サービスからのインバウンド アクセスを受け入れるようになります。

  1. トレーニング ジョブを実行するために、Azure Machine Learning コンピューティング インスタンスとコンピューター クラスターを仮想ネットワークに作成します。

  2. コンピューティング クラスターまたはコンピューティング インスタンスがパブリック IP アドレスを使っている場合は、管理サービスがコンピューティング リソースにジョブを送信できるように、受信方向の通信を許可する必要があります。

    ヒント

    コンピューティング クラスターとコンピューティング インスタンスは、パブリック IP アドレスを使用して、または使用しないで作成できます。 パブリック IP アドレスを使って作成した場合は、パブリック IP を持つロード バランサーで、Azure Batch サービスと Azure Machine Learning サービスからのインバウンド アクセスを受け入れるようになります。 ファイアウォールを使う場合は、ユーザー定義ルーティング (UDR) を構成する必要があります。 パブリック IP アドレスを使わずに作成した場合は、パブリック IP ではなく、プライベート リンク サービスで、Azure Batch サービスと Azure Machine Learning サービスからのインバウンド アクセスを受け入れるようになります。

Diagram showing how to secure managed compute clusters and instances.

これらの手順を完了する方法の詳細については、トレーニング環境のセキュリティ保護に関するページを参照してください。

これらの手順を完了する方法の詳細については、トレーニング環境のセキュリティ保護に関するページを参照してください。

トレーニング ジョブの送信例

このセクションでは、トレーニング ジョブを送信するために、Azure Machine Learning によってサービス間でどのように通信が安全に行われるかについて説明します。 この例は、すべての構成が連携して通信をセキュリティで保護するしくみを示しています。

  1. クライアントは、サービス エンドポイントまたはプライベート エンドポイントで保護されているストレージ アカウントに、トレーニング スクリプトとトレーニング データをアップロードします。

  2. プライベート エンドポイントを使用して、クライアントから Azure Machine Learning ワークスペースにトレーニング ジョブが送信されます。

  3. Azure Batch サービスは、ワークスペースからジョブを受信します。 そして、コンピューティング リソースのパブリック ロード バランサーを介して、トレーニング ジョブをコンピューティング環境に送信します。

  4. コンピューティング リソースはジョブを受信し、トレーニングが開始されます。 コンピューティング リソースは、キー コンテナーに格納されている情報を使用してストレージ アカウントにアクセスし、トレーニング ファイルをダウンロードし、出力をアップロードします。

Diagram showing the secure training job submission workflow.

制限事項

  • Azure コンピューティング インスタンスと Azure コンピューティング クラスターは、ワークスペースおよび関連するリソースと同じ VNet、リージョン、およびサブスクリプションにある必要があります。

推論環境をセキュリティで保護する

マネージド オンライン エンドポイントのネットワークの分離を有効にして、次のネットワーク トラフィックをセキュリティで保護できます。

  • インバウンド スコアリング要求。
  • ワークスペース、Azure Container Registry、Azure Blob Storage とのアウトバウンド通信。

詳細については、「マネージド オンライン エンドポイントのネットワークの分離を有効にする」を参照してください。

このセクションでは、ML v1 または Azure Machine Learning Python SDK v1 用の Azure CLI 拡張機能を使っているときに、推論環境をセキュリティで保護するために使用できるオプションについて説明します。 v1 のデプロイを行う場合、大規模な運用環境のデプロイには、Azure Kubernetes Services (AKS) クラスターを使用することをお勧めします。

仮想ネットワークでの AKS クラスターには、次の 2 つのオプションがあります。

  • 既定の AKS クラスターを VNet にデプロイまたはアタッチします。
  • プライベート AKS クラスターを VNet にアタッチします。

既定の AKS クラスターには、パブリック IP アドレスを持つコントロール プレーンがあります。 デプロイ時に既定の AKS クラスターを VNet に追加することもできますし、クラスターの作成後にそれをアタッチすることもできます。

プライベート AKS クラスターには、プライベート IP を介してのみアクセスできるコントロール プレーンがあります。 プライベート AKS クラスターは、クラスターの作成後にアタッチする必要があります。

既定のクラスターおよびプライベート クラスターを追加する方法の詳細については、推論環境のセキュリティ保護に関するページを参照してください。

既定の AKS クラスターとプライベート AKS クラスターのいずれが使用されているかに関係なく、AKS クラスターが VNET の背後にある場合、ワークスペースとその関連リソース (ストレージ、キー コンテナー、ACR) には、AKS クラスターと同じ VNET 内にプライベート エンドポイントまたはサービス エンドポイントが必要です。

次のネットワーク図は、仮想ネットワークにアタッチされたプライベート AKS クラスターのある、セキュリティで保護された Azure Machine Learning ワークスペースを示しています。

Diagram showing an attached private AKS cluster.

省略可能:パブリック アクセスを有効にする

プライベート エンドポイントを使用して VNet の背後にあるワークスペースをセキュリティで保護しながら、パブリック インターネット経由のアクセスを許可することができます。 初期構成は、ワークスペースと関連するリソースをセキュリティで保護する場合と同じです。

プライベートエンドポイントを使用してワークスペースをセキュリティで保護した後、次の手順を使用して、SDK または Azure Machine Learning studio を使用してクライアントをリモートで開発できるようにします。

  1. ワークスペースへのパブリック アクセスを有効にします。
  2. パブリックインターネット経由で接続するクライアントの IP アドレスとの通信を許可するようにAzure Storage ファイアウォールを構成します。
  1. ワークスペースへのパブリック アクセスを有効にします。
  2. パブリックインターネット経由で接続するクライアントの IP アドレスとの通信を許可するようにAzure Storage ファイアウォールを構成します。

省略可能: Studio の機能を有効にする

ストレージが VNet 内にある場合、スタジオで完全な機能を有効にするためには、追加の構成手順を使用する必要があります。 既定では、次の機能が無効になっています。

  • スタジオでのデータのプレビュー
  • デザイナーでのデータの視覚化
  • デザイナーでのモデルのデプロイ
  • AutoML 実験の送信
  • ラベル付けプロジェクトの開始

すべてのスタジオ機能を有効にするには、仮想ネットワークで Azure Machine Learning スタジオを使用するを参照してください。

制限事項

ML によるデータのラベル付けは、仮想ネットワークの背後にある既定のストレージ アカウントをサポートしていません。 代わりに、既定以外のストレージ アカウントを使用して、ML によるデータのラベル付けを行います。

ヒント

既定のストレージ アカウントでない限り、データのラベル付けに使用されるアカウントは、仮想ネットワークの背後で保護できます。

ファイアウォール設定を構成する

ファイアウォールを構成して、Azure Machine Learning ワークスペース リソースとパブリック インターネット間のトラフィックを制御します。 Azure Firewall を推奨しますが、他のファイアウォール製品を使用することもできます。

ファイアウォール設定の詳細については、ファイアウォールの内側でのワークスペースの使用に関するページを参照してください。

[カスタム DNS]

仮想ネットワークにカスタム DNS ソリューションを使用する必要がある場合は、ワークスペースのホスト レコードを追加する必要があります。

必要なドメイン名と IP アドレスの詳細については、「カスタム DNS サーバーでワークスペースを使用する方法」を参照してください。

Microsoft Sentinel

Microsoft Sentinel は、Azure Machine Learning と統合できるセキュリティ ソリューションです。 たとえば、Azure Machine Learning で提供される Jupyter Notebook を利用します。 詳細については、「Jupyter Notebook を使用してセキュリティの脅威を検出する」を参照してください。

パブリック アクセス

パブリック エンドポイントで問題なければ、Microsoft Sentinel によってワークスペースが自動的に作成されます。 この構成では、セキュリティ オペレーション センター (SOC) のアナリストとシステム管理者は、Sentinel を介してワークスペース内のノートブックに接続します。

このプロセスの詳細については、Microsoft Sentinel からの Azure Machine Learning ワークスペースの作成に関する記事を参照してください。

Diagram showing Microsoft Sentinel public connection.

プライベート エンドポイント

VNet 内のワークスペースおよび関連付けられているリソースをセキュリティで保護する場合は、まず Azure Machine Learning ワークスペースを作成する必要があります。 また、ワークスペースと同じ VNet に仮想マシンの "ジャンプ ボックス" を作成し、そこへの Azure Bastion の接続性を有効にする必要があります。 パブリック構成と同様に、SOC アナリストと管理者は Microsoft Sentinel を使用して接続できますが、VM に接続するには Azure Bastion を使用して一部の操作を実行する必要があります。

この構成の詳細については、Microsoft Sentinel からの Azure Machine Learning ワークスペースの作成に関する記事を参照してください。

Daigram showing Microsoft Sentinel connection through a VNet.

次のステップ

この記事は、Azure Machine Learning ワークフローのセキュリティ保護に関するシリーズの一部です。 このシリーズの他の記事は次のとおりです。