SAS 令牌密钥未生成

SAS Token Key not generating

我花了一天时间尝试从模板存储帐户在 Azure 中部署一些 VM。

我用Set-AzureRmCurrentStorageAccount设置存储账户然后给$token = New-AzureStorageContainerSASToken赋一个变量

我收到错误消息:

AuthenticationFailed Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:3408956-0001-00ea-4cd1-2135c2000000 Time:2017-08-12T21:27:54.6479108Z Signature did not match. String to sign used was r 2017-08-12T22:26:51Z /blob/homeworktest/blob 2016-05-31

powershell 错误信息是

 Message=Unable to download deployment 
content from 'https://storageaccountname.blob.core.windows.net/blob/azuredeploy.json'

当我从 $token 获取变量时,它会显示密钥,然后我将该密钥与 URI 一起使用,通过显示上述消息的浏览器访问 json 文件。

我使用的全部代码如下

Set-AzureRmContext -SubscriptionId "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"
Set-AzureRmCurrentStorageAccount -ResourceGroupName "ResGp" -Name "Storageaccount"
$token2 = New-AzureStorageContainerSASToken -Name "json" -Permission r -ExpiryTime (Get-Date).AddMinutes(60.0)
New-AzureRmResourceGroupDeployment -name Demo -ResourceGroupName ResGp `
-TemplateFile "https://storageaccountname.blob.core.windows.net/blob/azuredeploy.json" `
-TemplateParameterFile "https://storageaccountname.blob.core.windows.net/blob/azuredeploy.parameters.json" -verbose

我看不出我做错了什么,或者我的整个方法有缺陷吗?

任何 help\guidance 将不胜感激

提前致谢:)

我看到有 2 个问题导致了您的问题。

  1. 根据您的代码,您正在为名为“json”的 Azure 存储容器生成共享访问签名 (SAS) 令牌,但是您要为资源组部署下载的 blob 与您为其生成 SAS 令牌的容器位于不同的容器中。

  2. 您的模板和模板参数链接都没有附加容器 SAS 令牌,这意味着您没有访问它们的权限。

您的问题的解决方案:

  1. 更新 blob 链接中的容器名称
  2. 将 Container SAS 令牌附加到您的两个 blob 链接

New-AzureRmResourceGroupDeployment -name Demo -ResourceGroupName ResGp `
-TemplateFile ("https://storageaccountname.blob.core.windows.net/json/azuredeploy.json" + $token2) `
-TemplateParameterFile ("https://storageaccountname.blob.core.windows.net/json/azuredeploy.parameters.json" + $token2) -verbose