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

如何用PowerShell为Azure Data Lake目录生成指定SAS令牌

自动重建绑定存储访问策略的ADLS目录SAS令牌(PowerShell脚本)

前提条件

  • Azure自动化账户已获得目标存储账户的存储账户密钥读取权限
  • 存储账户已提前创建好无权限/过期时间的存储访问策略external1
  • 目标容器axexternal及目录/external1/central已存在

完整PowerShell脚本

# 配置核心参数
$storageAccountName = "你的存储账户名称"
$resourceGroupName = "你的资源组名称"
$containerName = "axexternal"
$directoryPath = "/external1/central"
$sasPolicyName = "external1"
# 自定义权限:示例为读取(r)+列出(l),可按需组合(如rwl、r等)
$sasPermissions = "rl"
# 自定义过期时间:示例为当前时间后7天,也可设为固定时间如"2024-12-31 23:59:59"
$sasExpiryTime = (Get-Date).AddDays(7)

# 1. 获取存储账户密钥
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName).Value[0]

# 2. 创建基于账户密钥的存储上下文(满足密钥签名要求)
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey

# 3. 生成绑定策略的目录SAS令牌
$directorySasToken = New-AzStorageContainerSASToken -Context $storageContext `
    -Name $containerName `
    -Policy $sasPolicyName `
    -Permissions $sasPermissions `
    -ExpiryTime $sasExpiryTime `
    -ResourceType "object" `
    -Path $directoryPath

# 输出结果(可按需写入自动化变量或其他存储)
Write-Output "生成的目录SAS令牌:$directorySasToken"

关键参数说明

  • -Context:存储上下文对象,承载存储账户的密钥验证信息,是后续生成SAS的核心身份凭证
  • -Policy:指定预先创建的external1策略,实现SAS与策略绑定,后续可通过吊销策略直接失效所有关联SAS
  • -Permissions:自定义SAS权限,支持r(读)、w(写)、l(列)、d(删)等多种权限组合,按需调整即可
  • -ExpiryTime:自定义SAS过期时间,既可以设为相对时长(如示例的AddDays),也可以设为固定UTC时间
  • -ResourceType "object":明确资源类型为目录(ADLS Gen2中目录属于object类型),确保SAS仅作用于目标目录而非整个容器
  • -Path:指定容器内的目标目录路径,精准锁定SAS的作用范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:42:53