Storage连接字符串

使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息
适用于:✅ Azure Data Explorer

Kusto 服务可以与外部storage服务进行交互。 例如,可以创建Azure Storage外部表,以便查询存储在外部存储中的数据。

支持以下类型的外部storage服务:

  • Azure Blob Storage(用于读取/写入的块 blob、用于读取的追加 blob)
  • Azure Data Lake Storage Gen2
  • Azure Data Lake Storage Gen1
  • Amazon S3

每种storage都有相应的connection string格式,用于描述storage资源以及如何access它们。 URI 格式用于描述这些storage资源以及access这些资源所需的属性,例如安全凭据。

注意

HTTP Web 服务支持仅限从任意 HTTP Web 服务检索资源。 不支持其他操作(例如写入资源)。

Storage connection string模板

每个storage类型具有不同的connection string格式。 有关每个storage类型的connection string模板,请参阅下表。

Storage类型 Scheme URI 模板
Azure Blob Storage https:// https:// StorageAccountName.blob.core.chinacloudapi.cn/Container[/BlobName][CallerCredentials]
Azure Data Lake Storage Gen2 https:// https:// StorageAccountName.dfs.core.chinacloudapi.cn/Filesystem[/PathToDirectoryOrFile][CallerCredentials]
Azure Data Lake Storage Gen2 abfss:// abfss:// 文件系统@StorageAccountName.dfs.core.chinacloudapi.cn/[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]
HTTP Web 服务 https:// https:// 主机名/PathAndQuery

注意

若要防止机密显示在跟踪中,请使用模糊字符串字面量

Storage身份验证方法

若要与非公共外部storage交互,必须指定身份验证方式作为外部storage connection string的一部分。 connection string定义要access的资源及其身份验证信息。

支持以下身份验证方法:

storage类型支持的身份验证

下表汇总了不同外部storage类型的可用身份验证方法。

身份验证方法 Blob storage中提供? Azure Data Lake Storage Gen 2 中提供? Azure Data Lake Storage第 1 代中提供? 是否在 Amazon S3 中可用? 何时应使用此方法?
模拟 ✔️ ✔️ ✔️ 当需要通过外部storage进行复杂的access control时,用于参与的流。 例如在连续导出流中。 还可以在用户级别限制storage access。
托管的标识 ✔️ ✔️ ✔️ 在无人参与的流中使用,其中无法派生 Microsoft Entra 主体来执行查询和命令。 托管标识是唯一的身份验证解决方案。
共享Access密钥 ✔️ ✔️ SAS 令牌具有过期时间。 访问storage的时间有限时使用。
Microsoft Entra access token ✔️ ✔️ ✔️ Microsoft Entra 令牌具有到期时间。 访问storage的时间有限时使用。
Storage帐户access密钥 ✔️ ✔️ 需要持续access资源时。
Amazon Web 服务以编程方式Access密钥 ✔️ 需要持续access Amazon S3 资源时。
Amazon Web Services S3 预签名 URL ✔️ 需要使用临时预签名 URL access Amazon S3 资源时。

模拟

Kusto 模拟请求者的主体标识来access资源。 若要使用模拟,请将 ;impersonate 追加到connection string。

示例
"https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv;impersonate"

主体必须拥有执行该操作所需的权限。 例如,Azure Blob Storage中,若要从 blob 中读取主体,主体需要Storage Blob 数据读取者角色,并导出到主体需要Storage Blob 数据参与者角色的 Blob。 若要了解详细信息,请参阅 Azure Blob Storage/Data Lake Storage Gen2 access control

托管标识

Azure Data Explorer代表托管标识发出请求,并使用其标识来access资源。 对于系统分配的托管标识,请将 ;managed_identity=system 追加到connection string。 对于用户分配的托管标识,请将 ;managed_identity={object_id} 追加到connection string。

托管标识类型 示例
系统分配 "https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv;managed_identity=system"
用户分配 "https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv;managed_identity=12345678-1234-1234-1234-1234567890ab"

托管标识必须拥有执行该操作所需的权限。 例如,Azure Blob Storage中,若要从 blob 中读取托管标识,需要Storage Blob 数据读取者角色,并导出到托管标识需要Storage Blob 数据参与者角色的 Blob。 若要了解详细信息,请参阅 Azure Blob Storage/Data Lake Storage Gen2 access control

注意

托管标识仅在特定的Azure Data Explorer流中受支持,并且需要设置托管标识策略。 有关详细信息,请参阅托管标识概述

共享Access (SAS) 令牌

在Azure portal中,使用所需权限生成 SAS 令牌

例如,若要从外部读取storage指定读取和列出权限,并导出到外部storage指定写入权限。 若要了解详细信息,请参阅删除access使用共享access签名

使用 SAS URL 作为connection string。

示例
"https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv?sv=...&sp=rwd"

Microsoft Entra access 令牌

若要添加 base-64 编码的Microsoft Entra access 令牌,请将 ;token={AadToken} 追加到connection string。 令牌必须为资源https://storage.azure.com/

有关如何生成Microsoft Entra access 令牌的详细信息,请参阅 获取用于授权的access令牌

示例
"https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv;token=1234567890abcdef1234567890abcdef1234567890abc..."

Storage帐户access密钥

若要添加storage帐户access密钥,请将密钥追加到connection string。 在Azure Blob Storage中,将 ;{key}追加到connection string。 对于第 2 代Azure Data Lake Storage,请将 ;sharedkey={key}追加到connection string。

Storage帐户 示例
Azure Blob Storage "https://fabrikam.blob.core.chinacloudapi.cn/container/path/to/file.csv;ljkAkl...=="
Azure Data Lake Storage Gen2 "abfss://fs@fabrikam.dfs.core.chinacloudapi.cn/path/to/file.csv;sharedkey=sv=...&sp=rwd"

Amazon Web Services 编程access密钥

若要添加 Amazon Web Services access密钥,请将 ;AwsCredentials={ACCESS_KEY_ID},{SECRET_ACCESS_KEY} 追加到connection string。

示例
"https://yourbucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AWS1234567890EXAMPLE,1234567890abc/1234567/12345678EXAMPLEKEY"

Amazon Web Services S3 预签名 URL

使用 S3 预签名 URL 作为connection string。

示例
"https://yourbucketname.s3.us-east-1.amazonaws.com/file.csv?12345678PRESIGNEDTOKEN"

有关如何使用storage连接字符串的示例,请参阅: