1

我的工作区启用了托管 vnet。我已设法按照指南配置到默认 ADLS Gen 2 的专用链接:

https://docs.microsoft.com/en-us/azure/synapse-analytics/security/how-to-create-managed-private-endpoints

专用链接连接在复制活动(工作区中的管道)中工作。但是,从无服务器池访问存储帐户似乎不起作用。有这方面的指南吗?对于 AAD 直通、SAS 令牌或托管身份的使用是否有任何要求?目前完全支持吗?

错误:无法打开文件“”,因为它不存在或被另一个进程使用。

此错误是由具有托管标识方案的 AD 直通和数据源引起的。我可以使用“访问受信任的 Microsoft 服务”复选框(在 ADLS 中)让连接通过托管标识工作,因此应该正确配置它们。但是,当阻止对 ADLS 的访问时,连接将停止工作。

编辑:根据此链接:https ://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-storage-files-storage-access-control?tabs=user-identity ,访问防火墙保护的存储帐户只能使用托管标识和“允许受信任的 Microsoft..”设置打开。这是否也适用于私有链接,这意味着访问防火墙后面的存储帐户的唯一方法是允许访问 Microsoft 服务,并且私有链接不能用于无服务器池?

4

1 回答 1

1

是的,它也适用于私人链接。

正如您在那篇文章中看到的那样,目前您可以仅使用托管标识通过受防火墙保护的存储帐户运行查询。

在接下来的时间里,您可以选择使用更方便的用户身份(AAD 传递)来运行这些查询。

更新 1

现在,您可以在存储帐户防火墙设置中为 Azure Synapse 工作区配置例外。完整解释见官方文档

简短的摘要:

1.打开PowerShell或安装PowerShell

2. 安装更新的 Az. 存储模块:

Install-Module -Name Az.Storage -RequiredVersion 3.0.1-preview -AllowPrerelease

确保您使用 3.0.1 或更高版本。您可以通过运行以下命令检查您的 Az.Storage 版本:

Get-Module -ListAvailable -Name  Az.Storage | select Version

3. 连接到您的 Azure 租户:

Connect-AzAccount

4. 在 PowerShell 中定义变量:

  • 资源组名称 - 您可以在 Azure 门户的 Synapse 工作区概述中找到此名称。
  • 帐户名称 - 受防火墙规则保护的存储帐户的名称。
  • 租户 ID - 您可以在 Azure Active Directory 的 Azure 门户中的租户信息中找到此 ID。
  • 资源 ID - 你可以在 Azure 门户的 Synapse 工作区概述中找到它。
$resourceGroupName = "<resource group name>"
$accountName = "<storage account name>"
$tenantId = "<tenant id>"
$resourceId = "<Synapse workspace resource id>"

确保资源 ID 与此模板匹配。

以小写形式编写资源组很重要。一个资源 ID 的示例:

/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Synapse/workspaces/{name-of-workspace}

5.添加存储网络规则:

Add-AzStorageAccountNetworkRule -ResourceGroupName $resourceGroupName -Name $accountName -TenantId $tenantId -ResourceId $resourceId

6. 验证您的存储帐户中是否应用了该规则:

$rule = Get-AzStorageAccountNetworkRuleSet -ResourceGroupName $resourceGroupName -Name $accountName
$rule.ResourceAccessRules

在即将到来的时期,将提供从 Azure 门户 UI 配置存储帐户防火墙的选项。


更新 2

通过 Azure 门户 UI 进行配置就在这里

  1. 在 Azure 门户中搜索您的存储帐户。
  2. 转到设置部分下的网络。
  3. 在“资源实例”部分中,为 Synapse 工作区添加一个例外。
  4. 选择 Microsoft.Synapse/workspaces 作为资源类型。
  5. 选择您的工作区名称作为实例名称。
  6. 单击保存。
于 2020-11-25T22:19:21.133 回答