マネージド ID を使用して連続エクスポート ジョブを実行する
適用対象: Azure Data Explorer
連続エクスポート ジョブ、定期的に実行されるクエリを使用して 外部テーブル にデータをエクスポートします。
連続エクスポート ジョブは、次のシナリオで マネージド ID を使用して構成する必要があります。
- 外部テーブルで偽装認証を使用する場合
- クエリが他のデータベースのテーブルを参照する場合
- クエリが有効な 行レベルのセキュリティ ポリシーを持つテーブルを参照する場合
マネージド ID で構成された連続エクスポート ジョブは、マネージド ID に代わって実行されます。
この記事では、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を構成し、その ID を使用して連続エクスポート ジョブを作成する方法について説明します。
前提 条件
- クラスターとデータベース。 クラスターとデータベースを作成します。
- データベースに対するすべてのデータベース管理者 アクセス許可。
マネージド ID の構成
マネージド ID には、次の 2 種類があります。
システム割り当て: システム割り当て ID はクラスターに接続され、クラスターが削除されると削除されます。 クラスターごとに許可されるシステム割り当て ID は 1 つだけです。
ユーザー割り当て: ユーザー割り当てマネージド ID はスタンドアロンの Azure リソースです。 クラスターには、複数のユーザー割り当て ID を割り当てることができます。
次のいずれかのタブを選択して、優先するマネージド ID の種類を設定します。
-
ユーザー割り当て の
-
システム割り当て の
ユーザー割り当て IDを追加する手順に従います。
Azure portal のマネージド ID リソースの左側のメニューで、[プロパティ]
選択します。 次の手順で使用するために、テナント ID と プリンシパル ID をコピーして保存します。 次の .alter-merge policy managed_identity コマンド
実行し、 を前の手順のマネージド ID オブジェクト ID に置き換えます。 このコマンドは、クラスターで マネージド ID ポリシー を設定します。これにより、マネージド ID を連続エクスポートで使用できるようになります。 .alter-merge cluster policy managed_identity ```[ { "ObjectId": "<objectId>", "AllowedUsages": "AutomatedFlows" } ]```
手記
特定のデータベースにポリシーを設定するには、
cluster
の代わりにdatabase <DatabaseName>
を使用します。次のコマンドを実行して、外部テーブルを含むデータベースなど、連続エクスポートに使用されるすべてのデータベースに対して、マネージド 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 の
ストレージ接続文字列テンプレートに基づいて接続文字列を作成します。 この文字列は、アクセスするリソースとその認証情報を示します。 連続エクスポート フローの場合は、偽装認証 することをお勧めします。 .create または .alter external table コマンドを実行してテーブルを作成します。 前の手順の接続文字列を、storageConnectionString 引数として使用します。
たとえば、次のコマンドは、Azure Blob Storage の
mystorageaccount
のmycontainer
で 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' )
関連する外部データ ストアに対するマネージド 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
関連コンテンツ
- 連続エクスポートの概要
- .show continuous-exports
- マネージド ID の