SAS令牌值在使用Azure CLI命令创建时与通过Azure powershell命令创建时的预期行为不同

问题描述 投票:0回答:1

我正在生成SAS令牌以访问我的ARM部署中的链接模板。我将SAS令牌作为参数替代传递给az部署命令。原来我的模板部署失败,并显示错误“无法从'https://myLinkedTemplateURL?SASToken']下载部署内容”

首先,我获取存储在密钥库中的storageAccountKey:

$storeKey = az keyvault secret show --name "myStorageSecretName" --vault-name "myKeyVaultName" --query value
$storeKey  = $storeKey.Replace('"','')

然后,这是我生成SAS令牌的两种方法:

  1. 通过此方法生成的SAS令牌成功部署

    $ context = New-AzureStorageContext -StorageAccountName'myStorageAccountName'-StorageAccountKey $ storeKey$ tokenval = New-AzureStorageContainerSASToken-容器构建-Permission rwdl -Context $ context

  2. 此方法生成的SAS令牌使部署失败

  3. $ tokenval = az存储容器generate-sas --account-key $ storeKey --account-name“ myStorageAccountName” --name“ testcontainer” --permissions acdlrw --expiry(Get-Date).AddMinutes(30)。 ToString(“ yyyy-MM-dTH:mZ”)

    此外,我观察到第二种方法生成的SASToken的长度比第一种方法短。

有人可以帮助阐明上述两种方法之间的区别以及为什么一种方法失败而另一种方法成功吗?

我正在生成SAS令牌以访问我的ARM部署中的链接模板。我将SAS令牌作为参数替代传递给az部署命令。原来我的模板...

azure azure-resource-manager azure-powershell azure-cli
1个回答
1
投票
$tokenval = az storage container generate-sas --account-key $storeKey --account-name "myStorageAccountName" --name "testcontainer" --permissions acdlrw --expiry (Get-Date).AddMinutes(30).ToString("yyyy-MM-dTH:mZ")
© www.soinside.com 2019 - 2024. All rights reserved.