数据推送方案-Azure Storage

方案架构

身份认证管理

|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 认证&授权选项 | 适用场景 | 前置要求/规范 |
| Microsoft Entra ID - ServicePrincipal | 认证凭据可使用密钥或证书,适用于授权应用程序后端使用密钥或证书完成Microsoft Entra ID身份验证流来访问Blob进行文件管理; | 1.周期性轮换:密钥或证书具有强制有效期并进行周期性轮换; 2.密钥或证书托管在应用程序后端,需对密钥进行安全保护,避免泄露; 3.应用程序需要Follow OAuth 2.0身份验证流API或代码依赖库获取安全令牌,然后再携带安全令牌调用Azure接口来完成身份验证; |
| Microsoft Entra ID - Managed identity | 1.Azure托管身份标识-Azure Resource:可授权到单个资源层级,应用程序可以使用托管标识来获取 Microsoft Entra 令牌,无需管理任何凭据,实现无密钥认证即可访问Blob进行文件管理; 2.授信范围为资源中运行的所有应用程序; | 1.需为应用程序所托管的资源启用托管标识; 2.应用程序调用 IMDS 来获取访问令牌,并携带安全令牌调用Azure接口来完成身份验证; 3.本Azure租户范围内; |
| Microsoft Entra ID - Managed identity | 1.Azure托管身份标识-External Resources:配合联合身份认证或Azure Arc,支持非Azure资源中的应用程序可以使用托管标识来获取 Microsoft Entra 令牌来进行Blob的身份认证; 2.授信范围为资源中运行的所有应用程序; | 1.联合身份认证:外部资源使用的IDP与Microsoft Entra ID授信,应用程序使用自己托管的IDP凭据交换安全令牌,并携带安全令牌调用Azure接口来完成身份验证; 2.Azure Arc:外部资源需启用Azure arc并加入本租户内; |
| 共享访问签名 (SAS) - 用户委派 SAS | 1.客户端通过执行身份验证的前端代理服务上传和下载数据。 此前端代理服务允许验证业务规则; 2.按需对客户端进行身份验证,并生成 SAS。客户端应用程序接收到 SAS 后,可以直接访问存储帐户资源。 访问权限由 SAS 定义,并定义 SAS 允许的时间间隔。 减少了通过前端代理服务路由所有数据的需要; 3.适用于为用户端进行临时SAS授权; 4.应用必须支持Microsoft Entra ID身份验证流; | 1.签发路径:必须使用HTTPS等受信任的途径 创建或分发 SAS; 2.签发方式:使用基于Microsoft Entra ID验证的用户委托 SAS; 3.周期性轮换:SAS具有过期策略(最长有效期不超过7天)并进行周期性轮换; 4.SAS的撤销:基于颁发依赖,如颁发者的标识,且撤销是所有基于此颁发者权限的SAS均失效; |
| 共享访问签名 (SAS) - Service SAS | 1.SAS的签名基于存储帐户密钥,客户端无需进行Microsoft Entra ID身份验证流; 2.使用存储访问策略进行权限、有效期的管理; 3.适用于为受信任的服务端进行相对长期且稳定的SAS授权; 4.服务端使用一个SAS仅需访问存储的一种服务资源; | 1.签发路径:必须使用HTTPS等受信任的途径 创建或分发 SAS; 2.签发方式:基于存储账户密钥签发,可关联存储访问策略进行管理; 3.周期性轮换:SAS具有过期策略(有效期可超过7天)并进行周期性轮换; 4.SAS的撤销:基于存储账户密钥依赖,如密钥轮换,所有相关的SAS均失效。关联存储访问策略的方式下,撤销策略即可撤销关联的SAS; |
| 共享访问签名 (SAS) - Account SAS | 1.SAS的签名基于存储帐户密钥,客户端无需进行Microsoft Entra ID身份验证流; 2.不支持使用存储访问策略进行权限、有效期的管理; 3.适用于为用户端进行临时SAS授权; 4.用户端使用一个SAS可访问存储的多种服务资源; | 1.签发路径:必须使用HTTPS等受信任的途径 创建或分发 SAS; 2.签发方式:基于存储账户密钥签发; 3.周期性轮换:SAS具有过期策略并进行周期性轮换; 4.SAS的撤销:基于存储账户密钥依赖,如密钥轮换,所有相关的SAS均失效; |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 最佳实践说明 #场景说明 业务用户手动推送-无专用业务前端代理服务:优先使用Microsoft Entra ID个人用户管理方式进行身份校验及授权; 业务用户手动推送-有专用业务前端代理服务:根据其业务端应用程序功能支持,使用Microsoft Entra ID或用户委派SAS; B2B业务系统推送-支持Microsoft Entra ID认证:优先使用Microsoft Entra ID - Managed identity,次选Microsoft Entra ID - ServicePrincipal; B2B业务系统推送-不支持Microsoft Entra ID认证:优先使用共享访问签名 (SAS) - Service SAS; 临时数据推送:优先使用共享访问签名 (SAS) - 用户委派 SAS,并配置短暂的有效期; #规范要求 签发路径:必须使用HTTPS等受信任的签发途径; 周期性轮换:所有密钥必须妥善保管,并根据不同的方式定义密钥生命周期管理规范; 撤销:所有授权必须定义紧急撤销预案,如发生泄露需及时撤销; |

