本文概述了标识和访问管理的设计注意事项和建议。 它侧重于在 Microsoft Azure 上部署云规模分析平台。 由于云规模分析是一个任务关键型组件,因此在设计解决方案时,应遵循有关 Azure 登陆区域设计区域的指南。
本文基于有关 Azure 登陆区域的注意事项和建议。 有关详细信息,请参阅 标识和访问管理设计区域。
数据着陆区设计
云规模分析使用 Microsoft Entra 标识支持访问控制模型。 该模型使用 Azure 基于角色的访问控制(Azure RBAC)和访问控制列表。
查看团队执行的 Azure 管理与行政活动。 评估 Azure 上的云规模分析。 确定组织中可能的最佳职责分配。
角色分配
为了在数据平台中自主开发、交付和提供数据产品,数据应用程序团队需要在 Azure 环境中拥有多个访问权限。 请务必注意,应该为开发和更高环境使用不同的访问模型。 尽可能使用安全组来减少角色分配的数量,并简化 RBAC 权限的管理和评审过程。 这一步至关重要,因为可以为每个订阅创建的角色分配数量有限。
开发环境应该可供开发团队及其各自的用户标识访问。 通过此访问权限,用户可以更快地循环访问、了解 Azure 服务中的某些功能,并有效地解决问题。 访问开发环境有助于开发或增强基础结构即代码和其他代码工件。
确认实现在开发环境中按预期工作后,可以持续推出到更高的环境。 更高级环境(例如测试和生产环境)应仅面向数据应用程序团队。 只有服务主体才能访问这些环境。 因此,所有部署都必须通过服务主体标识,使用持续集成和持续交付管道来运行。 在开发环境中,提供对服务主体和用户标识的访问权限。 在较高环境中,仅限制对服务主体标识的访问权限。
若要在数据应用程序资源组中的资源之间创建资源和角色分配,必须提供 Contributor
和 User Access Administrator
权限。 这些权限允许团队在 Azure Policy 的边界内在其环境中创建和控制服务。
为了降低数据外泄的风险,云分析最佳做法是使用专用终结点。 Azure 平台团队通过策略阻止其他连接选项,因此数据应用程序团队需要访问数据登陆区域的共享虚拟网络的权限。 此访问权限对于为计划使用的服务设置必要的网络连接至关重要。
若要遵循最低特权原则,请避免不同数据应用程序团队之间的冲突,并明确分离团队。 云规模分析最佳做法是为每个数据应用程序团队创建专用子网,并为该子网或子资源范围创建 Network Contributor
角色分配。 此角色分配允许团队使用专用终结点加入子网。
这两个角色分配允许在这些环境中自助部署数据服务。 为了解决成本管理问题,组织应向资源组添加成本中心标记,以实现交叉收费和分布式成本所有权。 此方法可提高团队内的认识,并帮助确保他们做出有关所需 SKU 和服务层级的明智决策。
若要在数据登陆区域中启用对其他共享资源的自助使用,需要执行一些额外的角色分配。 如果需要访问 Azure Databricks 环境,组织应使用 Microsoft Entra ID 中的 SCIM 同步来提供访问权限。 此同步机制非常重要,因为它会自动将用户和组从 Microsoft Entra ID 同步到 Azure Databricks 数据平面。 当个人离开组织或业务时,它还会自动删除访问权限。 在 Azure Databricks 中,向数据应用程序团队提供对预定义群集 Can Restart
访问权限,以便他们可以在工作区中运行工作负荷。
各个团队需要访问 Microsoft Purview 帐户,以在其各自的数据登陆区域中发现数据资产。 团队通常需要编辑他们拥有的编录数据资产,以提供额外的详细信息,例如数据所有者和专家的联系信息。 Teams 还需要能够提供有关数据集中每一列所描述和包含内容的更精细信息。
RBAC 要求摘要
若要自动部署数据登陆区域,需要以下角色:
角色名称
描述
范围
将所有数据服务的专用 DNS 区域部署到单个订阅和资源组中。 在数据管理着陆区部署期间创建的全局 DNS 资源组上需要有服务主体 Private DNS Zone Contributor
。 部署专用终结点的 A 记录时需要此角色。
(资源组范围)/subscriptions/{{dataManagement}subscriptionId}/resourceGroups/{resourceGroupName}
若要在数据登陆区域网络与数据管理登陆区域网络之间设置虚拟网络对等互连,服务主体需要 Network Contributor
远程虚拟网络资源组的访问权限。
(资源组范围)/subscriptions/{{dataManagement}subscriptionId}/resourceGroups/{resourceGroupName}
需要此权限才能与其他数据工厂共享部署到 integration-rg
资源组的自承载集成运行时。 还需要在相应的存储帐户文件系统上分配 Azure 数据工厂和 Azure Synapse Analytics 托管标识访问权限。
(资源范围) /subscriptions/{{dataLandingZone}subscriptionId}
注意
在生产方案中,可以减少角色分配的数量。 仅当在数据管理登陆区域和数据登陆区域之间设置虚拟网络对等互连时,才需要 Network Contributor
角色。 如果没有此角色,DNS 解析将失败。 此外,入站和出站流量会被删除,因为无法访问 Azure 防火墙。
如果通过具有 deployIfNotExists
效果的 Azure 策略自动部署专用终结点的 DNS A 记录,则不需要 Private DNS Zone Contributor
角色。 User Access Administrator
角色也是如此,因为可以使用 deployIfNotExists
策略自动化部署。
数据产品的角色分配
在数据登陆区域中部署数据产品需要以下角色分配:
角色名称
描述
范围
将所有数据服务的专用 DNS 区域部署到单个订阅和资源组中。 服务主体需要是在数据管理登陆区域部署期间创建的全局 DNS 资源组上的 Private DNS Zone Contributor
。 部署相应的专用终结点的 A 记录时需要此角色。
(资源组范围)/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
将所有数据集成流式处理服务部署到数据登陆区域订阅内的单个资源组中。 服务主体需要对该资源组进行 Contributor
角色分配。
(资源组范围)/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
若要将专用终结点部署到在数据登陆区域部署期间创建的指定 Azure 专用链接子网,服务主体需要对该子网 Network Contributor
访问权限。
(子资源范围)/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName} /providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}"
访问其他资源
在 Azure 外部,数据应用程序团队需要访问存储库来存储代码项目、有效协作,并通过 CI/CD 持续向更高环境推出更新和更改。 应提供项目板,以允许敏捷开发、冲刺规划、任务跟踪和管理用户反馈和功能请求。
若要自动执行 CI/CD,请建立与 Azure 的连接。 此过程通过服务主体在大多数服务中完成。 由于此要求,团队必须有权访问服务主体才能在其项目中实现自动化。
管理对数据的访问
使用 Microsoft Entra 组管理对数据的访问。 将用户主体名称或服务主体名称添加到Microsoft Entra 组。 然后将这些组添加到服务,并向组授予权限。 此方法允许精细的访问控制。
若要详细了解如何提高数据管理登陆区域和管理数据资产的数据登陆区域的安全性,请参阅 Azure 中针对云规模分析的身份验证。