Gerar Tokens SAS do Azure com PowerShell e Portal

Existem várias maneiras diferentes de delegar acesso a recursos no Azure. Uma maneira é por meio de um token de Assinatura de Acesso Compartilhado (SAS). Um token SAS é uma maneira de controlar de forma granular como um cliente pode acessar dados do Azure. Você pode controlar muitas coisas, como quais recursos o cliente pode acessar, quais permissões o cliente possui, por quanto tempo o token é válido e muito mais.

Um uso comum do token SAS é para proteger contas de armazenamento do Azure por meio de um SAS de conta.

Neste artigo, você aprenderá como criar um token SAS do Azure tanto pelo portal do Azure quanto pelo PowerShell. Quando terminar, você terá um token SAS para passar para vários comandos de cliente para autenticar e autorizar o gerenciamento de armazenamento do Azure.

Pré-requisitos

Você aprenderá na prática como realizar algumas tarefas diferentes neste artigo. Se deseja acompanhar, certifique-se de atender aos seguintes pré-requisitos.

  • Uma assinatura do Azure. Se ainda não tiver, você pode solicitar uma assinatura de teste.
  • Uma conta de Armazenamento do Azure. Consulte Criar uma conta de armazenamento para saber mais.
  • O módulo Az PowerShell (opcional). Isso é necessário apenas se você pretende gerar tokens de Assinatura de Acesso Compartilhado usando o PowerShell
  • Windows PowerShell 5.1 ou PowerShell Core 6+ se estiver gerando um token SAS via PowerShell

Gerando um Token SAS usando o Portal Azure

A maneira mais direta de gerar um token SAS é usando o Portal Azure. Ao utilizar o portal Azure, você pode navegar pelas diversas opções graficamente.

Para criar um token via Portal Azure, primeiro, navegue até a conta de armazenamento que você gostaria de acessar na seção Configurações e então clique em Assinatura de acesso compartilhado. Você pode ver um exemplo de como isso pode parecer abaixo.

Há muitas permissões que você pode conceder a tokens SAS e horários de início/fim. Para este artigo, você vai atribuir permissões completas e deixar o tempo de expiração padrão de oito horas. Se você quiser uma análise e explicação de cada permissão, confira a documentação da Microsoft.

Deixe todas as caixas de seleção padrão marcadas e clique no botão Gerar SAS e string de conexão como mostrado abaixo.

Generating SAS Token from the Azure Portal

Assim que o token for gerado, você verá ele listado nas caixas abaixo do botão Gerar SAS e string de conexão como mostrado abaixo.

Copying the generated SAS token

Neste ponto, você pode copiar o token SAS e colar seu valor onde quer que precise usá-lo.

Gerando um Token SAS usando PowerShell

Para evitar ter que fazer login no portal do Azure ou, talvez, se estiver gerando tokens SAS para muitas contas de armazenamento de uma vez, você pode usar o PowerShell. O PowerShell usa a API REST do Azure para fazer chamadas ao Azure e gerar o token.

Para criar um token SAS via PowerShell, primeiro, abra um console do PowerShell e autentique-se com Connect-AzAccount. Uma vez autenticado, então encontre a conta de armazenamento à qual você gostaria de acessar. Abaixo você pode ver um exemplo de consulta a uma conta de armazenamento chamada demo_account no grupo de recursos demo_rg. Usando o valor de $contexto, você passará isso para o comando de geração de token.

$context = (Get-AzStorageAccount -ResourceGroupName 'demo_rg' -AccountName 'demo_account').context

Depois que o contexto da conta de armazenamento for encontrado, então crie um token SAS usando o comando New-AzStorageAccountSASToken. O exemplo abaixo mostra a geração de um token SAS dando permissão total à conta de armazenamento e a todos os subcomponentes.

New-AzStorageAccountSASToken -Context $context -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission racwdlup

Ao criar tokens SAS via New-AzStorageAccountSASToken, o token será válido por uma hora. Se você deseja estender este tempo, pode usar o parâmetro ExpiryTime.

Limitando as Permissões do Token SAS

Um motivo para usar um token SAS é dar acesso a outras partes por um tempo limitado e conjunto de permissões. O exemplo anterior gerou um token SAS com permissões de acesso total. Dar acesso total nem sempre é o cenário ideal.

O parâmetro Serviço define o acesso a um serviço ou serviços. Por exemplo, use blob para permitir acesso apenas ao serviço de Armazenamento Blob do Azure. Outros serviços incluem Arquivo, Tabela e Fila.

O parâmetro TipoDeRecurso limita o acesso a tipos específicos de recursos. Usando o valor container, por exemplo, permite acesso apenas a recursos de contêiner. Outros tipos de recursos válidos Serviço e Objeto.

O parâmetro Permissão permite que você defina permissões permitidas. Especifique uma ou mais permissões conforme necessário. O valor de rwd é igual a conceder permissões de leitura, escrita e exclusão. Outros valores de permissão válidos são (l)istar, (a)dicionar, (a)tualizar e (p)rocessar.

Usando o Token SAS

Há muitas maneiras de usar o token SAS gerado. Uma das maneiras mais comuns é usá-lo em um contexto de armazenamento. Um contexto de armazenamento é uma maneira de “empacotar” credenciais para então passá-las para vários comandos.

A common way to use the SAS token is via PowerShell. Using the New-AzStorageContext command that’s part of the Az PowerShell module. You can see an example below using the SAS token to upload a file to an existing storage container.

$StorageAccountName = 'foo'
 $ContainerName = 'bar'
 Create a storage context
 $sasToken = ''
 $StorageContext = New-AzStorageContext $StorageAccountName -SasToken $sasToken
 Upload a file
 $storageContainer = Get-AzStorageContainer -Name $ContainerName -Context $StorageContext
 $storageContainer | Set-AzStorageBlobContent –File 'C:\file.txt' –Blob 'file.txt'

Resumo

Gerar um token SAS pode ser feito de algumas maneiras diferentes. Neste artigo, você aprendeu algumas das maneiras mais comuns. Uma vez criado, um token SAS pode ser usado de muitas maneiras diferentes, mas decidir qual caminho seguir fica a seu critério.

Source:
https://adamtheautomator.com/azure-sas-token/