次の方法で共有


Azure Data Lake Storage で Azure のマネージド ID を使用する

Azure Data Lake Storage は階層化されたセキュリティ モデルを提供します。 このモデルを使用すると、使用するネットワークまたはリソースの種類とサブセットに基づいて、アプリケーションやエンタープライズ環境が要求するストレージ アカウントへのアクセス レベルを保護および制御できます。 ネットワーク ルールが構成されている場合、指定された一連のネットワークまたは指定された一連の Azure リソースを介してデータを要求するアプリケーションのみがストレージ アカウントにアクセスできます。 ストレージ アカウントへのアクセスを、指定した IP アドレス、IP 範囲、Azure Virtual Network (VNet) 内のサブネット、または一部の Azure サービスのリソース インスタンスから発生する要求に制限できます。

AzureのマネージドID (以前はマネージド サービスID (MSI) と呼ばれていました) は、シークレットの管理に役立ちます。 Azureの機能を使用している Microsoft Dataverse の顧客は、1 つ以上の Dataverse 環境に使用できるマネージド ID (エンタープライズ ポリシー作成の一部) を作成します。 テナントにプロビジョニングされるこのマネージド ID は、その後、Azure Data Lake にアクセスするために Dataverse よって使用されます。

マネージド ID を使用すると、ストレージ アカウントへのアクセスは、テナントに関連付けられた Dataverse 環境から発生する要求に制限されます。 Dataverse がユーザーに代わってストレージに接続すると、要求が安全で信頼できる環境から発生したことを証明するために、追加のコンテキスト情報を含めます。 これにより、ストレージはストレージ アカウントへのアクセスを Dataverse に許可します。 マネージド ID は、信頼を確立するためにコンテキスト情報の署名に使用されます。 これにより、Azure サービス間の接続に Azure が提供するネットワークとインフラストラクチャ セキュリティに加えて、アプリケーション レベルのセキュリティが追加されます。

開始する前に

  • ローカル コンピューターに Azure CLI が必要です。 ダウンロードしてインストールする
  • これら 2 つの PowerShell モジュールが必要です。 これらがない場合は、PowerShellを開いて、次のコマンドを実行します。
    • Azure Az PowerShell モジュール: Install-Module -Name Az
    • Azure Az.Resources PowerShell モジュール: Install-Module -Name Az.Resources
    • Power Platform 管理者 PowerShell モジュール: Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
  • GitHubのこの 圧縮フォルダー ファイルに移動します。 次に、選択 ダウンロード してダウンロードします。 圧縮フォルダー ファイルを、PowerShell コマンドを実行できる場所にあるコンピューターに展開します。 圧縮フォルダーから抽出されたすべてのファイルとフォルダーは、元の場所に保存される必要があります。
  • この機能をオンボードするために、同じ Azure リソース グループの下に新しいストレージ コンテナーを作成することをお勧めします。

選択した Azure サブスクリプションのエンタープライズ ポリシーを有効にする

重要

この タスク を完了するには、 Azureサブスクリプション所有者 の役割アクセス権が必要です。 Azureリソース グループの概要ページから、Azure サブスクリプションID を取得します。

  1. Azure CLIを 管理者 として実行して開き、次のコマンドを使用してAzureサブスクリプションにログインします: az login 詳細情報: Azure CLIでログイン
  2. (オプション) 複数のAzureサブスクリプションがある場合は、必ず Update-AzConfig -DefaultSubscriptionForLogin { Azure subscription id } を実行してデフォルトのサブスクリプションを更新してください。
  3. この機能の 開始する前に の一部としてダウンロードした圧縮フォルダーを、PowerShellを実行できる場所に展開します。
  4. 選択したAzureサブスクリプションのエンタープライズ ポリシーを有効にするには、PowerShellスクリプト ./SetupSubscriptionForPowerPlatform.ps1 を実行します。
    • Azure サブスクリプション ID を指定します。

エンタープライズ ポリシーを作成する

重要

この タスク を完了するには、 Azureリソース グループの所有者 ロールのアクセス権が必要です。 Azureリソース グループの概要ページから、Azure サブスクリプションID場所、および リソース グループ 名を取得します。

  1. エンタープライズ ポリシーを作成します。 PowerShellスクリプトを実行する ./CreateIdentityEnterprisePolicy.ps1

    • Azure サブスクリプション ID を指定します。
    • Azure リソース グループ名を指定します。
    • 優先するエンタープライズ ポリシー名を指定します。
    • Azure リソース グループの場所を指定します。
  2. ポリシー作成後、 ResourceId のコピーを保存します。

