Introducción

https://youtu.be/iwkTWTRsRSU

En este tutorial vamos a crear una política de acceso pública, lo que nos permite dar acceso a un blob durante un tiempo determinado y con la cantidad de permisos que deseemos. La ventaja de usar este método es que nos permite cambiar la configuración del acceso compartido en cualquier momento.

Por ejemplo: si tenemos un blob compartido con permisos de lectura y escritura desde hace 20 días hasta dentro de 5 meses y queremos deshabilitar el acceso temporalmente, es tan sencillo como cambiar la fecha de expiración a la semana pasada. Si estuviésemos usando claves compartidas sin aplicar una política a dicha clave, no habría más solución que eliminar la clave y después tener que crear otra nueva desde cero.

Este tutorial describe cómo hacerlo por comandos de PowerShell, aunque por el portal de Azure también se puede hacer.

Definir los nombre de recursos

Sabiendo esto, comenzamos por meternos en la consola de PowerShell de Azure con el icono a la derecha de la barra superior de búsqueda. En el caso de que sea nuestra primera vez, nos pedirá que nos creemos una cuenta de almacenamiento, a lo que decimos que sí.

Una vez estamos dentro comenzaremos por declarar las variables con los nombres que vamos a usar en los recursos que crearemos a continuación.

El primero será el nombre que le daremos al grupo de recursos donde se guardará todo lo que hagamos, en el caso de que algo salga mal, simplemente basta con borrar este grupo de recursos y todo lo que hayamos hecho se eliminará. En mi caso, voy a darle el nombre «containertestrg».

$rgName = «containertestrg»

Después le damos nombre a la cuenta de almacenamiento donde estarán situados los contenedores de blobs, en este caso «containertestsa».

$accountName = «containertestsa»

Le damos nombre al contenedor: «containertestcont».

$containerName = «containertestcont»

Y por último tenemos que decidir en que región vamos a crearlo todo. He elegido westeurope como región pero en el caso de que no sepas la lista de regiones, simplemente puedes ejecutar el comando: “(Get-AzLocation).Location” y te mostrará todas las regiones.

$location = «westeurope»

Crear la estructura

Una vez hemos declarado todos los nombres, empezamos por el primer comando en el que creamos el grupo de recursos que mencioné anteriormente donde guardaremos todo.

Estos comando podemos ponerlos todos en la misma línea o podemos separarlos en varias líneas terminándolas con una tilde inversa seguida de un espacio “ `”, si no colocamos esa tilde, Azure tratará cada línea como un comando separado.

New-AzResourceGroup -Name $rgName `

    -Location $location

En el siguiente comando creamos la cuenta de almacenamiento que usamos para almacenar los contenedores de blobs.

New-AzStorageAccount -ResourceGroupName $rgName `

    -Name $accountName `

    -Location $location `

    -SkuName Standard_GRS `

    -AllowBlobPublicAccess $true

Después procedemos a crear el contenedor de blobs, primero usaremos un comando que obtiene los datos de la cuenta de almacenamiento que acabamos de crear, los manda a una variable, y después creamos el contenedor usando esos datos. Son tres comandos en total.

$storageAccount = Get-AzStorageAccount `

    -ResourceGroupName $rgName `

                -Name $accountName

$ctx = $storageAccount.Context

New-AzStorageContainer -Name $containerName `

                -Permission Container `

                -Context $ctx

Crear la política de acceso público

Una vez ya hemos creado toda la estructura de nuestro Azure, procedemos a crear el objetivo del tutorial, la política de acceso público a nivel de blob. He optado por poner permisos de lectura, escritura, borrado, y listado (rwdl); aunque éstos pueden ser cambiados a gusto de cada uno.

New-AzureStorageContainerStoredAccessPolicy `

                -Container $containerName `

                -Policy «Policy1» `

                -Permission rwdl `

                -Context $ctx

Con esto ya tendríamos la politica creada y podríamos crear claves SAS que usen una política customizada en vez de no tenerla.

En el caso de que queráis usar una cuenta de almacenamiento ya creada, debéis tener en cuenta que la propiedad de acceso publico tiene que estar habilitada; la podéis cambiar con el siguiente comando:

Set-AzStorageAccount -ResourceGroupName $rgName `

    -Name $accountName `

    -AllowBlobPublicAccess $true

Autor/a: Adrián Valle Monjas

Curso: Administración de Sistemas MultiCloud Azure y AWS

Centro: Tajamar

Año académico: 2021-2022.

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.