次の方法で共有


マネージド ID を使用して外部テーブルを認証する

外部テーブルは、Azure Data Explorer データベースの外部に格納されているデータを参照するスキーマ エンティティです。 外部テーブルを定義して、Azure Storage または SQL Server のデータを参照し、さまざまな認証方法をサポートできます。

この記事では、 管理された ID で認証する外部テーブルを作成する方法について説明します。

前提条件

1 - 外部テーブルで使用するマネージド ID を構成する

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

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

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

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

  1. 手順に従って ユーザー割り当て ID をクラスターに追加し 後で使用できるように Object (プリンシパル) ID を保存します。

  2. .alter-merge policy managed_identity コマンドを実行します。 このコマンドは、マネージド ID を外部テーブルで使用できるようにする 管理 ID ポリシー をクラスターに設定します。 <objectId>Object (プリンシパル) ID に置き換えます。

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

    Note

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

2 - マネージド ID の外部リソースのアクセス許可を付与する

正常に認証するには、マネージド ID に外部リソースへのアクセス許可が必要です。

関連する種類の外部リソースのタブを選択し、必要なアクセス許可を割り当てます。

次の表に、外部リソースで必要なアクセス許可を示します。 外部リソースからデータをインポートまたはクエリするには、マネージド ID に読み取りアクセス許可を付与します。 外部リソースにデータをエクスポートするには、マネージド ID に書き込みアクセス許可を付与します。

外部データ ストア 読み取りアクセス許可 Write 権限 アクセス許可を付与する
Azure Blob Storage ストレージ BLOB データ閲覧者 ストレージ BLOB データ共同作成者 Azure ロールを割り当てる
Data Lake Storage Gen2 ストレージ BLOB データ閲覧者 ストレージ BLOB データ共同作成者 Azure ロールを割り当てる
Data Lake Storage Gen1 Reader Contributor Azure ロールを割り当てる

3 - 外部テーブルを作成する

マネージド ID を使用した認証をサポートする外部テーブルには、Azure Storage 外部テーブルSQL Server 外部テーブルの 2 種類があります

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

Azure Storage 外部テーブルを作成するには、次の手順を実行します。

  1. storage 接続文字列 テンプレートに基づいて接続文字列を作成。 この文字列は、アクセスするリソースとその認証情報を示します。 管理 ID 認証方法を指定します

  2. .create または .alter 外部テーブルを実行してテーブルを作成します。 前の手順の接続文字列を storageConnectionString 引数として使用します。

次のコマンドは、Azure Blob Storage のmystorageaccountmycontainerで CSV 形式のデータを参照するMyExternalTableを作成します。 テーブルには、整数 x 用と文字列 s用の 2 つの列があります。 接続文字列は;managed_identity=systemで終わります。これは、認証にシステム割り当てマネージド ID を使用してデータ ストアにアクセスすることを示します。

.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
( 
    h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system' 
)

Note

ユーザー割り当てマネージド ID で認証するには、 system をマネージド ID オブジェクト ID に置き換えます。