查看原文
其他

数据合规性难题,微软专家怎么解决?

有大咖有内容的 微软中国MSDN 2020-10-17

点击上方蓝字关注我们,Azure技术干货早知道!

本期作者


韩源 | 微软全渠道事业部,数字化转型顾问

“你有权保持沉默,但你所说的每一句话都将作为陈堂证供”小时候,每当观看美剧等影视作品,当听到警察向犯罪嫌疑人说出这句话时,揪着的那颗心总算可以放下了,坏人当然逃脱不了法律的制裁。

长大后才知道,这段话叫做“米兰达警告”(Miranda Warning),旨在确保证供的可信性,很多采用普通法系和大陆法系的国家/地区都会要求执法人员向嫌疑人宣读这段警告。当然对于绝大部分普通人来说,可能这辈子都不会听到警察向自己念这句话,但米兰达宣言背后所蕴含的精神和意义对我们每个人都非常重要!

举例来说,工作中,我们不可避免会处理一些可能比较特殊的数据,例如财务数据、医疗数据、合同条款等,这些数据不仅敏感,需要妥善管理和保护,而且按照各种法律法规以及制度的要求,可能需要在这些数据不被篡改、不被删除、不被覆盖等前提下保留足够长的时间,以便在面临诉讼或其他事务时可以作为可信、可靠的证据提供。这也就是所谓的电子数据合规保存。

例如美国的《萨班斯法案》、中国的《电子病历基本规范》等法规,都对不同行业所涉及到不同类型的电子数据保留期限提出了严格规定,并要求必需能通过系统的方式保证这些数据在保留期间不会被篡改。从存储的角度来说,这属于WORM(Write Once,Read Many;一次写入,多次读取)保护。

通常来说,要让相关系统符合这样的合规要求,需要巨大的投入来研发专门的功能或者部署专用软件。而是当企业上云后,如何为云端存储的敏感数据如何提供这种保障就显得更加重要。

Azure存储服务所提供的“不可变Blob”存储功能,不妨了解一下!

不可变Blob | 轻松实现WORM保护

不可变Blob,这是Azure存储服务新提供的一项功能。该功能可让用户以WORM状态存储业务关键型数据对象,并根据用户指定的时间间隔使数据保持不可擦除且不可修改的状态。在设置的保留时间间隔期间,具备权限的用户可以创建和读取其中的内容,但不能修改或删除Blob对象。目前,所有Azure区域都已经为常规用途v2和Blob存储帐户启用了不可变存储(v1存储帐户需要升级为v2,具体方法可以参阅这里)。

该功能目前已获得SEC 17a-4 (f)、CFTC 1.31 (d)、FINRA和其他多项法规要求的认证,能够以容器为单位对容器内所有对象生效,确保用户(哪怕是具备帐户管理特权的用户)无法修改或删除其中的数据。同时每个容器包含一个策略审核日志,该日志可以显示针对锁定的基于时间的保留策略执行的最多七个基于时间的保留命令,并包含用户ID、命令类型、时间戳和保留时间间隔。对于依法保留,日志可以包含用户ID、命令类型、时间戳和依法保留标记。严格的依法保留策略以及严谨可追溯的日志记录功能,确保用户可以万无一失地满足合规要求。

Azure Blob存储的不可变存储支持两类WORM或不可变策略:基于时间的保留和依法保留,各自特征如下:

基于时间的保留

• 对于某个存储帐户,使用锁定的基于时间的不可变策略的最大容器数为1,000个。

• 最小保留时间间隔为1天,最大值为146,000天(400年)。

• 对于容器,为延长锁定的基于时间的不可变策略的保留时间间隔而可执行的最大编辑次数为5。

• 对于容器,将根据策略的持续时间最多保留7个基于时间的保留策略审核日志。

依法保留

• 对于某个存储帐户,使用依法保留设置的最大容器数为1,000个。

• 对于每个容器,最大依法保留标记数为10。

• 依法保留标记的最小长度为3个字母数字字符,最大长度为23个字母数字字符。

• 对于容器,将根据策略的持续时间最多保留10个依法保留策略审核日志。

