You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建用于列出/删除Blob的SAS令牌?遇403权限问题求助

解决Azure存储SAS令牌403禁止访问问题及最小权限说明

看起来你遇到的403问题核心是SAS令牌的权限没覆盖到你需要的所有操作——Read权限只够读取Blob内容和元数据,但你还需要列出Blob和删除的权限,这俩是单独的权限项。我来帮你理清楚最小权限要求,以及修正你的脚本:

一、你需要的最小权限组合

针对获取Blob列表、读取元数据、删除旧Blob这三个操作,所需的最小SAS权限是:

  • List(权限字符l):允许列出指定容器内的所有Blob
  • Read(权限字符r):允许读取Blob的元数据(同时也支持读取Blob内容,如果你需要的话)
  • Delete(权限字符d):允许删除指定Blob

把这些权限组合起来,权限字符串就是rld——这刚好覆盖你所有需求,没有多余权限,符合最小权限原则。

二、修正SAS令牌创建与脚本逻辑

你之前只加了Read权限,导致列出容器(Get-AzureStorageContainer或Get-AzureStorageBlob)和删除操作被拒绝。下面是完整的可运行脚本示例:

# 1. 先通过存储账户密钥获取基础上下文(用于生成SAS令牌)
$storageAccountName = "xxx"
$storageAccountKey = "你的存储账户密钥"
$containerName = "目标容器名称"

$baseContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

# 2. 生成容器级SAS令牌(最小权限范围,仅针对当前容器)
# 权限rld对应:读元数据、列Blob、删Blob;过期时间可根据需求调整
$sasToken = New-AzureStorageContainerSASToken -Container $containerName -Context $baseContext -Permission rld -ExpiryTime (Get-Date).AddDays(7)

# 3. 用SAS令牌创建操作上下文
$ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -SasToken $sasToken

# 4. 执行所需操作
# 列出容器内所有Blob
$allBlobs = Get-AzureStorageBlob -Container $containerName -Context $ctx

# 读取每个Blob的元数据
foreach ($blob in $allBlobs) {
    $metadata = $blob.ICloudBlob.Metadata
    Write-Host "Blob名称: $($blob.Name) | 元数据: $($metadata | Out-String)"
}

# 删除7天前的旧Blob(可根据需求调整时间条件)
$oldBlobs = $allBlobs | Where-Object { $_.LastModified -lt (Get-Date).AddDays(-7) }
foreach ($oldBlob in $oldBlobs) {
    Remove-AzureStorageBlob -Blob $oldBlob.Name -Container $containerName -Context $ctx -Confirm:$false
    Write-Host "已删除旧Blob: $($oldBlob.Name)"
}

三、额外排查点(如果还是遇到403)

如果按上面的配置还是报错,你可以检查这几个常见问题:

  • SAS令牌是否过期:确认ExpiryTime设置的时间是否在当前时间之后
  • 资源类型是否正确:你需要的是容器级SAS,而不是Blob级SAS(Blob级SAS无法列出容器内的Blob)
  • IP/协议限制:如果生成SAS时添加了IP白名单或强制HTTPS,确认当前执行脚本的IP在允许范围内,且使用的是HTTPS协议
  • 容器名称是否正确:检查$containerName是否和目标容器完全匹配(大小写敏感)

内容的提问来源于stack exchange,提问作者4c74356b41

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:27:22