生成账户/服务SAS令牌时使用签名加密范围的Azure配置及Blob 403排障
生成账户/服务SAS令牌时使用Signed Encryption Scope的Azure门户配置步骤
1. 创建加密范围(若未存在)
- 登录Azure门户,进入目标存储账户
- 在左侧导航栏「数据管理」分组下,选择「加密范围」
- 点击「添加」,填写加密范围名称,选择「客户管理的密钥」类型
- 关联已有的密钥保管库和对应密钥,确认后点击「保存」完成创建
2. 生成带Signed Encryption Scope的账户SAS令牌
- 在存储账户左侧导航栏「安全 + 网络」分组下,选择「共享访问签名」
- 按需配置「允许的服务」「允许的资源类型」「允许的权限」
- 滚动到「加密范围」区域,勾选「指定加密范围」,从下拉列表中选择目标加密范围
- 设置SAS的开始/过期时间等参数,点击「生成SAS和连接字符串」,复制生成的SAS令牌备用
3. 生成带Signed Encryption Scope的服务SAS令牌(Blob/容器级别)
- 进入存储账户下的目标容器:针对单个Blob,右键选择「生成SAS」;针对容器,点击顶部「生成SAS」按钮
- 在SAS配置窗口中,设置权限、过期时间等基础参数
- 找到「加密范围」选项,选择对应的加密范围
- 点击「生成SAS令牌和URL」,复制生成的SAS令牌或完整URL
403未授权错误的排查与解决办法
加密范围必须完全匹配:
上传Blob时指定的加密范围名称(含大小写)必须与SAS令牌中签名的加密范围完全一致。如果Blob使用账户默认加密(未指定加密范围),而SAS绑定了加密范围,会直接触发403。需重新上传Blob并指定对应加密范围,或生成不绑定加密范围的SAS。检查SAS权限是否足够:
确认生成SAS时赋予的权限覆盖当前操作需求(如读取Blob需r权限,写入需w权限),权限不足会导致授权失败。验证加密范围的密钥有效性:
检查关联的密钥保管库密钥是否未过期、未被禁用;同时确认存储账户在密钥保管库的「访问控制(IAM)」中拥有密钥/获取权限,否则加密范围无法正常生效。确认SAS令牌未过期:
检查SAS的过期时间,若已过期,重新生成有效时间范围内的SAS令牌。排查网络访问限制:
若存储账户设置了防火墙或虚拟网络规则,确认访问Blob的客户端IP或网络在允许列表内,否则会被拦截返回403。核对Blob加密属性:
进入Blob详情页的「属性」标签,查看「加密范围」字段,确认其使用的加密范围与SAS中指定的一致。若不一致,需调整其中一方的配置使其匹配。
内容的提问来源于stack exchange,提问作者Dillip
相关产品推荐
相关产品推荐