在容器上应用基于时间的保留策略或依法保留后,所有现有Blob会在30秒内转为不可变的WORM状态。所有上传到容器的新Blob也会转为不可变状态。所有Blob转为不可变状态后,将确认不可变策略,并且不允许对不可变容器中的现有对象和新对象执行覆盖或删除操作。

如有任何Blob受不可变策略的保护,则也不允许删除容器和帐户。如果至少存在一个Blob使用锁定的基于时间的保留策略或依法保留,则“删除容器”操作会失败。如果至少有一个WORM容器有依法保留,或者有一个Blob有活动的保留时间间隔,则存储帐户删除操作会失败。

配置不可变Blob

在了解了相关技术背景后,我们一起来试试看如何为自己的Blob配置WORM保护。上文曾经提过,Azure的WORM保护分为两种类型:基于时间的保留和依法保留。对于一个容器,我们既可以配置其中一种策略,也可以两种都配置。

而具体做法非常简单,进入创建好的容器,并在访问策略里添加策略即可:

如果配置依法保留,需要执行如下操作:

1. 添加一个依法保留的策略,在添加策略的下拉框选择依法保留:

2. 依法保留的意义在于按照某种规定防止数据被篡改,例如临时需要将一个数据锁定,但没有固定期限,直到取消。因此为了记录保留数据的原因,需要添加至少一个标记:

3. 添加完成,随后即可在不可变存储的策略中看到如下内容:

4. 随后作为测试,可以给这个容器中上传一个数据,以一个文本文件为例:

5. 当文件上传完成后,尝试着右键点击将其删除:

6. 此时会发现,由于启用了WORM保护,该文件已经无法删除:

7. 更新文件元数据的操作也无法进行:

8. 甚至编辑文件的操作也会失败:

9. 如果试图上传一个同名文件来覆盖原有文件呢?

10. 依然会失败:

通过上述操作可以发现,在启用了WORM保护的容器里,文件只能上传,不能被修改删除或覆盖,这就有效保证了原始数据的安全。

那么依法保留的生命周期是多久?从下图可以看到,依法保留的策略可以编辑:

例如我们可以在编辑页面对该策略的标记进行增加或删除:

当一个策略所有的标记都被删除时,该策略也会被自动删除。那么问题来了,如果一个有操作权限的人员删除策略后修改了原始文件,然后再重新添加策略,是否就意味着WORM保护失效?

将容器里的文件删除并重新加上相同的依法保留策略,虽然操作上完全可行,但所有这些操作都会被记录到存储账户的日志中:

并且在每条日志的详细信息里还可以看到执行每一步操作的具体人员:

因此在进行合规性审计时,并不只是简单查看是否启用了策略,还要检查日志,确认是否有非法操作。

如果配置基于时间的保留,需要执行如下操作:

1. 另一种WORM保护的策略是基于时间的保留:

2. 基于时间的保留需要设置需要设置一个保留期,以天为单位,范围是1——146000,即保留期为1天到400年。设置好基于时间的保留后,会立即生效,但是状态为已锁定:

3. 此时可随意编辑策略(修改保留期)甚至删除策略:

4. 这相当于给了一个反悔期(当然所有操作仍然会被记录)。但是如果选择锁定策略并确认后:

5. 策略的状态会变为已锁定:

6. 此时策略已经不可删除,只能编辑:

7. 同时编辑的次数不能超过5次,并且保留期只能增加不能减少:

8. 最后还有一点需注意:保留期满后,数据仍然不可修改,只能删除。

总结

我们可以为一个Blob同时启用两种策略,并让这两种策略同时生效,例如:

• 任意一个策略有效:数据不能做任何修改

• 两种策略都失效:收基于时间保留的影响,数据只能删除不能修改

我们知道,Azure Blob存储提供了热、冷、归档三个数据分层。而受WORM保护的数据仍可以在这三个层中任意转换,不会影响保留策略。

借助这样的功能,我们就可以为Azure中存储的数据提供有效保护,并作为审计的依据。由于可支持分层存储,因此可以在很长时间内用较低的成本满足数据合规的相关要求。

猜你喜欢

在Dynamics365V9版本里创建使用统一界面客户端的App

Flow自动抓取SharePoint站点列表并发送邮件和附件

Visual Studio 支持 Java?谣言止于智者



加入微软云开发者社区

获得更多咨询



快告诉好友们你正在看!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存