ストレージの接続文字列
Azure Data Explorerでは、外部ストレージサービスとやりとりすることができます。 たとえば、外部ストレージに格納されているデータに対してクエリを実行するために 、Azure Storage の外部テーブルを作成できます。
次の種類の外部ストレージがサポートされます。
- Azure Blob Storage
- Azure Data Lake Storage Gen2
- Azure Data Lake Storage Gen1
- Amazon S3
ストレージの種類ごとに、ストレージ リソースとそのアクセス方法を説明するために使用される対応する接続文字列形式があります。 Azure Data Explorerは、これらのストレージリソースと、セキュリティ資格情報などのアクセスに必要なプロパティを記述するためにURI形式を使用します。
注意
一部のシナリオで動作するように見えても、Azure Blob Storageの API セット全体を実装していない HTTP Web サービスはサポートされません。
ストレージ接続文字列テンプレート
ストレージの種類ごとに、接続文字列の形式が異なります。 各ストレージの種類の接続文字列テンプレートについては、次の表を参照してください。
ストレージ型 | Scheme | URI テンプレート |
---|---|---|
Azure Blob Storage | https:// |
https://
StorageAccountName.blob.core.windows.net/ Container[/ BlobName][CallerCredentials] |
Azure Data Lake Storage Gen2 | https:// |
https://
StorageAccountName.dfs.core.windows.net/ Filesystem[/ PathToDirectoryOrFil
e][CallerCredentials] |
Azure Data Lake Storage Gen2 | abfss:// |
abfss://
Filesystem@ StorageAccountName.dfs.core.windows.net/ [PathToDirectoryOrFile][CallerCredentials] |
Azure Data Lake Storage Gen1 | adl:// |
adl://
StorageAccountName.azuredatalakestore.net/PathToDirectoryOrFile[CallerCredentials] |
Amazon S3 | https:// |
https:// BucketName.s3. RegionName.amazonaws.com/ ObjectKey[CallerCredentials] |
注意
トレースにシークレットが表示されないようにするには、 難読化された文字列リテラルを使用します。
ストレージの認証方法
Azure Data Explorerから非パブリック外部ストレージを操作するには、外部ストレージ 接続文字列の一部として認証手段を指定する必要があります。 接続文字列は、アクセスするリソースとその認証情報を定義します。
Azure Data Explorer では、次の認証方法がサポートされています。
- 偽装
- マネージド ID
- Shared Access (SAS) キー
- Microsoft Entra アクセス トークン
- ストレージ アカウントのアクセス キー
- アマゾン ウェブ サービスのプログラムによるアクセス キー
- アマゾン ウェブ サービス S3 の署名済み URL
ストレージの種類別にサポートされる認証
次の表は、さまざまな外部ストレージの種類で使用できる認証方法をまとめたものです。
認証方法 | Blob Storage で使用できますか? | Azure Data Lake Storage Gen 2 で使用できますか? | Azure Data Lake Storage Gen 1 で使用できますか? | Amazon S3 で利用できますか。 | この方法を使用するタイミング |
---|---|---|---|---|---|
偽装 | ✔️ | ✔️ | ✔️ | ❌ | 外部ストレージに対して複雑なアクセス制御を必要とする有人フローに使用します。 たとえば、連続エクスポート フローなどの場合です。 ユーザー レベルでストレージ アクセスを制限することもできます。 |
マネージド ID | ✔️ | ✔️ | ✔️ | ❌ | 無人フローでは を使用します。Microsoft Entra プリンシパルを派生してクエリやコマンドを実行することはできません。 マネージド ID が、唯一の認証ソリューションです。 |
Shared Access (SAS) キー | ✔️ | ✔️ | ❌ | ❌ | SAS トークンには有効期限があります。 限られた時間ストレージにアクセスする場合に使用します。 |
Microsoft Entra アクセス トークン | ✔️ | ✔️ | ✔️ | ❌ | Microsoft Entraトークンには有効期限があります。 限られた時間ストレージにアクセスする場合に使用します。 |
ストレージ アカウントのアクセス キー | ✔️ | ✔️ | ❌ | ❌ | リソースに継続的にアクセスする必要がある場合。 |
アマゾン ウェブ サービスのプログラムによるアクセス キー | ❌ | ❌ | ❌ | ✔️ | Amazon S3 リソースに継続的にアクセスする必要がある場合。 |
アマゾン ウェブ サービス S3 の署名済み URL | ❌ | ❌ | ❌ | ✔️ | 一時事前に署名された URL を使用して Amazon S3 リソースにアクセスする必要がある場合。 |
権限借用
Azure Data Explorerは、リクエスタのプリンシパル ID を借用してリソースにアクセスします。 権限借用を使用するには、接続文字列に ;impersonate
を追加します。
例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;impersonate" |
プリンシパルには、操作を実行するために必要なアクセス許可が必要です。 たとえば、Azure Blob Storageでは、BLOB から読み取るために、プリンシパルにはストレージ BLOB データ閲覧者ロールが必要であり、BLOB にエクスポートするには、プリンシパルにストレージ BLOB データ共同作成者ロールが必要です。 詳細については、「アクセス制御のAzure Blob Storage/Data Lake Storage Gen2」または「アクセス制御のData Lake Storage Gen1」を参照してください。
マネージド ID
Azure Data Explorerは、マネージド ID に代わって要求を行い、その ID を使用してリソースにアクセスします。 システム割り当てマネージド ID の場合は、接続文字列に を追加;managed_identity=system
します。 ユーザー割り当てマネージド ID の場合は、接続文字列に を追加;managed_identity={object_id}
します。
マネージド ID の種類 | 例 |
---|---|
システム割り当て | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;managed_identity=system" |
ユーザー割り当て | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;managed_identity=12345678-1234-1234-1234-1234567890ab" |
マネージド ID には、操作を実行するために必要なアクセス許可が必要です。 たとえば、Azure Blob Storageでは、BLOB から読み取るために、マネージド ID にはストレージ BLOB データ閲覧者ロールが必要であり、BLOB にエクスポートするには、マネージド ID にストレージ BLOB データ共同作成者ロールが必要です。 詳細については、「アクセス制御のAzure Blob Storage/Data Lake Storage Gen2」または「アクセス制御のData Lake Storage Gen1」を参照してください。
注意
マネージド ID は、特定の Azure Data Explorer フローでのみサポートされており、マネージド ID ポリシーを設定する必要があります。 詳細については、マネージド ID の概要に関するページを参照してください。
Shared Access (SAS) トークン
Azure portalで、必要なアクセス許可を持つ SAS トークンを生成します。
たとえば、外部ストレージから読み取る場合は、読み取りと一覧表示のアクセス許可を指定し、外部ストレージにエクスポートするには書き込みアクセス許可を指定します。 詳細については、「 共有アクセス署名を使用してアクセスを委任する」を参照してください。
接続文字列として SAS URL を使用します。
例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv?sv=...&sp=rwd" |
Microsoft Entra アクセス トークン
base-64 でエンコードされたMicrosoft Entraアクセス トークンを追加するには、接続文字列に を追加;token={AadToken}
します。 トークンは、リソース https://storage.azure.com/
用である必要があります。
Microsoft Entra アクセス トークンを生成する方法の詳細については、「承認のためのアクセス トークンを取得する」を参照してください。
例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;token=1234567890abcdef1234567890abcdef1234567890abc..." |
ストレージ アカウントのアクセス キー
ストレージ アカウントのアクセス キーを追加するには、キーを接続文字列に追加します。 Azure Blob Storageで、接続文字列に を追加;{key}
します。 Azure Data Lake Storage Gen 2 の場合は、接続文字列に を追加;sharedkey={key}
します。
ストレージ アカウント | 例 |
---|---|
Azure Blob Storage | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;ljkAkl...==" |
Azure Data Lake Storage Gen2 | "abfss://fs@fabrikam.dfs.core.windows.net/path/to/file.csv;sharedkey=sv=...&sp=rwd" |
アマゾン ウェブ サービスのプログラムによるアクセス キー
アマゾン ウェブ サービス のアクセス キーを追加するには、接続文字列に ;AwsCredentials={ACCESS_KEY_ID},{SECRET_ACCESS_KEY}
を追加します。
例 |
---|
"https://yourbucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AWS1234567890EXAMPLE,1234567890abc/1234567/12345678EXAMPLEKEY" |
アマゾン ウェブ サービス S3 の署名済み URL
接続文字列として S3 の署名付き URL を使用します。
例 |
---|
"https://yourbucketname.s3.us-east-1.amazonaws.com/file.csv?12345678PRESIGNEDTOKEN" |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示