如何在Azure文件复制管道任务中使用SAS令牌?
Azure文件复制任务(版本2.x)通过SAS令牌访问受限存储账户的实现方法
方法一:直接手动配置SAS令牌
- 打开Azure文件复制任务的配置界面,找到「目标」板块,选择「手动输入连接信息」
- 在「存储账户名称」栏填写目标存储账户的名称
- 在「SAS令牌」栏输入你的SAS令牌(注意不要包含开头的
?符号,也可以引用管道预定义的秘密变量) - 配置好目标容器/文件夹路径,其余参数按实际复制需求设置即可
方法二:动态生成并引用SAS令牌(适合自动化场景)
如果需要动态生成SAS令牌而非硬编码,可以通过Azure CLI任务配合变量传递:
- 添加「Azure CLI」任务,运行以下命令生成符合权限要求的SAS令牌(按需调整权限、过期时间等参数):
# 生成存储账户级SAS,权限包含读写删列表,覆盖Blob服务、容器和对象 az storage account generate-sas --account-name your-storage-account --permissions rwdl --resource-types sco --services b --expiry "2024-12-31T23:59:59Z" --output tsv - 将生成的SAS令牌存入管道秘密变量,避免明文暴露:
SAS_TOKEN=$(az storage account generate-sas --account-name your-storage-account --permissions rwdl --resource-types sco --services b --expiry "2024-12-31T23:59:59Z" --output tsv) echo "##vso[task.setvariable variable=storageSAS;issecret=true]$SAS_TOKEN" - 回到Azure文件复制任务,在「SAS令牌」栏引用变量
$(storageSAS)即可
关键注意事项
- SAS令牌必须具备足够权限:至少需要**读取(r)、写入(w)、删除(d)、列表(l)**权限,资源类型需覆盖服务(s)、容器(c)、对象(o),服务指定为Blob(b),否则无法完成文件复制操作
- 如果存储账户防火墙设置了IP限制,需确保SAS令牌的IP范围包含管道代理的出口IP,或者根据安全策略设置无IP限制的SAS
- 版本2.x的任务中,「SAS令牌」字段仅在选择「手动输入连接信息」后才会显示,对应你提供的截图里的目标配置区域
内容的提问来源于stack exchange,提问作者AJ31
相关产品推荐
相关产品推荐

