Global Azure的功能比mooncake要提前起码半年左右,有些可能还会更久,在Global其实去年就有一项功能叫做不可变blob,但是目前mooncake还看不到,这项功能是在blob里的,主要功能是用于满足数据方面的一些合规性

    

    顾名思义,这项功能开启之后,可以保证blob的内容不会被篡改,在一些特定的场景下,这项功能会非常有用


    不可变的存储可帮助医疗保健组织、金融机构和相关行业—特别—的经纪人组织可以安全地存储数据。 在任何情况下,也可以利用不可变的存储来防止修改或删除关键数据。
    

    典型的应用程序包含:

    法规遵从:Azure Blob 存储的不可变存储可帮助组织达到 SEC 17a-4(f)、CFTC 1.31(d)、FINRA 和其他法规要求。 


    保护文档保留: Azure Blob 存储的不可变存储确保任何用户(包括具有帐户管理权限的用户)不能修改或删除数据。


    法定持有:对于 Azure Blob 存储,不可变的存储使用户能够将敏感信息存储在所需持续时间内的诉讼或业务使用状态,直到删除保留为止。 此功能不仅限于法律用例,还可以被视为基于事件的保留或企业锁,需要根据事件触发器或公司策略来保护数据。


    

    不可变存储支持以下功能:

    基于时间的保留策略支持 :用户可以将策略设置为在指定的时间间隔内存储数据。 设置基于时间的保留策略时,可以创建和读取 blob,但不能修改或删除 blob。 保持期到期后,可以删除但不能覆盖 blob。

    

    法律封存政策支持 :如果保留间隔未知,则用户可以设置法律持有来存储不可变的数据,直到清除法定持有。 设置合法保留策略后,可以创建和读取 blob,但不能修改或删除 blob。 每个法律封存都与用作标识符字符串的用户定义的字母数字标记(如事例 ID、事件名称等)相关联。

    

    支持所有 Blob 层: WORM 策略独立于 Azure Blob 存储层,将应用到所有层:热层、冷层和存档层。 用户可将工作负荷的数据转换为最具成本效益的层,同时保持数据的不可变性。

    

    容器级配置: 用户可在容器级别配置基于时间的保留策略和法定保留标记。 通过使用简单的容器级设置,用户可以创建并锁定基于时间的保留策略、扩展保留时间间隔、设置并清除法定保留,等等。 这些策略将应用到容器中的所有 Blob,不管是现有的还是新的 Blob。

    

    审核日志记录支持:每个容器都包含策略审核日志。 它为锁定的基于时间的保留策略显示最多7个基于时间的保留命令,并包含用户 ID、命令类型、时间戳和保留间隔。 对于法定保留,日志包含用户 ID、命令类型、时间戳和法定保留标记。 此日志在策略的生存期内保留,并依照 SEC 17a-4 (f)规范。 " Azure 活动日志" 显示了所有控制平面活动的更全面的日志;启用Azure 诊断日志时,会保留并显示数据平面操作。 由用户负责根据法规要求或其他要求永久存储这些日志。


    

    不可变blob包含两种不同类型功能:

  • 基于时间的保留策略

  • 法定保留

    

    两种方式各自有各自的使用特点,基于时间的保留策略需要设定一个具体的时间段,在时间段内blob无法被删除或者修改,但有些场景下可能不确定需要保留的时间具体有多长,这种场景下则适合使用法定保留的功能,法定保留不需要设定时间段,而且还可以基于特定的case id进行标记,两种模式都是基于container级别进行定义

    


    首先来看基于时间的保留策略如何配置,在container直接右键选择Access Policy

Azure Storage系列之不可变blob_第1张图片


    在policy type这里选择time-based retention,然后输入需要保留的时间,时间会以天为单位,最长可以达到146000Azure Storage系列之不可变blob_第2张图片


    完成设置之后,可以看到状态会是unlock,在这个状态下,我们还可以对策略进行修改或者删除,但是一旦lock之后,就只能对保留期限进行延长,而不允许缩短,并且不可以删除策略,如果需要lock策略的话,直接右键即可

Azure Storage系列之不可变blob_第3张图片



    当设置好策略之后,再进行编辑就会遇到报错

    Azure Storage系列之不可变blob_第4张图片



    


    如果是法律保留的话,可以看到,不需要设置保留期限,只需要设置好相关的tag即可

    Azure Storage系列之不可变blob_第5张图片


    

    这两种策略是可以叠加一起使用的

    Azure Storage系列之不可变blob_第6张图片



    两种策略叠加使用时遵循以下原则

方案 Blob状态
Blob操作被拒绝
容器和账户保护
Blob 的有效保留时间间隔尚未到期,并且/或者法定保留已设置 不可变:不可删除和写入 Put Blob1,put 块1,put 块列表1,删除容器,删除 blob,设置 blob 元数据,Put 页,设置 Blob 属性,快照 Blob,增量复制 Blob,追加块2 容器删除被拒绝;存储帐户删除操作被拒绝
Blob 的有效保留间隔已过期,未设置合法保留 仅仅不可写入(允许删除操作) Put Blob1,put 块1,put 块列表1,设置 blob 元数据,put 页面,设置 Blob 属性,快照 Blob,增量复制 Blob,追加块2 如果受保护的容器中至少有1个 blob,则容器删除操作被拒绝;仅对锁定的基于时间的策略删除存储帐户
未应用保留策略(无基于时间的保留期和无法定保留标记) 可变


    还有一点就是策略不仅仅只对当前container里的内容生效,之后上传到container里的内容一样可以生效

    对于一些特定的需要保留的文件,建议上传到blob之后,应用保留策略进行保护,以免被人篡改