Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
容器级写一次读多次 (WORM) 策略是一种可以在容器级别设置的不可变性策略。 若要详细了解 Azure Blob 存储的不可变存储,请参阅 在写入一次、读取多次(WORM)状态下存储业务关键的 blob 数据
Availability
容器级 WORM (CLW) 策略适用于所有新容器和现有容器。 这些策略适用于常规用途 v2、高级块 blob、常规用途 v1(旧版)和 Blob 存储(旧版)帐户。
Tip
建议将常规用途 v1 帐户升级到常规用途 v2,以便可以利用更多功能。 有关升级现有常规用途 v1 存储帐户的信息,请参阅升级存储帐户。
分层命名空间帐户支持此功能。 如果启用了分层命名空间,在 blob 处于不可变状态时,不能重命名或移动该 blob。 Blob 名称和目录结构提供重要的容器级数据,在不可变策略生效后不可对其进行修改。
此功能没有启用过程,它自动适用于所有容器。 若要详细了解如何在新容器或现有容器上设置策略,请参阅配置容器级 WORM 不可变性策略。
Deletion
容器级 WORM 策略集的容器必须为空,然后才能删除容器。 如果在启用了分层命名空间的容器上设置了策略,则目录必须为空,然后才能将其删除。
可以使用控制平面操作来删除具有容器级 WORM 策略的容器。 所有此类请求都发送到Azure 资源管理器 URL。 例如,PowerShell 命令 Remove-AzRmStorageContainer 使用控制平面操作以删除容器。 相比之下,Remove-AzStorageContainer 命令会尝试使用数据平面操作,但该操作不会成功。 同样,Azure CLI命令az storage container-rm delete使用控制平面操作,而 az 存储容器删除依赖于数据平面操作。 还可以通过Azure门户删除容器,因为它使用控制平面操作执行任务。
Scenarios
| Scenario | 禁止的操作 | Blob 保护 | 容器保护 | 帐户保护 |
|---|---|---|---|---|
| 容器受到具有容器范围的有效基于时间的保留策略的保护,或者法定保留已生效。 | 删除 Blob、上传 Blob1、设置 Blob 元数据、上传页面、设置 Blob 属性、快照 Blob、增量复制 Blob、追加区块2 | 容器中所有 blob 的内容和用户元数据不可变。 | 如果容器级 WORM 策略已生效,则容器删除操作将会失败。 | 如果某个容器中至少存在一个 blob,则存储帐户删除操作将会失败。 |
| 容器受过期的时间保留策略保护,该策略适用于容器范围,并且没有任何法律保留生效。 | 上传 Blob1、设置 Blob 元数据、上传页面、设置 Blob 属性、创建 Blob 快照、增量复制 Blob、附加块2 | 允许执行删除操作。 不允许执行覆盖操作。 | 如果容器中至少存在一个 Blob,无论策略是已锁定还是已解锁,容器删除操作都将失败。 | 如果至少有一个容器具有已锁定的基于时间的保留策略,则存储帐户删除操作将会失败。 已解锁的策略不提供删除保护。 |
注释
已解锁的策略不提供删除保护。
这两者都适用:
- 受启用且无锁定的基于时间的保留策略和/或法律保全保护的容器(方案 1)。
1 Azure 存储允许 Put Blob 操作创建新的 blob。 不允许针对不可变容器中的现有 blob 路径执行后续覆盖操作。
2 仅在启用了 allowProtectedAppendWrites 或 allowProtectedAppendWritesAll 属性的策略中允许执行 追加块 操作。
允许对受保护的追加 Blob 进行写入
追加 Blob 是由数据块构成,并针对审核和日志记录场景中所需的追加操作进行了优化。 按照设计,追加 Blob 只允许将新块添加到 Blob 末尾。 无论是否不可变,基本上都不允许修改或删除追加 Blob 中的现有块。 若要进一步了解 Append Blob,请参阅关于 Append Blob。
allowProtectedAppendWrites 属性设置允许将新块写入到追加 Blob,同时保持不可变性保护和合规性。 如果已启用此设置,则可以直接在受策略保护的容器中创建追加 Blob,然后使用“追加块”操作继续将新数据块添加到追加 Blob 的末尾。 只能添加新块,而不能修改或删除任何现有块。 启用此设置不会影响块 Blob 和页 Blob 的不可变性行为。
AllowProtectedAppendWritesAll 属性设置提供的权限与 allowProtectedAppendWrites 属性相同,并添加了将新块写入块 blob 的功能。 Blob 存储 API 不提供应用程序直接执行此操作的方法。 但是,应用程序可以使用 Data Lake Storage API 中提供的追加和刷新方法来实现此目的。 此外,此属性还允许Microsoft应用程序(例如Azure 数据工厂)使用内部 API 追加数据块。 如果工作负荷依赖于这些工具中的任何一种,则可以使用此属性来避免在这些工具尝试将数据追加到 Blob 时可能出现的错误。
追加 Blob 在有效保留期内保持不可变状态。 由于可以在最初创建追加 Blob 后附加新数据,因此确定保留期的方式略有不同。 有效保留期是追加 Blob 的上次修改时间和用户指定的保留时间间隔之差。 类似地,当延长保留间隔时,不可变存储将使用用户指定的保留间隔的最新值来计算有效保留期。
例如,假设用户创建了一个基于时间的保留策略,该策略已启用 allowProtectedAppendWrites 属性,保留间隔为 90 天。 当天在容器中创建了追加 Blob logblob1,而接下来的 10 天,新日志会持续添加到该追加 Blob,因此,logblob1 的有效保留期是从当天开始算起的 100 天(最后一次追加的时间 + 90 天) 。
解锁的基于时间的保留策略允许随时启用或禁用 allowProtectedAppendWrites 和 allowProtectedAppendWritesAll 属性设置。 锁定基于时间的保留策略后,无法更改 allowProtectedAppendWrites 和 AllowProtectedAppendWritesAll 属性设置。
Limits
对于存储帐户,具有不可变策略(基于时间的保留或法定保留)的最大容器数为 10,000。
容器中法定保留标记的最大数量一次最多为 10 个。
法定保留标记的最小长度为三个字母数字字符。 最大长度为 23 个字母数字字符。
在策略持续时间内,最多可为一个容器保留 10 个法定保留策略审核日志。
当存在容器不可变性策略时,会阻止目录的递归删除。 若要删除目录,请确保该目录为空,然后在不使用递归标志的情况下删除。