使用宇宙克隆工具备份和匿名化您的宇宙收藏


介绍

作为应用程序生命周期的一部分,我们需要定期用生产数据更新我们的非生产(开发/测试)环境。这有助于我们用正确的数据测试应用程序,并确保我们不会泄漏任何明显的缺陷。它还使我们能够测试应用程序的性能,因为我们将拥有与生产中相同的数据量。此外,对真实数据的测试必然会激发对应用程序发布的信心。

但是复制实时数据增加了风险和机密信息的暴露。非生产数据库很可能被开发人员和业务分析师访问,他们在实际环境中可能没有相同的访问权限。他们可能只对测试一个特性感兴趣,但不应该接触到实时系统本身的机密信息。为了降低这种风险,数据需要匿名化。即,个人可识别/机密信息被删除或替换为虚拟值。

因此,将数据从生产环境恢复到测试环境是一个由两部分组成的练习。第一部分涉及将数据库及其所有数据、代码(过程/视图)和设置(索引/RU)复制到测试环境中。第二部分涉及复制内容中机密或敏感信息的匿名化。

对于像SQL server这样的关系数据库管理系统,这可以通过现成的工具来实现,如SQL备份还原和静态数据屏蔽实用程序。对于Azure Cosmos DB(微软的NoSQL文档\多模型数据库),没有现成的工具来执行这些任务。Cosmos DB确实提供了一个数据迁移工具来帮助复制文档,但没有提供创建类似集合(带有分区键或索引)或复制相关代码(存储过程、UDF和触发器)的选项。此外,没有选项可以匿名化集合中的数据。这要求每个团队都熟悉。然后编写他们自己的脚本来更新文档和匿名化他们的数据。不用说,这个过程需要人工努力,并且有一个学习曲线与之相连。

宇宙克隆是一个实用程序,它的开发是为了帮助简化上述过程,并有助于宇宙收藏的复制和匿名化。该工具有助于在几次点击后创建您的宇宙收藏的备份副本,并提供选项来匿名化可能包含个人可识别或敏感信息的属性中的数据。

宇宙克隆提供了如下选项,使我们能够创建一个新的集合,所有的设置,代码和文件保持不变。作为源集合的精确副本,您也可以选择不使用这些设置

为了匿名化各种属性,该工具允许我们提供规则来指示要匿名化的属性以及替换它们的可能值。还可以选择对数据进行随机洗牌。

只需点击几下,工具就开始复制集合。它还允许我们保存用于数据拷贝的匿名化规则,以便它们可以在工具的后续运行中重用。

类似的备份和匿名化场景适用于各种情况,例如:

报告和分析

例如,您需要生成与公司不同部门的人数相关的分析。但你的cosmos收藏里也有Mobile上的信息和各个员工的联系方式,这势必与目前的场景无关。在您的数据副本中匿名化这些字段符合您的最大利益。您可以定义如下的简单规则,并运行该工具来匿名化这些数据。

在大多数情况下,匿名化与手头的分析或分析无关的数据是明智的。

发布后的数据验证

考虑在一段时间之前和之后需要数据副本进行验证的情况。例如,您已经对集合结构进行了一些重大更改,包括对一些列的分区键和索引进行了更改,并在同一个集合中添加了一些新的对象类型。您需要一个备份副本来验证或比较旧数据。

调试问题

对于需要调试无法在非生产环境中复制的生产问题的情况,这很可能是由测试中未考虑的远程数据情况引起的。您需要还原集合的副本以进行调试,而不是冒着用测试值修改实时数据的风险。

GDPR合规部

GDPR等数据保护法规现在要求在所有非生产环境中实现数据匿名化。微软的核心服务工程团队有一项强制性任务,即匿名化他们的底层环境,这项任务每90天重复一次。在这种情况下,使用宇宙克隆工具可以节省开发人员的手动工作,因为他们不再需要编写、测试、更新或维护自己的匿名脚本。

结论

随着Azure Cosmos DB的使用不断增加,自助功能(如备份、恢复和数据收集的匿名化)变得越来越重要。宇宙克隆是一个便利的工具,有助于这项努力。现成的匿名选项是一个巨大的优势,有助于在Cosmos数据库上执行同类数据屏蔽任务中的第一个。这一定会节省日常备份和恢复任务的时间,这些时间可以用于更高效的工作。宇宙克隆有可能成为每个宇宙开发人员/数据库管理员武库中的一个方便工具。

有关该工具的完整演练,请访问GitHub 页面,因为该工具现已公开。

声明:请注意这不是Azure Cosmos DB团队的官方工具,而是微软IT内部独立开发人员开发的实用程序。