Generar tokens SAS de Azure con PowerShell y Portal

Hay varias formas diferentes de delegar acceso a recursos en Azure. Una forma es a través de un token de Shared Access Signature (SAS). Un token SAS es una forma de controlar de manera granular cómo un cliente puede acceder a los datos de Azure. Puede controlar muchas cosas, como qué recursos puede acceder el cliente, qué permisos tiene el cliente, cuánto tiempo es válido el token y más.

Un uso común del token SAS es asegurar las cuentas de almacenamiento de Azure mediante el uso de un SAS de cuenta.

En este artículo, aprenderás cómo crear un token SAS de Azure tanto a través del portal de Azure como a través de PowerShell. Al finalizar, tendrás un token SAS para luego pasar a varios comandos de cliente para autenticar y autorizar la gestión de almacenamiento de Azure.

Prerrequisitos

Aprenderás de manera práctica cómo realizar algunas tareas diferentes en este artículo. Si deseas seguir el tutorial, asegúrate de cumplir con los siguientes prerrequisitos.

Generar un token SAS usando el Portal de Azure

La forma más sencilla de generar un token SAS es mediante el Portal de Azure. Al utilizar el portal de Azure, puede navegar por las diferentes opciones de forma gráfica.

Para crear un token a través del portal de Azure, primero navegue hasta la cuenta de almacenamiento a la que le gustaría acceder en la sección Configuración y luego haga clic en Firma de acceso compartido. Puede ver un ejemplo de cómo podría ser esto a continuación.

Hay muchos permisos que puede conceder a los tokens SAS y tiempos de inicio/fin. Para este artículo, va a asignar permisos completos y dejar el tiempo de expiración predeterminado de ocho horas. Si desea un desglose y explicación de cada permiso, consulte la documentación de Microsoft.

Deje todas las casillas de verificación predeterminadas y haga clic en el botón Generar SAS y cadena de conexión como se muestra a continuación.

Generating SAS Token from the Azure Portal

Una vez que se genere el token, lo verá listado en las casillas debajo del botón Generar SAS y cadena de conexión como se muestra a continuación.

Copying the generated SAS token

En este punto, puede copiar el token SAS y pegar su valor donde sea que necesite usarlo.

Generando un Token SAS usando PowerShell

Para evitar tener que iniciar sesión en el portal de Azure o, quizás, si estás generando tokens SAS para muchas cuentas de almacenamiento a la vez, puedes usar PowerShell. PowerShell utiliza la API REST de Azure para realizar llamadas a Azure y generar el token.

Para crear un token SAS a través de PowerShell, primero, abre una consola de PowerShell y autentica con Connect-AzAccount. Una vez autenticado, luego encuentra la cuenta de almacenamiento a la que te gustaría acceder. A continuación, puedes ver un ejemplo de consulta a una cuenta de almacenamiento llamada demo_account en el grupo de recursos demo_rg. Utilizando el valor de $context, luego pasarás esto al comando de generación de token.

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

Una vez que se encuentra el contexto de la cuenta de almacenamiento, luego crea un token SAS usando el comando New-AzStorageAccountSASToken. El siguiente ejemplo muestra la generación de un token SAS dando permiso completo a la cuenta de almacenamiento y todos sus subcomponentes.

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

Cuando se crean tokens SAS mediante New-AzStorageAccountSASToken, el token será válido por una hora. Si deseas extender este tiempo, puedes usar el parámetro ExpiryTime.

Limitando los Permisos del Token SAS

Una razón para usar un token SAS es dar acceso a otras partes por un tiempo limitado y un conjunto de permisos. El ejemplo anterior generó un token SAS con permisos de acceso completo. Dar acceso completo no siempre es el mejor escenario.

El parámetro Service define el acceso a un servicio o servicios. Por ejemplo, use blob para permitir el acceso solo al servicio Azure Blob Storage. Otros servicios incluyen File, Table y Queue.

El parámetro ResourceType limita el acceso a tipos específicos de recursos. El uso de container como valor, por ejemplo, permite el acceso solo a los recursos de contenedor. Otros tipos de recursos válidos son Service y Object.

El parámetro Permission le permite definir permisos permitidos. Especifique uno o más permisos según sea necesario. El valor de rwd es equivalente a otorgar permisos read, write y delete. Otros valores de permisos válidos son (l)ist, (a)dd, (u)pdate y (p)rocess.

Utilizando el Token SAS

Hay muchas formas de utilizar el token SAS generado. Una de las formas más comunes es utilizarlo en un contexto de almacenamiento. Un contexto de almacenamiento es una forma de “empaquetar” credenciales para luego pasarlas a varios 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'

Resumen

Crear un token SAS se puede hacer de varias formas diferentes. En este artículo, aprendiste un par de las formas más comunes. Una vez creado, un token SAS se puede utilizar de muchas formas diferentes, pero decidir cómo hacerlo depende de ti.

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