网络管理

|--------------------|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| 网络管理选项 | 适用场景 | 前置要求/规范 |
| Private Endpoint | 1.客户端与存储交互均为内网链路 2.客户端能够支持PE关联的Private DNS Zone | 1.客户端所在网络环境支持与PE所在虚拟网络进行内网通讯; 2.网络链路中具有防火墙等网络流量管理系统; 3.具有专用的DNS解析管理规范; 4.存储端配置了Private Endpoint |
| Service Endpoint | 1.客户端与存储位于同一个Azure云环境; 2.客户端与存储位于同一个或不同Azure Location(同一Location不支持Public Endpoint,不同Location可选用Public Endpoint); | 1.客户端所在虚拟网络启用了Service Endpoint; 2.客户端所在网络环境允许并信任存储端添加Service Endpoint授权 |
| Public Endpoint | 客户端网络不支持Private Endpoint和Service Endpoint | 1.客户端具有稳定的公网出口IP; 2.如客户端与存储位于Azure配对区域,客户端不得启用ServiceEndpoint; 3.如客户端与存储位于同一个Azure云环境并分布在不同Location |

|------------------------------------------------------------------------------------------------------------------------------------------|
| 最佳实践说明 #场景说明 内网交互:优先使用Private Endpoint; 公网交互:优先使用Service Endpoint,次选Public Endpoint; #规范要求 网络权限管理:必须进行网络权限管控和周期性审核(及时清理无效网络策略) |

数据安全

分类 要求/规范 备注
权限管理 1.最小权限原则 2.权限分离原则,不同的推送系统及用户需进行目录拆分,Servie SAS必须关联独立的存储访问策略进行管理 3.禁用Blob匿名访问 4.周期性Review权限分配并及时清理无效策略
加密 1.传输加密:强制HTTPS、TLS 1.2及以上; 2.存储加密:可选择使用Microsoft 托管密钥或客户管理密钥
密钥管理 1.所有密钥需使用受信任的密钥管理 2.密钥需周期性轮转 例如 Azure Key vault
数据保护 1.Storage container和Blob层级应启用软删除 2.Storage应关联资源锁 例如 资源删除锁定

运维监视

|-----------|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| 分类 | 推荐监视项 | 说明 |
| Monitor | 1.Transactions(包含Transaction type、Authentication、API Name分类):监视数据传输的规范性 2.Availability(包含Transaction type、API Name分类):监视服务可用性 | 1.根据规范定义监视非合规的访问,例如AnonymousPreflight 2.监视所使用服务的可靠性,例如Blob服务接口的稳定性 |
| Log | StorageRead、StorageWrite、StorageDelete:日志记录所有读、写、删操作的访问记录,其中包含相关的操作记录、身份验证记录、服务信息 | 用于Audit使用事件并为周期性Review提供重要的数据支撑 |

相关推荐
草莓熊Lotso2 小时前
Python 流程控制完全指南:条件语句 + 循环语句 + 实战案例(零基础入门)
android·开发语言·人工智能·经验分享·笔记·后端·python
yBmZlQzJ14 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
宝宝单机sop16 小时前
军队文职资源合集
经验分享
yuhaiqun198917 小时前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown
宝宝单机sop18 小时前
产品经理资源合集
经验分享
Ronin30518 小时前
远程控制软件使用体验分享:2025年个人实测记录
经验分享·用户体验
隆道19 小时前
从地缘政治看供应链的风险链属性
经验分享·制造·数智化升级
LaughingZhu19 小时前
Product Hunt 每日热榜 | 2025-12-18
人工智能·经验分享·神经网络·搜索引擎·产品运营
北岛寒沫21 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第八课 外部性)
经验分享·笔记