<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 使用私有链接实现 Databricks 和存储账户的跨租户连接
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
本文档详细介绍了使用 **Azure Private Link** 实现不同租户之间 **Azure Databricks** 和 **Azure Storage Account** 的跨租户连接。该解决方案的核心目标是提供私有且安全的网络连接,确保流量通过 Microsoft 骨干网络传输,避免公共互联网的风险。背景在于云计算环境中,企业常常需要在多租户场景下共享数据资源,而传统方法可能面临安全和合规挑战。该方案适用于数据密集型行业,如金融和医疗,解决的问题包括数据访问的安全性和网络隔离需求。
## 实施步骤
1. 在租户 A 中创建启用了 **Hierarchical Namespace (HNS)** 的 **Storage Account**,并捕获其资源 ID 和子资源名称(如 blob)。这一步确保存储账户具备数据湖功能,为后续跨租户访问奠定基础。
2. 在租户 B 中创建 **Private Endpoint**,使用租户 A 中 **Storage Account** 的资源 ID 和子资源名称。这一过程触发跨租户连接请求,依赖 **Azure Private Link** 的底层机制来建立私有网络通道。
3. 等待并处理 **Private Endpoint** 的批准请求:在租户 A 中,通过 **Storage Account > Networking > Private endpoint connections** 界面进行批准。所需的最低角色包括 **Private Link Service Owner** 或 **Network Contributor**,以确保访问控制的合规性。
4. 更新 **DNS 配置**:配置 **Private DNS Zone** 以解析 **Private Endpoint** 的网络接口卡 (NIC),从而实现从租户 B 到租户 A 存储账户的可靠名称解析。这一步骤是确保连接稳定的关键环节。
5. 配置多租户 **Service Principal (SPN)**:在租户 B 中创建多租户应用注册,然后在租户 A 中授予管理员同意,并分配 **RBAC** 角色(如 **Storage Blob Data Contributor**)到目标 **Storage Account**。这提供基于角色的安全访问,逻辑上衔接前述网络步骤以完成整体安全框架。
## 方案客户价值
- **提升数据安全性和合规性**:通过 **Azure Private Link** 避免公共互联网流量,显著降低数据泄露风险,尤其在多租户环境中,相比传统公开连接方案更具优势。
- **简化跨租户数据访问**:允许 **Databricks** 在租户 B 安全访问租户 A 的存储资源,提高数据处理的效率和灵活性,但需注意初始配置可能增加短期管理开销。
- **优化资源利用**:启用 **HNS** 的存储账户支持大规模数据湖场景,帮助客户降低数据传输延迟和成本,与传统 IaaS 架构相比,提供更集中的数据管理机制。
## 涉及的相关产品
- **Azure Databricks**:在租户 B 中托管数据分析工作负载,作为数据处理引擎,与 **Storage Account** 交互以实现跨租户数据访问。
- **Azure Storage Account**:在租户 A 中提供存储服务,支持 **HNS** 功能,充当数据源角色,确保数据隔离和访问控制。
- **Azure Private Link**:核心连接技术,创建 **Private Endpoint** 以建立私有网络通道,保障流量安全。
- **Private DNS Zone**:辅助解析域名,确保连接的可靠性,在方案中处理网络名称解析。
- **Service Principal (SPN)**:用于身份验证和授权,提供 **RBAC** 访问,桥接多租户间的安全交互。
## 技术评估
该解决方案的技术先进性体现在利用 **Azure Private Link** 实现私有端点连接,提升了跨租户数据传输的安全性和性能,可行性高,尤其适用于大规模云环境。但其适用范围限于 Azure 生态,可能在非 Azure 平台上扩展性受限。作为优势,方案通过 **RBAC** 和多租户 SPN 加强了访问控制,减少了公共网络依赖;然而,潜在限制包括配置过程的复杂性,可能导致初次实施时管理开销增加,以及依赖 Microsoft 骨干网络的单一性,在多云策略中需额外考虑互操作性挑战。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 使用 Private Link 实现 Databricks 与存储账户之间的跨租户连接
**原始链接:** [https://techcommunity.microsoft.com/blog/azurenetworkingblog/cross-tenant-connectivity-between-databricks-and-storage-account-using-private-l/4406700](https://techcommunity.microsoft.com/blog/azurenetworkingblog/cross-tenant-connectivity-between-databricks-and-storage-account-using-private-l/4406700)
**发布时间:** 2025-05-19
**厂商:** AZURE
**类型:** TECH-BLOG
---
Azure Networking Blog
# 使用 Private Link 实现 Databricks 与存储账户之间的跨租户连接
2025 年 5 月 19 日
## Azure Private Link 启用跨不同租户的私有和安全连接到 Azure PaaS 服务,通过利用私有端点 (Private Endpoint)。这种架构确保流量保持在 Microsoft 主干网络上,完全绕过公共互联网。本文将指导您完成使用 Private Link 设置 Azure Databricks 与 Azure 存储账户之间的跨租户连接的步骤。
#### **高层架构**

#### **跨租户架构概述**
- 该设置涉及两个独立的 Azure 租户:
- 租户 A:托管存储账户。
- 租户 B:托管 Azure Databricks。
- 租户 B 中的 Databricks 通过私有端点 (Private Endpoint) 访问租户 A 中的启用分层命名空间 (Hierarchical Namespace,HNS) 的存储账户。
- 租户 A 中的存储账户已启用 HNS(即适合 Azure Data Lake Storage Gen2)。
- 需要配置私有 DNS 区域 (Private DNS Zone) 以解析存储账户的私有端点 (Private Endpoint) 的网络接口卡 (NIC),从而实现名称解析。
- 需要一个多租户服务主体 (Service Principal,SPN) 来:
- 允许租户 B 中的 Databricks 安全、托管地访问租户 A 中的存储账户。
- 为存储账户提供基于角色的访问控制 (RBAC) 访问。
#### **配置跨租户私有端点 (Private Endpoint) 的步骤**
1. 在租户 A 中创建启用 HNS 的存储账户。
- 捕获资源 ID 和子资源名称(blob)。
2. 在租户 B 中创建私有端点 (Private Endpoint):
- 使用来自租户 A 的存储账户的资源 ID 和子资源名称。
3. 创建私有端点 (Private Endpoint) 后:
- 将在租户 A 中触发批准请求。
- 批准请求位于:
存储账户 > 网络 > 私有端点连接
4. 在租户 A 中批准私有端点 (Private Endpoint) 请求:
- 所需的最低角色:
- Private Link 服务所有者
- 或网络参与者
5. 更新 DNS 配置:
- 确保私有 DNS 区域 (Private DNS Zone) 解析私有端点的网络接口卡 (NIC),以允许从租户 B 成功解析存储账户的名称。
#### **多租户 SPN 配置和访问**
1. 在租户 B 中创建多租户应用程序注册 (SPN)。
2. 在租户 A 中,使用以下命令授予管理员同意:
- 替换:
- {organization} = 租户 A 的目录 (Tenant) ID
- {client-id} = SPN 的应用程序 (Client) ID
3. 批准管理员同意所需的最低 Entra ID 角色:
- 应用程序管理员
4. 同意授予后,在租户 A 中为 SPN 分配 RBAC:
- 角色:存储 Blob 数据参与者
- 范围:针对目标存储账户
#### **Azure 文档参考**
- 多租户 SPNs: <https://learn.microsoft.com/en-us/entra/identity-platform/howto-convert-app-to-be-multi-tenant>
- 租户范围管理员同意: [Grant tenant-wide admin consent to an application - Microsoft Entra ID | Microsoft Learn](<https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/grant-admin-consent?pivots=portal#construct-the-url-for-granting-tenant-wide-admin-consent>)
更新于 2025 年 5 月 19 日
版本 1.0
<!-- AI_TASK_END: AI全文翻译 -->