Important
带有 Intel Software Guard Extensions (Intel SGX) enclave 的 Always Encrypted 将于 2027 年 10 月 31 日终止支持。 在此日期之前迁移受影响的数据库。 2027年10月31日之后,Azure 会自动将仍处于 DC 系列计算层的任何数据库迁移到支持的标准系列(非 DC)计算层,并启用基于虚拟化的安全(VBS)隔区。
本文介绍了Always Encrypted with Intel SGX隔区的替代方案及其所需更改。 在选择替代方案前 ,请仔细审查安全考虑 因素。 Intel SGX 和 VBS 隔区提供了针对来自访客操作系统和主机的攻击的不同保护。
开始之前,确认你能查看并修改目标Azure SQL逻辑服务器、数据库和弹性池。 对于PowerShell,安装Az PowerShell模块并登录Azure。 对于 Azure CLI,请先安装 Azure CLI,然后登录 Azure。 盘点连接到受影响数据库的应用程序,以便在迁移过程中更新其驱动程序、连接字符串和证明设置。
识别使用直流系列的数据库
在规划迁移之前,识别所有使用 DC 系列的独立数据库和弹性池。 DC系列弹性池中的每个数据库都会受到影响。
- Azure 门户
- PowerShell
- Azure CLI
- 在 Azure 门户中,访问你的 Azure SQL 逻辑服务器。
- 在 概览 页面,查找 可用资源。 该表列出了逻辑服务器上的数据库。
- 在 定价层 列中,选择筛选器,然后将列表筛选为 DC-series。
- 记录过滤列表中的每个数据库。 这些数据库使用DC系列和Intel SGX隔区。
- 对你环境中托管 Azure SQL 数据库的每台逻辑服务器重复这些步骤。
选择迁移路径
选择符合您工作负载安全和应用需求的迁移路径。 以以下比较为起点,并在做出生产变更前仔细审查所选路径的详细指南。
| 迁移路径 | 使用此选项时 | Attestation |
|---|---|---|
| Azure SQL 数据库 with VBS enclaves | 你希望继续使用 Azure SQL 数据库,并且 VBS 安全飞地满足你的安全要求。 | Azure SQL 数据库中的 VBS enclave 不支持证明。 |
| Azure 机密 VM 上具有 VBS 飞地的 SQL Server | 你需要一个由硬件强制实施的隔离边界,以帮助保护来宾操作系统免受主机操作员访问。 | 主机保护程序服务 (HGS) 证明是可选的。 |
将单个数据库迁移到 VBS 安全区
使用此方式可保留 Azure SQL 数据库 中已启用 enclave 的功能。
- 选择满足您的工作负载性能和可用性要求的受支持的标准系列(非 DC)硬件配置。
- 将数据库迁移到所选硬件配置。
-
为数据库启用 VBS 安全区域。 启用 VBS 飞地会将数据库属性
VBS设置为preferredEnclaveType。 - 请查看 VBS飞区的客户端驱动要求(无认证),如有必要,并更新应用驱动。
- 更新每个应用连接以使用
Noneenclave attestation protocol,并移除Microsoft Azure 证明 URL。 确切的连接字符串关键字取决于客户端驱动程序。 - 完成 迁移后验证。
将弹性池迁移到 VBS 飞地
弹性池中的所有数据库都继承了池的安全区域配置。 使用此路径保留 Azure SQL 弹性池数据库中 enclave enabled 的功能。
- 选择满足池性能和可用性要求的受支持的标准系列(非 DC)配置。 有关更改池配置的信息,请参见 在 Azure SQL 数据库 中管理弹性池。
-
启用弹性池的VBS隔壁。 启用VBS飞区会将池属性设置为
preferredEnclaveTypeVBS。 - 请查看 VBS飞区的客户端驱动要求(无需证明),并在必要时更新应用驱动。
- 更新每个应用连接以使用
Noneenclave attestation protocol,并移除Microsoft Azure 证明 URL。 具体的连接字符串关键字取决于客户端驱动。 - 完成池中的每个数据库的迁移后验证。
迁移到 Azure 机密 VM 上的 SQL Server
如果你需要一个硬件强制边界,帮助保护访客操作系统免受主机操作员访问,可以考虑这条路径。 Azure 机密虚拟机对 VM 内存进行加密,并提供与 Intel SGX 安全飞地不同的安全属性。 根据您的安全和合规要求进行评估这些差异。
- 将 SQL Server 部署到 Azure confidential 虚拟机。
- 选择是否使用飞地证明:
- 按照您选择的认证选项的指导,在SQL Server实例上配置Always Encrypted并使用VBS隔壁。
- 规划数据库、登录、密钥、应用连接和依赖资源的迁移。
- 根据数据库大小、网络配置、停机需求和支持的数据库对象选择数据迁移选项。 常见选项包括:
- Azure 数据工厂:使用复制活动,将 Azure SQL 数据库 连接器用作源,将 SQL Server 连接器用作接收器。 ADF 将“始终加密”列视为二进制值或密文值,无需访问列主密钥即可移动这些列。
- 智能批量复制:使用 智能批量复制 将 Azure SQL 数据库 的架构和数据复制到 SQL Server。 迁移前请仔细审查工具的前提条件和限制。
- BACPAC:考虑为较小数据库设立BACPAC,其对象由数据层应用支持。 始终加密的数据在导出和导入过程中始终保持加密状态,并且 BACPAC 包含始终加密功能的密钥元数据。 更多信息请参见 “使用始终加密导出和导入数据库”、“ 导出BACPAC文件”和“ 导入BACPAC文件以创建新数据库”。
- 更新应用程序连接字符串,使其与 SQL Server 实例和所选证明选项相匹配。
- 完成 迁移后验证。
验证迁移
在将工作负载迁移到生产环境之前:
- 确认应用程序是否能在启用始终加密的情况下连接。
- 运行代表性查询,使用加密列,包括如果目标环境使用安全隔壁,则需要隔壁计算的查询。
- 验证加密列的插入、更新、删除和索引操作是否符合预期。
- 测试应用性能,并在必要时调整目标计算资源配置。
- 测试您的业务连续性、灾难恢复和故障切换程序。 如果工作负载使用支持隔区的操作,所有数据库副本都必须支持安全隔壁。
- 在完成切换前,监控应用程序是否出现安全区域、证明和查询错误。