Azure SAS令牌AzCopy身份验证问题

时间:2020-02-20 16:49:14

标签: azure authentication token azcopy

使用SAS密钥执行azCopy时,有人可以帮助解决错误吗?

我SSH到我的Azure VM上,并使用其托管身份获取令牌:

卷曲'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com'-H元数据:true

然后,我构建一个邮递员请求,其“授权”标头为“ Bearer tokenFromAbove”,并且其JSON主体为:

{

“ signedServices”:“ b”,

“ signedResourceTypes”:“ co”,

“ signedPermission”:“ rwc”,

“ signedProtocol”:“ https”,

“ signedExpiry”:“ 2020-02-22T00:06:00Z”

}

此文章发布至: https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/listAccountSas/?api-version=2019-06-01

并返回一个sas令牌。该令牌使我可以使用“ azcopy make”创建一个容器。

但是我也想使用'azcopy copy'将文件从我的VM移动到新容器。我通过命令尝试这样做:

azcopy复制'mySourceDirectory''https://myStorageAccountName.blob.core.windows.net/myContainer?sv=2015-04-05&ss=b&srt=co&sp=rwc&se=2020-02-22T00:06:00Z&spr=https&sig=redacted'-递归

但是此操作失败,并显示以下内容:

INFO:身份验证失败,它不正确,已过期或没有正确的权限-> github.com/Azure/azure-storage-blob-go/azblob.newStorageError,/ home / vsts / go /pkg/mod/github.com/!azure/azure-storage-blob-go@v0.7.0/azblob/zc_storage_error.go:42

=====响应错误(ServiceCode = AuthenticationFailed)=====

说明=服务器无法验证请求。确保包括签名在内的Authorization标头的值正确形成。

RequestId:ef37087d-501e-0050-650b-e81cb4000000 时间:2020-02-20T16:35:50.6651356Z,详细信息:

AuthenticationErrorDetail:签名不匹配。用于签名的字符串是myStorageAccountName w b 合作 2020-02-22T00:06:00Z https 2015-04-05

代码:AuthenticationFailed

请注意,如果我在Azure门户中生成类似的SAS令牌,则它可以工作。我的VM是存储帐户的所有者。

1 个答案:

答案 0 :(得分:0)

感谢上述答复。对于“ azcopy copy”命令,这确实是一个未解决的问题,当从其余API生成SAS令牌中返回的日期格式时,无法解释该日期格式。

我们将提出一种解决方法-我认为我们可以暂时使用从门户生成的令牌。