ヒント

以下は、ポリシー作成でサポートされている有効な 場所 入力です。 最も適切な場所を選択します。

エンタープライズ ポリシーで使用可能な場所

米国 EUAP

アメリカ合衆国

南アフリカ

英国

オーストラリア

韓国

日本

インド

フランス

欧州

アジア

ノルウェイ

ドイツ

スイス

カナダ

ブラジル

UAE

シンガポール

閲覧者に Azure 経由でエンタープライズ ポリシーへのアクセスを許可する

Dynamics 365管理者、および Power Platform 管理者は Power Platform 管理センター にアクセスして、環境をエンタープライズ ポリシーに割り当てることができます。 エンタープライズ ポリシーにアクセスするには、Azure Key Vault管理者メンバーシップが必要で、 閲覧者 ロール をDynamics 365または Power Platform 管理者に付与します。閲覧者 ロールが付与されると、Dynamics 365または Power Platform 管理者は、 Power Platform 管理センター でエンタープライズ ポリシーを表示できるようになります。

エンタープライズ ポリシーに閲覧者ロールを付与された Dynamics 365 および Power Platform 管理者のみが、ポリシーに '環境を追加' できます。 他の Dynamics 365 および PowerPlatform 管理者はエンタープライズ ポリシーを表示できる場合がありますが、環境を追加しようとするとエラーが発生します。

重要

この タスク を完了するには、 Microsoft.Authorization/roleAssignments/write ユーザー アクセス 管理者 または 所有者 などの 権限が必要です。

  1. Azure portal にサインインします。
  2. Dynamics 365 Power Platform 管理者ユーザーの ObjectIDを取得します。
    1. ユーザー エリアに移動します。
    2. Dynamics 365 または Power Platform 管理者ユーザーを開きます。
    3. ユーザーの概要ページで、 ObjectID をコピーします。
  3. エンタープライズ ポリシーIDを取得します。
    1. Azure リソース グラフ エクスプローラー に移動します。
    2. 次のクエリを実行します: resources | where type == 'microsoft.powerplatform/enterprisepolicies'Azureリソース グラフ エクスプローラーからクエリを実行する
    3. 結果ページの右までスクロールし、選択 をクリックして 詳細を表示 リンク します。
    4. 詳細 ページで、IDをコピーします。
  4. Azure CLIを開き、 <objId> をユーザーの ObjectID に置き換え、 <EP Resource Id> をエンタープライズ ポリシーIDに置き換えて、次のコマンドを実行します。
    • New-AzRoleAssignment -ObjectId <objId> -RoleDefinitionName Reader -Scope <EP Resource Id>

エンタープライズ ポリシーと Dataverse 環境を結び付ける

重要

この タスク を完了するには、 Power Platform 管理者 or Dynamics 365管理者 ロールが必要です。 この タスク を完了するには、エンタープライズ ポリシーの 閲覧者 ロールが必要です。

  1. Dataverse 環境 ID を取得します。
    1. Power Platform 管理センター にログインします
    2. 選択 環境 を開き、環境 を開きます。
    3. 詳細 セクションで、 接続IDをコピーします。
    4. Dataverse 選択 に リンク するには、次のPowerShellスクリプトを実行します。 ./NewIdentity.ps1
    5. Dataverse 環境 ID を指定します。
    6. ResourceId を指定します。
      StatusCode = 202 は、リンク が正常に作成されたことを示します。
  2. Power Platform 管理センター にログインします
  3. 選択 環境 を開き、先ほど指定した 接続 を開きます。
  4. 最近の操作 領域で、選択 完全な履歴 をクリックして、新しいIDの接続を検証します。

Azure Data Lake Storage Gen2 へのネットワーク アクセスを構成する

重要

この タスク を完了するには、 Azure Data Lake Storage Gen2 所有者 ロールが必要です。

  1. Azure portal に移動します。

  2. Azure Synapse Link for Dataverse プロファイルに接続されているストレージ アカウントを開きます。

  3. 左側のナビゲーション ペインで、選択 ネットワーク を選択します。 次に、 ファイアウォールと仮想ネットワーク タブで次の設定を行います。

    1. 選択した仮想ネットワークとIPアドレスから有効化されます
    2. リソースインスタンスの下で、このストレージアカウントにアクセスするための信頼できるサービスリストの選択 Allow Azureサービス
  4. 保存 を選びます。

Azure Synapse Workspace へのネットワーク アクセスを構成する

重要

この タスク を完了するには、Azure Synapse管理者 ロールが必要です。

  1. Azure portal に移動します。
  2. Azure Synapse Link for Dataverse プロファイルに接続されている Azure Synapse workspace を開きます。
  3. 左側のナビゲーション ペインで、選択 ネットワーク を選択します。
  4. このワークスペースにアクセスするには、選択 Allow Azureのサービスとリソースが必要です
  5. すべてのIP範囲に対して IPファイアウォール ルール が作成されている場合は、それらを削除してパブリック ネットワーク アクセスを制限します。 Azure Synapse ワークスペースのネットワーク設定
  6. クライアントIPアドレスに基づいて、新しい IPファイアウォール ルール を追加します。
  7. 終わったら、保存を選択します。 詳細情報: Azure Synapse Analytics IPファイアウォール ルール

重要

Dataverse: Dataverse システム管理者セキュリティ ロールを持っている必要があります。 さらに、Azure Synapse Link 経由でエクスポートするテーブルでは、変更の追跡 プロパティが有効になっている必要があります。 詳細: 詳細オプション

Azure Data Lake Storage Gen2: Azure Data Lake Storage Gen2 アカウントと所有者およびストレージ BLOB データ共同作成者ロールのアクセス権を持っている必要があります。 ストレージ アカウントでは、初期セットアップと差分同期の両方で 階層型名前空間 を有効にする必要があります。初期設定のみ、ストレージ アカウント キーへのアクセスを許可するが必要です。

Synapse ワークスペース: Synapse ワークスペースと Synapse Studio 内の Synapse 管理者ロール アクセスが必要です。 Synapse ワークスペースは、Azure Data Lake Storage Gen2 アカウントと同じ領域にある必要があります。 ストレージ アカウントは、Synapse Studio 内のリンクされたサービスとして追加する必要があります。 Synapse ワークスペースを作成するには、Synapse ワークスペースを作成するに移動します。

リンクを作成すると、Azure Synapse Link for Dataverse は現在リンクされているエンタープライズ ポリシーの詳細を Dataverse 環境で取得し、ID クライアント シークレット URL をキャッシュして Azure に接続します。

  1. Power Apps にログインして、選択 で 環境 をフォローしてください。
  2. 左側のナビゲーション ペインで、選択 Azure Synapse Link、次に 選択 + 新しい リンク を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
  3. 意図した設定に応じて、適切なフィールドに入力します。 サブスクリプションリソース グループストレージ アカウントを選択します。 Synapseワークスペースに 接続 Dataverse するには、 選択 を Azure Synapse ワークスペース オプションに追加します。 Delta Lakeデータ変換には、Sparkプール 選択 を使用します。
  4. 選択 選択 エンタープライズ ポリシーとマネージド サービスID、次に 選択 次へ
  5. エクスポートするテーブルを追加してから、保存を選択します。

ヒント

マネージドIDの使用 コマンドを Power Appsで使用できるようにするには、上記のセットアップを完了して、エンタープライズ ポリシーを Dataverse 環境 に適用する必要があります。 詳細情報: 接続 エンタープライズ ポリシー Dataverse 環境

  1. Power Apps (make.powerapps.com) から既存の Synapse Link プロファイルに移動します。
  2. 選択 マネージドIDを使用し、確認します。 マネージドIDコマンドを使用する Power Apps

トラブルシューティング​​

リンクの作成中に 403 エラーが発生した場合:

  • マネージド ID は、初期同期時に一時的なアクセス許可を付与するために追加の時間がかかります。しばらく時間をおいて、操作をやり直してください。
  • リンクされたストレージに、同じ 環境 からの既存の Dataverse コンテナー ( データバース - 環境名 - 組織の一意の名前 ) がないことを確認します。
  • リンクされたエンタープライズ ポリシーを識別するには、 policyArmId Azureスクリプト ./GetIdentityEnterprisePolicyforEnvironment.ps1 を、 サブスクリプションIDリソース グループ 名を指定して実行します。
  • ./RevertIdentity.ps1 環境IDと Dataverse を使用して policyArmIdPowerShellスクリプトを実行すると、エンタープライズ ポリシーのリンクを解除できます。
  • PowerShellスクリプト .\RemoveIdentityEnterprisePolicy.ps1をpolicyArmId で実行することで、エンタープライズ ポリシーを削除できます。

既知の制限

同時に Dataverse 環境に接続できるエンタープライズポリシーは 1 つだけです。 マネージド アイデンティティを有効にして複数の Azure Synapse Link リンクを作成する必要がある場合は、リンクされているすべての Azure リソースが同じリソースグループの下にあることを確認してください。

参照

Azure Synapse Link for Dataverse とは