生成 SAS 以访问 Azure 存储

Generating SAS to access Azure storage

我正在尝试编写一个 Bash 脚本来备份 Azure 应用程序服务并将备份保存到 Azure 存储中的容器中。

为此,我需要一个 SAS 来访问存储并生成一个我将使用以下命令:

az storage blob generate-sas -c containername --account-name storage-account-name -n blob-name

这里的问题是,我还需要为上述命令提供 blob 名称才能运行,但我希望我的备份直接存储在容器中。

但是如果我使用的是 Powershell 并遵循文档 here 它不需要 blob 存储名称来创建 SAS。

所以我想知道是否有一种使用 Azure-CLI 生成 SAS 的方法在容器级别而不是在 blob 级别有效。

请尝试az storage container generate-sas

az storage container generate-sas --name <container-name> --expiry <sas-expiry> --permissions <permissions> --account-name <account-name> --account-key <account-key>

要查看此命令的所有选项,请使用:

az storage container generate-sas --help

我同意高拉夫的观点。是的,您可以生成在容器级别有效的 SAS。您也可以使用以下命令来生成它。它适用于 bash shell.

groupname=<>
accountname=<>
containername=<>
##generate connection-string
StorageAccountConnectionString=`az storage account show-connection-string --name $accountname --resource-group $groupname --output tsv`
##generate sas
sas=`az storage container generate-sas --connection-string $StorageAccountConnectionString -n $containername --permissions rl --expiry 'Y-m-dTH:M:SZ' --output tsv`

#usage example

groupname=shui
accountname=shui
containername=shui
##generate connection-string
StorageAccountConnectionString=`az storage account show-connection-string --name $accountname --resource-group $groupname --output tsv`
##generate sas
sas=`az storage container generate-sas --connection-string $StorageAccountConnectionString -n $containername --permissions rl --expiry '2018-06-30' --output tsv`
echo $sas
se=2018-06-30&sp=rl&sv=2016-05-31&sr=c&sig=GTdFdruu2DxzSoIKCb0K7YQpBPaJdHSaXLUPSOzTcZ4%3E

您也可以使用 Azure CLI 2.0 获取存储密钥。

#usage example
az storage account keys list -n shuihdi -g shui4 --output tsv|head -n 1|awk '{print }'
5NQdibPibJrxQ3StybPb1kMsAL8NVdL3GT3KWcodWL96vhBNz5fYRKuXmYWkHxPxvxGnmJTOAY2rizgnJa4qmQ==