你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

已启用 Azure Arc 的 SQL 托管实例的标识和访问管理

本文介绍已启用 Azure Arc 的 SQL 托管实例标识和访问管理 (IAM) 体系结构、设计注意事项以及针对各种方案的建议。

已启用 Arc 的 SQL 托管实例依赖于已启用 Azure Arc 的 Kubernetes 群集上运行的已启用 Azure Arc 的数据服务扩展。 下面是在此关键设计领域中对标识和访问管理非常重要的各个已启用 Azure Arc 的数据服务组件。

  • Azure Arc 数据控制器
  • Azure Arc Active Directory 连接器
  • 已启用 Azure Arc 的 SQL 托管实例

体系结构

SQL 身份验证

支持使用本地 SQL 标识对已启用 Arc 的 SQL 托管实例进行 SQL 身份验证。 在管理员首次从 Windows 登录以创建登录凭据期间,会使用 SQL 身份验证方法;在授予数据库访问权限以使用 Active Directory 身份验证访问已启用 Arc 的 SQL 托管实例时,也会使用该身份验证方法。 Grafana 和 Kibana 仪表板目前仅支持基本身份验证。

Active Directory 身份验证

对于许多企业组织而言,Active Directory (AD) 身份验证是对本地和云环境中运行的 SQL Server 强制实施基于角色的访问控制 (RBAC) 的标准配置。 已启用 Azure Arc 的 SQL 托管实例支持 AD 身份验证,以将现有 SQL Server 数据库无缝迁移到已启用 Arc 的 SQL 托管实例,并通过最新的 SQL Server 版本和安全修补程序来保持最新状态。

在已启用 Arc 的 Kubernetes 群集上运行时,已启用 Arc 的 SQL 托管实例使用 Kerberos 密钥表来支持 AD 身份验证Active Directory 连接器是已启用 Arc 的数据服务中用于支持 AD 身份验证的关键组件。

下面是生成和管理 Kerberos 密钥表并在已启用 Arc 的 SQL 托管实例中使用它的两种方法。 以下部分解释了方案以及何时使用相应的密钥表模式。

系统管理的密钥表

系统管理的密钥表模式的 Active Directory 连接器简化了已启用 Arc 的 SQL 托管实例的 AD 帐户生成和密钥表管理。 AD 连接器负责创建服务帐户、分配服务主体生成密钥表来支持 AD 身份验证。 对于想要简化操作而不需要精细控制的客户,建议使用此方法来自动管理 AD 身份验证的密钥表。

Diagram that shows Active Directory authentication using system-managed keytab mode.

图 1:系统管理的密钥表模式的 AD 连接器的体系结构示意图

客户管理的密钥表

客户管理的密钥表模式的 Active Directory 连接器为严格遵守信息技术基础结构库 (ITIL) 流程的客户提供管理服务帐户、服务主体和生成密钥表的完全控制权,并提供职责分离以便将活动委托给不同的团队。

Diagram that shows Active Directory authentication using customer-managed keytab mode.

图 2:客户管理的密钥表模式的 AD 连接器的体系结构示意图

Azure Arc 数据控制器

在“直接连接”模式下安装已启用 Arc 的数据服务扩展时,将为已启用 Arc 的数据服务创建一个托管标识,以便与 Azure 资源管理器 (ARM) API 控制平面和数据平面进行交互。 在管理已启用 Arc 的 SQL 托管实例时,Azure Arc 数据控制器使用此托管标识执行这些操作。

在“间接连接”模式下,Azure Arc 数据控制器需要使用拥有所需权限服务主体来定期将使用情况信息(例如清单和资源使用情况)导出到 Azure。

已启用 Azure Arc 的数据服务上的 Azure RBAC

下面是将监视指标发布到 Azure Monitor 所需的 RBAC 权限。

角色 说明
监视指标发布者 允许针对 Azure 资源发布指标。

安全访问已启用 Azure Arc 的 SQL 托管实例

以下体系结构示意图显示如何使用 AD 身份验证进行安全访问。

Diagram that shows secure access to Arc-enabled SQL Managed Instance using AD authentication.

以下体系结构示意图显示如何使用 SQL 身份验证进行安全访问。

Diagram that shows secure access to Arc-enabled SQL Managed Instance using SQL authentication.

设计注意事项

查看 Azure 登陆区域的标识和访问管理关键设计领域,以评估已启用 Azure Arc 的数据服务对整体标识和访问模型的影响。

