次の方法で共有


マネージド ID を使用して連続エクスポート ジョブを実行する

適用対象: Azure Data Explorer

連続エクスポート ジョブ、定期的に実行されるクエリを使用して 外部テーブル にデータをエクスポートします。

連続エクスポート ジョブは、次のシナリオで マネージド ID を使用して構成する必要があります。

マネージド ID で構成された連続エクスポート ジョブは、マネージド ID に代わって実行されます。

この記事では、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を構成し、その ID を使用して連続エクスポート ジョブを作成する方法について説明します。

前提 条件

マネージド ID の構成

マネージド ID には、次の 2 種類があります。

  • システム割り当て: システム割り当て ID はクラスターに接続され、クラスターが削除されると削除されます。 クラスターごとに許可されるシステム割り当て ID は 1 つだけです。

  • ユーザー割り当て: ユーザー割り当てマネージド ID はスタンドアロンの Azure リソースです。 クラスターには、複数のユーザー割り当て ID を割り当てることができます。

次のいずれかのタブを選択して、優先するマネージド ID の種類を設定します。

  • ユーザー割り当て の
  • システム割り当て の
  1. ユーザー割り当て IDを追加する手順に従います。

  2. Azure portal のマネージド ID リソースの左側のメニューで、[プロパティ]選択します。 次の手順で使用するために、テナント IDプリンシパル ID をコピーして保存します。

    マネージド ID ID を含む Azure portal 領域のスクリーンショット。

  3. 次の .alter-merge policy managed_identity コマンド 実行し、 を前の手順のマネージド ID オブジェクト ID に置き換えます。 このコマンドは、クラスターで マネージド ID ポリシー を設定します。これにより、マネージド ID を連続エクスポートで使用できるようになります。

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "AutomatedFlows"
        }
    ]```
    

    手記

    特定のデータベースにポリシーを設定するには、clusterの代わりに database <DatabaseName> を使用します。

  4. 次のコマンドを実行して、外部テーブルを含むデータベースなど、連続エクスポートに使用されるすべてのデータベースに対して、マネージド ID データベース ビューアー アクセス許可を付与します。

    .add database <DatabaseName> viewers ('aadapp=<objectId>;<tenantId>')
    

    <DatabaseName> を関連するデータベースに置き換え、<objectId> 手順 2 のマネージド ID プリンシパル ID に置き換え、手順 2 の Microsoft Entra ID テナント ID<tenantId> します。

外部テーブルを設定する

外部テーブルは、Azure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、SQL Server など、Azure Storage にあるデータを参照します。

次のいずれかのタブを選択して、Azure Storage または SQL Server 外部テーブルを設定します。

  • Azure Storage を する
  • SQL Server の
  1. ストレージ接続文字列テンプレートに基づいて接続文字列を作成します。 この文字列は、アクセスするリソースとその認証情報を示します。 連続エクスポート フローの場合は、偽装認証することをお勧めします。

  2. .create または .alter external table コマンドを実行してテーブルを作成します。 前の手順の接続文字列を、storageConnectionString 引数として使用します。

    たとえば、次のコマンドは、Azure Blob Storage の mystorageaccountmycontainer で CSV 形式のデータを参照する MyExternalTable を作成します。 テーブルには 2 つの列があり、1 つは整数 x 用、1 つは文字列 s用です。 接続文字列は ;impersonateで終わります。これは、偽装認証を使用してデータ ストアにアクセスすることを示します。

    .create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
    ( 
        h@'https://mystorageaccount.blob.core.windows.net/mycontainer;impersonate' 
    )
    
  3. 関連する外部データ ストアに対するマネージド ID の書き込みアクセス許可を付与します。 継続的エクスポート ジョブはマネージド ID に代わってデータ ストアにデータをエクスポートするため、マネージド ID には書き込みアクセス許可が必要です。

    外部データ ストア 必要なアクセス許可 アクセス許可を付与する
    Azure Blob Storage ストレージ BLOB データ共同作成者 azure ロール を割り当てる
    Data Lake Storage Gen2 ストレージ BLOB データ共同作成者 azure ロール を割り当てる
    Data Lake Storage Gen1 投稿者 azure ロール を割り当てる

連続エクスポート ジョブを作成する

次のいずれかのタブを選択して、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID に代わって実行される連続エクスポート ジョブを作成します。

  • ユーザー割り当て の
  • システム割り当て の

managedIdentity プロパティをマネージド ID オブジェクト ID に設定して、.create-or-alter continuous-export コマンドを実行します。

たとえば、次のコマンドは、MyExport という名前の連続エクスポート ジョブを作成し、ユーザー割り当てマネージド ID の代わりに MyTable のデータを MyExternalTable にエクスポートします。 <objectId> はマネージド ID オブジェクト ID である必要があります。

.create-or-alter continuous-export MyExport over (MyTable) to table MyExternalTable with (managedIdentity=<objectId>, intervalBetweenRuns=5m) <| MyTable