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.
Azure Blob 存储 在容器中存储大量非结构化对象数据。 它经常成为数据外泄、勒索软件和公众暴露事件的目标。 本文提供了针对 Blob 容器、Blob 和 Azure Data Lake Storage 分层命名空间的安全建议。
Note
本文介绍了Azure Blob 存储特有的安全实践。 关于账户级别的安全指导,请参见“保护您的 Azure 存储 账户”。
网络安全
使用 Azure Front Door 为自定义域名、静态网站以及任何公开提供的 Blob 内容提供前端服务:使用托管证书在 Azure Front Door 终止 TLS 连接,启用 WAF,并限制存储账户的公共网络访问,使得只有 Front Door 可以访问源站。 Azure 存储 自己的自定义域功能不支持托管的 TLS 证书,而 Front Door 增加了 WAF 保护、速率限制和日志功能,而匿名容器访问则缺乏这些功能。 欲了解更多信息,请参见 Use Azure Front Door with Azure 存储 blobs。
未使用时禁用静态网站终结点:启用静态网站功能时,
false容器仍可被公开读取,即使allowBlobPublicAccess为$web。 关闭不需要的账户上的静态网站功能。 有关详细信息,请参阅 Azure 存储 中的静态网站托管。
身份和访问管理
匿名公众访问
禁用存储账户的匿名公开读取权限:将属性
false设置为allowBlobPublicAccess,使账户中无论容器级别配置如何,都不能有任何容器是公开的。 有关详细信息,请参阅概述:修正对 blob 数据的匿名读取访问。审计并整改任何现有的匿名访问:请参阅整改对 Blob 数据的匿名读取访问中的指导,查找允许公共访问的容器,并将其更改为专用访问,或改为基于 SAS 的显式共享。
blob级SAS和ABAC
在blob访问中优先选择用户委派SAS而非服务SAS:用户委派共享访问签名(SAS)通过Microsoft Entra凭证签名。 撤销用户委托密钥会立即使基于该密钥签发的所有 SAS 失效,这为服务 SAS 和帐户 SAS 所不具备的撤销机制提供了实现途径。 有关详细信息,请参阅创建用户委托 SAS。
通过存储访问策略限定服务 SAS 的范围,以实现可撤销性:如果你必须使用服务 SAS,请将其关联到容器上的存储访问策略。 然后你可以修改或删除策略,撤销所有引用它的SAS。 没有策略,服务SAS只能通过轮换账户密钥来撤销,这会影响账户内的其他所有SAS。 有关详细信息,请参阅定义存储的访问策略。
使用blob索引标签通过ABAC进行条件访问:将blob索引标签与基于属性的访问控制(ABAC)条件结合,赋予具有特定标签值的blob仅读访问权限——例如。
Classification=Public这种方法允许单一角色分配服务多个呼叫者,而无需访问敏感的标记数据。 更多信息请参见 “授权使用 ABAC 条件访问斑点”。
数据保护
使用blob加密范围来隔离特定容器或blob的加密:加密范围允许你在单个账户内以容器级或blob级的粒度应用不同的密钥或密钥轮换策略。 该功能适用于共享账户但需要每个租户密钥控制的多租户工作负载。 更多信息请参见 Blob 存储 的加密范围。
对于那些绝不能以明文形式出现在服务器上的 Blob 数据,请使用客户端加密:在上传前于客户端加密 Blob 内容。 SDK 与 Azure 密钥保管库 集成,以进行密钥管理。 与服务端CMK结合使用,实现分层保护。 更多信息请参见 “blobs客户端加密”。
不可变性与 WORM
为受监管数据配置基于时间的保留策略:应用容器级或版本级的时间级保留,以在固定时间内防止对blob的修改或删除。 版本级别的不可变性提供了更细致的控制,你可以在单个版本上启用或扩展。 有关详细信息,请参阅使用不可变的存储来存储业务关键型 Blob 数据。
使用由法律或调查需要驱动的无限期保留的法律保留:法律保留会阻止删除,直到获得授权的用户明确解除该保留,且没有固定期限。 有关详细信息,请参阅使用不可变的存储来存储业务关键型 Blob 数据。
锁定保留策略使其不可修改:拥有适当权限的用户可以缩短或删除已解锁的保留策略。 锁定保单使得保留期变成单向承诺。 仅在确认保单期限后才进行锁定。 欲了解更多信息,请参见 配置容器的不可变性策略。
对象复制与复制操作
限制对象复制到你控制的源账户:配置目标账户允许的源-账户列表,使只有已知且受信任的源账户能推送数据。 有关详细信息,请参阅 “配置对象复制”。
防止跨租户对象复制:禁止其源账户和目的账户分别存在于不同 Microsoft Entra 租户中的复制策略。 这一限制阻止授权用户向外部租户配置复制。 有关详细信息,请参阅防止 Microsoft Entra 租户间的对象复制。
限制允许的复制操作范围:配置账户仅允许同一租户或同一订阅内的源账户进行复制操作。 这种配置阻止了一条常见的泄露路径——从私人账户复制到攻击者控制的账户。 欲了解更多信息,请参见 “允许的复制操作范围”。
备份和恢复
启用 blob 版本管理以保留写入和删除时的旧版本:启用版本控制后,每次写入或删除操作都会创建一个新版本,并保持之前的状态。 你可以寻址并恢复版本。 有关详细信息,请参阅 Blob 版本控制。
启用软删除(软删除)用于blob和容器:软删除会保留已删除的blob和容器一段固定期限,这样你可以在这段时间内恢复它们。 分别设置容器级和blob级软删除,并启用两者。 更多信息请参见 针对blob的软删除 和 容器的软删除。
为块 Blob 帐户启用时间点还原:时间点还原与版本控制和软删除配合使用,可将一定范围内的块 Blob 还原到特定的过去时间戳。 此功能对勒索软件恢复非常有帮助。 点点恢复需要启用版本控制、blob软删除和更改订阅源。 有关详细信息,请参阅块 Blob 的时间点还原。
启用用于审核和取证的更改源:更改源是一个按顺序排列且不可更改的日志,用于记录帐户中 Blob 的每项更改。 除了实现时间点恢复外,它还为调查提供了可持久保存的审计记录。 有关详细信息,请参阅 Azure Blob 存储中的变更馈送支持。
Azure Data Lake Storage
Data Lake Storage 为 Blob 存储 添加了层级命名空间和类似 POSIX 的访问控制列表(ACL)。 ACL 与 RBAC 配合使用——通过 RBAC 授予粗粒度访问权限,再通过 ACL 在文件系统内进行细化。
使用RBAC进行粗粒度访问,使用ACL进行细粒度访问:在容器或账户层面分配内置的blob RBAC角色,以授予广泛访问权限。 然后,在目录和文件上使用ACL限制容器内的访问。 不要仅用ACL来获取用户在整个容器中所需的权限。 RBAC在评估和审计方面更为高效。 有关详细信息,请参阅 Azure Data Lake Storage 中的访问控制模型。
对目录应用默认ACL以继承新子项的权限:默认ACL适用于设置ACL后创建的文件和目录。 在目录层设置它们,以避免管理单个文件的ACL。 欲了解更多信息,请参见 Azure Data Lake Storage 中的访问控制列表。
在创建账户时启用分层命名空间:你无法在现有账户上启用分层命名空间,除非迁移。 如果你知道某个工作负载使用 Data Lake Storage 语义,建议一开始就启用它,而不是事后迁移。 欲了解更多信息,请参见 Azure Data Lake Storage 层级命名空间。
日志记录和监控
禁用匿名访问后针对匿名访问命中发出警报:当你将
allowBlobPublicAccess设置为false时,筛选存储日志中的AuthenticationType == "Anonymous",并对任何命中发出警报。 这些命中要么表明客户端配置错误,要么是探测尝试。 有关详细信息,请参阅监视 Azure 存储。追踪斑点索引标签的变异以实现分类漂移:如果你用斑点索引标签来驱动ABAC访问条件,这些标签的变化会直接改变谁可以读取斑点。 记录并对
SetBlobTags针对敏感容器执行的操作发出警报。 欲了解更多信息,请参见“管理并查找带有blob索引标签的Azure Blob 存储数据。
相关安全文章
- 保护您的 Azure 存储 账户——跨界 Azure 存储 安全指南。
- 保护您的 Azure 文件存储 - 文件共享安全。
- 保护你的 Azure 队列存储 - 队列专用安全。
- 保护 Azure 表存储 - 表存储专属安全性。