已启用 Arc 的数据服务部署

  • 根据已启用 Arc 的数据服务部署类型(例如手动或自动),考虑用于部署已启用 Azure Arc 的数据服务的标识。 此标识可以是来自Active Directory 域服务(AD DS)或第三方 LDAP 提供程序的 Microsoft Entra 帐户或轻型目录访问协议(LDAP)帐户,具体取决于在本地或其他云环境中管理已启用 Azure Arc 的 Kubernetes 访问控制的基础方式。

  • 根据基于组的访问控制和基于单个标识的访问控制造成的操作开销,考虑这两个选项是否更适合由信息技术 (IT) 组织用来管理已启用 Arc 的数据服务。

  • 根据组织的安全治理和职责分离要求,考虑是要使用已启用 Azure Arc 的 Kubernetes 管理员、数据库管理组 (DMG) 还是应用程序管理组来部署和管理已启用 Azure Arc 的数据服务。

  • 考虑系统管理的密钥表和客户管理的密钥表之间的使用模式,部署 Azure Arc AD 连接器来支持已启用 Arc 的 SQL 托管实例中的 AD 身份验证。 与管理用于支持 AD 身份验证的服务帐户和密钥表的完全客户控制相比,这两种方法都具有简化操作的优势。

已启用 Arc 的数据服务访问

已启用 Arc 的 SQL 托管实例访问控制完全独立于基础的已启用 Azure Arc 的 Kubernetes 访问控制。 做出几项设计决策来管理已启用 Arc 的 SQL 托管实例并为使用者应用程序和最终用户提供访问权限非常重要。

  • 根据组织的应用程序或服务功能,在 AD 身份验证与 SQL 身份验证之间做出选择。 由于并非所有应用程序都支持 AD 身份验证,因此请查看组织的安全策略以了解允许的身份验证类型,并在使用 SQL 身份验证时强制实施所需的附加安全控制。

  • 当云原生服务需要身份验证并连接到已启用 Arc 的 SQL 托管实例数据库,以将数据提取和引入到数据分析服务中时,请考虑使用通过 SQL 加入 AD 的本地自承载运行时虚拟机或物理机来进行验证和连接到已启用 Arc 的 SQL 托管实例。

设计建议

除以下设计建议外,另请查看已启用 Azure Arc 的 Kubernetes 的标识和访问管理设计建议,因为已启用 Arc 的 SQL 托管实例部署在已启用 Arc 的 Kubernetes 群集上。

已启用 Arc 的数据服务部署

  • 对于遵循严格 ITIL 流程的企业组织,通过创建不同的安全组将负责管理已启用 Arc 的数据服务的团队与负责管理已启用 Arc 的 Kubernetes 的团队相隔离,然后分配已启用 Arc 的数据服务的管理权限。

  • 对 AD 身份验证支持使用系统管理的密钥表模式,以卸除域帐户和密钥表管理开销来简化操作。

  • 使用客户管理的密钥表模式进行 AD 身份验证,以完全控制服务帐户的创建和密钥表的生成。

  • 创建专用的 AD 组织单位 (OU) 来委托访问控制,并简化所有已启用 Arc 的 SQL 托管实例帐户的操作。

  • 对 Kerberos 密钥表文件使用 AES256 加密,并避免使用 RC4 密码。

已启用 Arc 的数据服务访问

  • 在适当的情况下,对 SQL 托管实例使用 AD 身份验证以将用户生命周期管理负担转移到目录服务,并使用 AD 中的安全组来管理用户权限。

  • 仅当无法使用 AD 身份验证时,才对已启用 Arc 的 SQL 托管实例使用 SQL 身份验证这种最不建议的身份验证类型。

  • 在 AD 身份验证可以满足组织的需求后,避免在日常操作中使用 SQL 身份验证。 仅将 SQL 身份验证用于紧急访问数据库服务器以进行数据库管理的情况。

  • 在不支持 AD 身份验证的部署方案中,使用已启用 Arc 的 SQL 托管实例中支持的 SQL 身份验证。 确保使用强密码策略并启用审核,以监视 SQL 用户身份以及授予他们的数据库服务器和数据库访问权限。

基于角色的访问控制 (RBAC)

在系统管理的密钥表模式下,需要在 Active Directory OU 级别为已启用 Arc 的 SQL 托管实例提供域服务帐户 (DSA) 的显式权限。

下面是所需的 RBAC 权限。 对于客户管理的密钥表模式,不需要在 Active Directory OU 级别拥有域服务帐户的显式权限。

Azure Arc AD 连接器权限

权限 说明
“读取所有属性” 允许读取目录对象的所有属性。
写入所有属性 允许更新目录对象的所有属性。
“创建用户对象” 允许在 OU 中创建目录对象。
“删除用户对象” 允许在 OU 中删除目录对象。
重置密码 允许在 OU 中重置用户对象的密码。

SQL Server 角色

后续步骤

有关已启用 Azure Arc 的 SQL 托管实例标识和访问管理的详细信息,请参阅以下文章: