问题描述

使用PowerShell脚本如何来创建存储账号(Storage Account)的共享访问签名呢?查询到可以使用 New-AzStorageContainerSASToken 命令来生成Azure Storage container的SAS Token。

The New-AzStorageContainerSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure storage container.

 

New-AzStorageContainerSASToken [-Name] <String> -Policy <String>

[-Protocol <SharedAccessProtocol>] [-IPAddressOrRange <String>] [-StartTime <DateTime>] [-ExpiryTime <DateTime>]

[-FullUri] [-EncryptionScope <String>] [-Context <IStorageContext>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]

 

Source:​​https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainersastoken?view=azps-8.0.0​

是否有一个可以参考的例子呢?

 

示例代码

#Now we need to create Storage context
$context = New-AzStorageContext -StorageAccountName yourstorageaccountname -StorageAccountKey yourstorageaccountkey

$StartTime = Get-Date
$EndTime = $startTime.AddDays(1)
$policy=New-AzStorageContainerStoredAccessPolicy -Container "yourcontainername" -Policy "yourstoredaccesspolicy" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime -Context $context -Debug

New-AzStorageContainerSASToken -Name "yourcontainername" -Policy $policy -Protocol HttpsOrHttp -Context $context

第一步:通过 New-AzStorageContext 创建content对象

第二步:通过 New-AzStorageContainerStoredAccessPolicy 创建SAS的访问策略

第三步:调用 New-AzStorageContainerSASToken 生成目前存储账号的SAS Token

 

参考资料

创建Storage Context:​​https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontext?view=azps-6.3.0​​​创建存储访问策略请参考:​​https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainerstoredaccesspolicy?view=azps-6.3.0​​创建SAS Token:​​https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainersastoken?view=azps-6.3.0​​Power shell安装介绍:​​https://docs.azure.cn/zh-cn/storage/blobs/storage-quickstart-blobs-powershell​

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!