你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
存储帐户和可靠性
Azure 存储帐户非常适合于需要快速且一致的响应时间或每秒输入输出操作 (IOP) 量很高的那些工作负载。 存储帐户包含所有 Azure 存储数据对象,其中包括:
- Blob
- 文件共享
- 队列
- 表
- 磁盘
存储帐户为数据提供唯一的命名空间,可通过 HTTP
或 HTTPS
从任何位置访问该数据。
有关支持不同功能的不同类型的存储帐户的详细信息,请参阅存储帐户的类型。
若要了解 Azure 存储帐户如何支持应用程序工作负荷的复原能力,请参阅以下文章:
以下部分包括设计注意事项、配置清单以及特定于 Azure 存储帐户和可靠性的建议配置选项。
设计注意事项
Azure 存储帐户包括以下设计注意事项:
常规用途 v1 存储帐户可以访问所有 Azure 存储服务,但可能没有最新功能,其单 GB 定价也可能不是最低的。 在大多数情况下,建议使用常规用途 v2 存储帐户。 使用 v1 的原因包括:
- 应用程序需要经典部署模型。
- 应用程序为事务密集型,或者使用很大的异地复制带宽,但不需要大的容量。
- 使用早于 2014 年 2 月 14 日的存储服务 REST API,或使用早于
4.x
的版本的客户端库。 无法升级应用程序。
有关详细信息,请参考存储帐户概述。
- 存储帐户名称必须为 3 到 24 个字符,并且只能包含数字和小写字母。
- 有关当前 SLA 规范,请参考存储帐户 SLA。
- 转到 Azure 存储冗余,确定哪种冗余选项最适合特定方案。
- 存储帐户名称在 Azure 中必须是唯一的。 没有两个存储帐户可以有相同的名称。
清单
你是否已针对可靠性配置了 Azure 存储帐户?
- 启用适用于 Blob 数据的软删除。
- 使用Microsoft Entra ID 授权访问 Blob 数据。
- 通过 Azure RBAC 向Microsoft Entra安全主体分配权限时,请考虑最小特权原则。
- 使用托管标识访问 Blob 和队列数据。
- 使用 Blob 版本控制或不可变 Blob 存储业务关键型数据。
- 限制存储帐户的默认 Internet 访问。
- 启用防火墙规则。
- 限制对特定网络的网络访问。
- 允许受信任的 Microsoft 服务访问此存储帐户。
- 在所有存储帐户中启用“需要安全传输”选项。
- 将共享访问签名 (SAS) 令牌限制为仅用于
HTTPS
连接。 - 避免和阻止使用共享密钥授权访问存储帐户。
- 定期重新生成帐户密钥。
- 为发布给客户端的任何 SAS 制定吊销计划。
- 对临时 SAS 服务 SAS 或帐户 SAS 使用短期过期时间。
配置建议
请考虑以下建议,在配置 Azure 存储帐户时优化可靠性:
建议 | 说明 |
---|---|
启用适用于 Blob 数据的软删除。 | Azure 存储 Blob 的软删除允许在删除 Blob 数据后将其恢复。 |
使用Microsoft Entra ID 授权访问 Blob 数据。 | Microsoft Entra ID 提供优于共享密钥的安全性和易用性,以授权对 Blob 存储的请求。 建议尽可能对 blob 和队列应用程序使用Microsoft Entra授权,以最大程度地减少共享密钥中固有的潜在安全漏洞。 有关详细信息,请参阅使用 Microsoft Entra ID 授权访问 Azure Blob 和队列。 |
通过 Azure RBAC 向Microsoft Entra安全主体分配权限时,请考虑最小特权原则。 | 将角色分配给用户、组或应用程序时,只向该安全主体授予执行任务所需的权限。 限制对资源的访问有助于防止意外和恶意滥用数据。 |
使用托管标识访问 Blob 和队列数据。 | Azure Blob 和队列存储支持Microsoft Entra Azure 资源的托管标识进行身份验证。 Azure 资源的托管标识可以使用 Azure 虚拟机 (VM) 、函数应用、虚拟机规模集和其他服务中运行的应用程序Microsoft Entra凭据来授权访问 Blob 和队列数据。 通过将 Azure 资源的托管标识与Microsoft Entra身份验证结合使用,可以避免使用在云中运行的应用程序存储凭据以及服务主体即将过期的问题。 有关详细信息,请参考使用 Azure 资源托管标识授予对 Blob 和队列数据的访问权限。 |
使用 Blob 版本控制或不可变 Blob 存储业务关键型数据。 | 请考虑使用 Blob 版本控制来维护对象的以前版本,或者使用法定保留和基于时间保留的策略以 WORM(写入一次,读取多个)状态存储 Blob 数据。 可读取不可变 Blob,但不能在保留时间间隔内修改或删除。 有关详细信息,请参考使用不可变存储来存储业务关键型 Blob 数据。 |
限制存储帐户的默认 Internet 访问。 | 默认情况下,对存储帐户的网络访问不受限制,并且对来自 Internet 的所有流量开放。 应仅尽可能向特定 Azure 虚拟网络授予对存储帐户的访问权限,或使用专用终结点允许虚拟网络 (VNet) 上的客户端通过专用链接安全地访问数据。 有关详细信息,请参考对 Azure 存储使用专用终结点。 对于需要通过 Internet 访问的存储帐户,可以例外。 |
启用防火墙规则。 | 配置防火墙规则以将存储帐户的访问权限限制于源自指定的 IP 地址或范围,或源自 Azure 虚拟网络 (VNet) 中一系列子网的请求。 有关配置防火墙规则的详细信息,请参考配置 Azure 存储防火墙和虚拟网络。 |
限制对特定网络的网络访问。 | 使用内置的防火墙和虚拟网络功能或专用终结点,限制网络托管客户端的网络访问,可减少资源遭受网络攻击的风险。 |
允许受信任的 Microsoft 服务访问此存储帐户。 | 默认情况下,除非请求来自在 Azure 虚拟网络 (VNet) 内运行的服务或允许的公共 IP 地址,否则开启存储帐户的防火墙规则会阻止数据传入请求。 被阻止的请求包括来自其他 Azure 服务、来自 Azure 门户、来自日志记录和指标服务等的请求。 可以通过添加例外,允许受信任的 Microsoft 服务访问此存储帐户,从而允许来自其他 Azure 服务的请求。 若要详细了解如何为受信任的 Microsoft 服务添加例外,请参考配置 Azure 存储防火墙和虚拟网络。 |
在所有存储帐户中启用“需要安全传输”选项。 | 启用“需要安全传输”选项时,对存储帐户发出的所有请求都必须通过安全连接进行。 通过 HTTP 发出的任何请求都将失败。 有关详细信息,请参考在 Azure 存储中要求安全传输。 |
将共享访问签名 (SAS) 令牌限制为仅用于 HTTPS 连接。 |
当客户端使用 SAS 令牌访问 Blob 数据时要求使用 HTTPS 有助于最大程度地降低被窃听的风险。 有关详细信息,请参考使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限。 |
避免和阻止使用共享密钥授权访问存储帐户。 | 建议使用Microsoft Entra ID 来授权对 Azure 存储的请求并阻止共享密钥授权。 对于需要共享密钥授权的方案,始终使用 SAS 令牌来分配共享密钥。 |
定期重新生成帐户密钥。 | 定期轮换帐户密钥可以降低向恶意参与者公开数据的风险。 |
为发布给客户端的任何 SAS 制定吊销计划。 | 如果 SAS 泄漏,你需要立即吊销该 SAS。 要撤销用户委托 SAS,请撤销用户委托密钥,以使与该密钥关联的所有签名快速失效。 要撤销与存储的访问策略关联的服务 SAS,可以删除存储的访问策略,重命名策略或将其到期时间更改为过去的时间。 |
对临时 SAS 服务 SAS 或帐户 SAS 使用短期过期时间。 | 即使某一 SAS 泄露,它也只会在短期内有效。 如果无法参照某一存储访问策略,该行为尤其重要。 临时到期时间还通过限制可用于上传到它的时间来限制可以写入 Blob 的数据量。 客户端应在到期时间之前很久就续订 SAS,这样,即使提供 SAS 的服务不可用,客户端也有时间重试。 |