データ管理

データ アクセスを管理する方法と、Azure Machine Learning で認証を行う方法について説明します

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

重要

この記事は、Azure Machine Learning ソリューションに必要なインフラストラクチャを作成する Azure 管理者を対象としています。

一般に、スタジオからのデータ アクセスにはこれらの確認が必要です。

  • リソースにアクセスする必要があるのはどのユーザーですか?
    • ストレージの種類に応じて、次のようなさまざまな種類の認証を使用できます。
      • アカウント キー
      • token
      • サービス プリンシパル (service principal)
      • マネージド ID
      • ユーザー ID
    • ユーザー ID に基づく認証では、''どの'' 特定のユーザーがストレージ リソースにアクセスしようとしたかを把握する必要があります。 "ユーザー" 認証の詳細については、Azure Machine Learning での認証に関するページをご覧ください。 サービス レベルの認証の詳細については、Azure Machine Learning と他のサービス間の認証に関するページをご覧ください。
  • このユーザーはアクセス許可を持っていますか?
    • ユーザーは正しい資格情報を持っていますか? "はい" の場合、サービス プリンシパルやマネージド ID などは、そのストレージ リソースに必要なアクセス許可を持っていますか? アクセス許可の付与には、Azure ロールベースのアクセス制御 (Azure RBAC) が使用されます。
    • ストレージ アカウントの閲覧者は、ストレージ メタデータを読み取ります。
    • ストレージ BLOB データ閲覧者は、BLOB コンテナー内のデータを読み取ります。
    • 共同作成者は、ストレージ アカウントへの書き込みアクセスを許可します。
    • ストレージの種類によっては、さらにロールが必要になる場合があります。
  • どこからアクセスしますか?
    • ユーザー: クライアントの IP アドレスは、VNet またはサブネットの範囲内であるか。
    • ワークスペース: ワークスペースはパブリックですか? それとも VNet/サブネットにプライベート エンドポイントがありますか?
    • ストレージ: ストレージでパブリック アクセスが許可されているか。または、サービス エンドポイントまたはプライベート エンドポイントを通じてアクセスが制限されているか。
  • どのような操作が実行されますか?
    • Azure Machine Learning によって、データ ストアやデータセットに対する作成、読み取り、更新、削除 (CRUD) 操作が処理されます。
    • スタジオのデータ資産に対するアーカイブ操作には、この RBAC 操作が必要です: Microsoft.MachineLearningServices/workspaces/datasets/registered/delete
    • データ アクセス呼び出し (たとえば、プレビューやスキーマ) は、基になるストレージに渡されるため、特別なアクセス許可が必要となります。
  • この操作が実行されるのは、Azure サブスクリプションのコンピューティング リソース内ですか、それとも Microsoft サブスクリプションでホストされているリソース内ですか?
    • データセットやデータストア サービスに対するすべての呼び出し ("プロファイルの生成" オプションを除く) では、Microsoft サブスクリプションでホストされたリソースを使用して操作が実行されます。
    • データセットの "プロファイルの生成" オプションを含むジョブは、サブスクリプションのコンピューティング リソースで実行され、その場所からデータにアクセスします。 コンピューティング ID には、ジョブを送信したユーザーの ID ではなく、ストレージ リソースへのアクセス許可が必要です。

この図は、データ アクセス呼び出しの大まかな流れを示しています。 ここでは、ユーザーがコンピューティング リソースを使用せずに、機械学習ワークスペースを介してデータ アクセス呼び出しを行おうとします。

Diagram of the logic flow when accessing data.

シナリオと ID

この表に、特定のシナリオで使用する ID を一覧表示します。

シナリオ ワークスペースの
管理サービス ID (MSI) を使用する
使用する ID
UI からのアクセス はい ワークスペース MSI
UI からのアクセス いいえ ユーザーの ID
ジョブからのアクセス はい/いいえ コンピューティング MSI
Notebook からのアクセス はい/いいえ ユーザーの ID

