选择并配置防范数据安全威胁的适当方法(包括软删除、备份、版本控制以及不可变存储)
Azure 存储为 blob 存储和 Azure Data Lake Storage Gen2 提供数据保护,在你需要恢复已删除或覆盖的数据的情况下可以帮助你做好准备。 在发生了可能导致数据泄露的事件后,应考虑如何最充分地保护数据,这一点很重要。
基本数据保护建议
如果你正在查找存储帐户的基本数据保护覆盖范围以及它所包含的数据,Microsoft 建议从以下步骤开始:
在存储帐户上配置 Azure 资源管理器锁定,以防止帐户被删除或配置发生变化。
为存储帐户启用容器软删除,以恢复已删除的容器及其内容。
按固定间隔保存 blob 的状态:
- 对于 blob 存储工作负载,每次覆盖 blob 时,启用 blob 版本控制以自动保存数据的状态。
- 对于 Azure Data Lake Storage 工作负载,请生成手动快照,以保存特定的时间点的数据状态。
数据保护选项概述
下表总结了 Azure 存储中可用于常见数据保护方案的选项。 选择适用于你的情况的方案,以详细了解可供你使用的选项。 并非所有功能都适用于启用了分层命名空间的存储帐户。
方案 | 数据保护选项 | 建议 | 保护权益 | 可用于 Data Lake Storage |
---|---|---|---|---|
阻止删除或修改存储帐户。 | Azure 资源管理器锁定 了解详细信息... |
使用 Azure 资源管理器锁定锁定所有存储帐户,以防止删除存储帐户。 | 防止存储帐户被删除或配置被更改。 无法防止帐户中的容器或 blob 被删除或覆盖。 |
是 |
在你控制的时间间隔防止删除 blob 版本。 | blob 版本上的不可变性策略 了解详细信息... |
为了满足法律或法规遵从性要求等目的,在单个 blob 版本上设置一个不可变性策略以保护业务关键文档。 | 防止删除 blob 版本和覆盖其元数据。 每个覆盖操作都会创建一个新版本。 如果至少有一个容器启用了版本级不可变性,存储帐户也会受到保护,无法删除。 如果容器中至少存在一个 blob,则容器删除将失败。 |
否 |
在你控制的时间间隔防止容器及其 blob 被删除或修改。 | 容器上的不可变性策略 了解详细信息... |
在容器上设置一个不可变性策略以保护关键业务文档,例如,为了满足法律或法规遵从性要求。 | 防止容器及其 blob 被删除和覆盖。 当合法保留或锁定的基于时间的保留策略生效时,存储帐户也会受到保护,无法删除。 未设置任何永久性策略的容器不会受到防删除的保护。 |
是 |
在指定的时间间隔内还原已删除的容器。 | 容器软删除 了解详细信息... |
为所有存储帐户启用容器软删除,最短保留间隔为七天。 与容器软删除一起启用 blob 版本控制和 blob 软删除,以保护容器中的各个 blob。 在单独的存储帐户中存储需要不同保留期的容器。 |
删除的容器及其内容在保留期内可以被还原。 只能还原容器级别的操作(例如删除容器)。 如果删除了容器中的单个 blob,则无法通过容器软删除来还原该容器中的单个 blob。 |
是 |
在覆盖 blob 时,自动将其状态保存在以前的版本中。 | Blob 版本控制 了解详细信息... |
对于某些存储帐户,如果需要对 blob 数据进行最佳保护,则启用 blob 版本控制,以及容器软删除和 blob 软删除。 将不需要版本控制的 blob 数据存储在不同的帐户中以限制成本。 |
每个 blob 写入操作都会创建一个新版本。 如果删除或覆盖当前版本,则可以从以前的版本还原 blob 的当前版本。 | 否 |
在指定的时间间隔内还原已删除的 blob 或 blob 版本。 | Blob 软删除 了解详细信息... |
为所有存储帐户启用 blob 软删除,最短保留间隔为七天。 启用 blob 版本控制和容器软删除以及 blob 软删除功能,以实现 blob 数据的最佳保护。 在单独的存储帐户中存储需要不同保留期的 blob。 |
在保留期内可以还原已删除的 blob 或 blob 版本。 | 是 |
将一组块 blob 还原到以前的时间点。 | 时间点还原 了解详细信息... |
要使用时间点还原恢复到以前的状态,请将应用程序设计为删除单个块 blob,而不是删除容器。 | 可以将一组块 blob 还原为过去特定时间点的状态。 只能还原在块 blob 上执行的操作。 对容器、页 blob 或追加 blob 执行的任何操作都不会还原。 |
否 |
手动保存 blob 在给定时间点的状态。 | Blob 快照 了解详细信息... |
如果版本管理不适合你的方案(由于成本或其他考虑因素)或者存储帐户已启用分层命名空间,则建议采用 blob 版本控制的替代方法。 | 如果 blob 被覆盖,则可以从快照还原 blob。 如果删除该 blob,则快照也将被删除。 | 是,处于预览状态 |
blob 可以被删除或覆盖,但数据会定期复制到另一个存储帐户。 | 使用 Azure 存储对象复制或 AzCopy 或 Azure 数据工厂等工具将数据复制到第二个帐户的自创解决方案。 | 为了让保护更安心,建议采用,以防意外的有意操作或不可预测的情况。 在主帐户所在的同一区域中创建第二个存储帐户,以避免产生传出流量费用。 |
如果主要帐户以任何方式泄露,则可以从第二个存储帐户中还原数据。 | 支持 AzCopy 和 Azure 数据工厂。 不支持对象复制。 |
按资源类型进行的数据保护
下表根据所保护的资源总结了 Azure 存储数据保护选项。
数据保护选项 | 保护帐户免被删除 | 保护容器免被删除 | 保护对象免被删除 | 保护对象免被覆盖 |
---|---|---|---|---|
Azure 资源管理器锁定 | 是 | 否 | No | 否 |
blob 版本上的不可变性策略 | 是 | 是 | 是 | 是 |
容器上的不可变性策略 | 是 | 是 | 是 | 是 |
容器软删除 | 否 | 是 | 否 | 否 |
Blob 版本控制 | 否 | No | 是 | 是 |
Blob 软删除 | 否 | No | 是 | 是 |
时间点还原 | 否 | No | 是 | 是 |
Blob 快照 | 否 | No | No | 是 |
用于将数据复制到第二个帐户的自带解决方案 | 否 | 是 | 是 | 是 |
了解 Azure 存储中数据保护的细微差别揭示出诸多操作见解和限制:
- Azure 资源管理器锁不会保护容器免被删除。
- 如果至少为一个容器启用了版本级不可变存储,则存储帐户删除操作将会失败。
- 如果容器中至少存在一个 Blob,无论策略是已锁定还是已解锁,容器删除操作都将失败。
- 覆盖 Blob 当前版本的内容会创建新版本。 不可变性策略可防止覆盖版本的元数据。
- 虽然法定保留或锁定的基于时间的保留策略在容器范围内有效,但存储帐户也受到保护免被删除。
- 对于 Data Lake Storage 工作负载,当前不支持。
- 对于 Blob 存储和 Data Lake Storage 工作负载,AzCopy 和 Azure 数据工厂是支持的选项。 仅 blob 存储工作负载支持对象复制。
恢复删除或覆盖的数据
如果需要恢复已覆盖或已删除的数据,则如何继续取决于已启用的数据保护选项以及受影响的资源。 下表描述了可以执行哪些操作来恢复数据。
删除或覆盖的资源 | 可能的恢复操作 | 恢复的要求 |
---|---|---|
存储帐户 | 尝试恢复已删除的存储帐户 |
存储帐户最初是用 Azure 资源管理器部署模型创建的,并且是在过去 14 天内删除。 删除原始帐户后,尚未创建同名的新存储帐户。 |
容器 | 恢复软删除容器及其内容 |
已启用容器软删除并且容器软删除保留期尚未过期。 |
容器和 Blob | 还原另一个存储帐户中的数据 | 所有容器和 blob 操作都已有效地复制到另一个存储帐户。 |
Blob(任何类型) | 从以前的版本还原 Blob |
已启用 blob 版本控制,且 blob 具有一个或多个以前版本。 |
Blob(任何类型) | 恢复已软删除的 blob |
已启用 blob 软删除,且软删除保留间隔尚未过期。 |
Blob(任何类型) | 从快照还原 blob |
Blob 具有一个或多个快照。 |
块 blob 集 | 将一组块 Blob 恢复到它们在较早时间点的状态 |
已启用时间点还原,且还原点在保留间隔内。 存储帐户未泄露或损坏。 |
Blob 版本 | 恢复软删除的版本 |
已启用 Blob 软删除 |
成本注意事项摘要
数据保护选项 | 成本注意事项 |
---|---|
存储帐户的 Azure Resource Manager 锁定 | 在存储帐户上配置锁定是免费的。 |
blob 版本上的不可变性策略 | 在容器上启用版本级不可变性是免费的。 在 blob 版本上创建、修改或删除基于时间的保留策略或法定保留会产生写入事务费用。 |
容器上的不可变性策略 | 在容器上配置永久性策略是免费的。 |
容器软删除 | 为存储帐户启用容器软删除是免费的。 软删除容器中的数据将按与活动数据相同的费率进行计费,直到软删除容器被永久删除。 |
Blob 版本控制 | 为存储帐户启用 blob 版本控制是免费的。 启用 blob 版本控制后,对该帐户中的 blob 进行的每次写入或删除操作都将创建一个新版本,这可能会导致增加容量成本。 Blob 版本根据唯一的块或页进行计费。 因此,随着基础 blob 与特定版本分离,成本也会随之增加。 更改 blob 或 blob 版本的层级可能会对计费产生影响。 有关详细信息,请参阅定价和计费。 根据需要使用生命周期管理来删除旧版本,以控制成本。 有关详细信息,请参阅通过自动执行 Azure Blob 存储访问层来优化成本。 |
Blob 软删除 | 为存储帐户启用 blob 软删除是免费的。 软删除 blob 中的数据将按与活动数据相同的费率进行计费,直到软删除 blob 被永久删除。 |
时间点还原 | 为存储帐户启用时间点还原是免费的;但是,启用时间点还原还会启用 blob 版本控制、软删除和更改源,其中每一项都可能产生其他费用。 执行还原操作时,会按时间点还原收费。 还原操作的成本取决于要还原的数据量。 有关详细信息,请参阅定价和计费。 |
Blob 快照 | 根据唯一的块或页对快照中的数据计费。 因此,随着基础 blob 与快照分离,成本也会随之增加。 更改 blob 或快照的层级可能会对计费产生影响。 有关详细信息,请参阅定价和计费。 根据需要使用生命周期管理来删除旧快照,以控制成本。 有关详细信息,请参阅通过自动执行 Azure Blob 存储访问层来优化成本。 |
将数据复制到另一个存储帐户 | 在第二个存储帐户中维护数据将产生容量和事务成本。 如果第二个存储帐户所在的区域不同于源帐户,则将数据复制到第二个帐户将额外产生传出流量费用。 |
灾难恢复
Azure 存储始终保留数据的多个副本,以防范各种计划内和计划外事件,包括暂时性的硬件故障、网络中断或断电、大范围自然灾害等。 冗余可确保即使遇到故障,存储帐户也能达到其可用性和持久性目标。
当数据中心发生故障时,如果存储帐户在两个地理区域之间冗余(异地冗余),则可以选择将帐户从主要区域故障转移到次要区域。
对于启用了分层命名空间的存储帐户,目前不支持客户管理的故障转移。