Search code examples
azureazure-storageazure-powershell

Create a Shared Access Signature (SAS) for an Azure Cloud Storage Account with powershell


How do I create a SAS url for my entire cloud storage account?

I noticed the azure powershell cmdlets have a lot of ways to create SAS urls for specific resources (e.g. blob, queue, etc..), but I would like to create one SAS for all of them with powershell


Solution

  • I assume that you want to use Azure storage account SAS. More details please refer to the New-AzureStorageAccountSASToken

    New-AzureStorageAccountSASToken
       -Service <SharedAccessAccountServices>
       -ResourceType <SharedAccessAccountResourceTypes>
       [-Permission <String>]
       [-Protocol <SharedAccessProtocol>]
       [-IPAddressOrRange <String>]
       [-StartTime <DateTime>]
       [-ExpiryTime <DateTime>]
       [-Context <IStorageContext>]
       [<CommonParameters>]
    
    
    
    example : New-AzureStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" -Context $ctx
    

    Edit:

    I have already tried this API. It does not allow you to specify which Azure StorageAccount to generate the SAS for.

    I test with resource mangment storage account, it works correctly on my side. Details please refer to the screenshot.

    $resourceGroup = "Resource group"
    $storageAccountName = "account name "
    
    Login-AzureRmAccount
    
    $storageAccount = Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName 
    
    $ctx = $storageAccount.Context
    
    $accountSAS = New-AzureStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" -Context $ctx
    

    enter image description here