データ アクセスは複雑であり、多くの要素が含まれます。 たとえば、Azure Machine Learning スタジオからのデータ アクセスは、データ アクセスに SDK を使用する場合とは異なります。 ローカル開発環境で SDK を使用する場合は、クラウド内のデータに直接アクセスします。 スタジオを使用する場合、常にクライアントからデータ ストアに直接アクセスするとは限りません。 スタジオでのデータ アクセスには、ユーザーに代わってワークスペースが利用されます。

ヒント

Azure Machine Learning の外部から (たとえば、Azure Storage Explorer を使用して) データにアクセスする場合、そのアクセスが ''ユーザー'' ID に依存している可能性があります。 具体的な情報については、使用しているツールまたはサービスのドキュメントを確認してください。 Azure Machine Learning とデータの連携の詳細については、「Azure Machine Learning と他のサービスの間で認証を設定する」をご覧ください。

Azure Storage アカウント

Azure Machine Learning スタジオから Azure Storage アカウントを使用する場合、そのストレージ アカウントの次の Azure RBAC ロールにワークスペースのマネージド ID を追加する必要があります。

  • BLOB データ閲覧者
  • ストレージ アカウントでプライベート エンドポイントを使用して VNet に接続する場合は、ストレージ アカウントのプライベート エンドポイントの閲覧者ロールをマネージド ID に付与する必要があります。

詳細については、「Azure 仮想ネットワークで Azure Machine Learning スタジオを使用する」を参照してください。

次のセクションでは、VNet 内のワークスペースで Azure Storage アカウントを使用する場合の制限事項について説明します。

Azure Storage アカウントとのセキュリティで保護された通信

Azure Machine Learning と Azure Storage アカウント間の通信をセキュリティで保護するには、信頼された Azure サービスへのアクセスを許可するようにストレージを構成します。

Azure Storage ファイアウォール

Azure Storage アカウントが仮想ネットワークの背後にある場合、通常はストレージ ファイアウォールを使用して、クライアントがインターネット経由で直接接続できるようにします。 ただし、スタジオを使用する場合、クライアントはストレージ アカウントに接続されません。 要求を行う Azure Machine Learning service がストレージ アカウントに接続されます。 このサービスの IP アドレスは文書化されておらず、頻繁に変更されます。 ストレージのファイアウォールを有効にしても、スタジオから VNet 構成のストレージ アカウントにアクセスできるようにはなりません

Azure Storage エンドポイントの種類

ワークスペースでプライベート エンドポイントが使用され、ストレージ アカウントも VNet 内にある場合、スタジオを使用するときに以下の追加の検証要件が発生します。

  • ストレージ アカウントでサービス エンドポイントを使用する場合は、ワークスペースのプライベート エンドポイントとストレージのサービス エンドポイントが VNet の同じサブネットに配置されている必要があります。
  • ストレージ アカウントでプライベート エンドポイントを使用する場合は、ワークスペースのプライベート エンドポイントとストレージのプライベート エンドポイントが同じ VNet に配置されている必要があります。 この場合、サブネットは違っていても構いません。

Azure Data Lake Storage Gen1

Azure Data Lake Storage Gen1 をデータストアとして使用する場合は、POSIX スタイルのアクセス制御リストのみを使用できます。 他のセキュリティ プリンシパルと同様に、ワークスペースのマネージド ID にリソースへのアクセス権を割り当てることができます。 詳細については、「Azure Data Lake Storage Gen1 のアクセス制御」を参照してください。

Azure Data Lake Storage Gen2

Azure Data Lake Storage Gen2 をデータストアとして使用する場合、仮想ネットワーク内のデータ アクセスの制御には、Azure RBAC と POSIX スタイルのアクセス制御リスト (ACL) の両方を使用できます。

Azure RBAC を使用するには、この「データストア: Azure Storage アカウント」記事セクションで説明されている手順に従います。 Data Lake Storage Gen2 は Azure Storage をベースにしているため、Azure RBAC を使用する手順は同じです。

ACL を使用する場合は、他のセキュリティ プリンシパルと同様に、ワークスペース マネージド ID にアクセス権を割り当てることができます。 詳細については、「ファイルとディレクトリのアクセス制御リスト」を参照してください。

次のステップ

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