En Azure, sobretodo en entornos en que aplicaciones u otros usuarios interactúen con nuestros blobs y ficheros es importante asegurar estos datos. La funcionalidad de soft delete o de eliminación temporal en Azure, nos permite poder recuperar ficheros, snapshots o blobs eliminados dentro de un periodo de tiempo especificado, vamos a ver cómo lo podemos activar de manera sencilla con Powershell.

azurevm2

 

En Azure tenemos a nuestra disposición una gran variedad de recursos, si nos centramos en los datos almacenados disponemos del almacenamiento de Blobs que nos permite almacenar todo tipo de datos no estructurados de manera cuasi ilimitada y por otro lado el File Storage más enfocado a reemplazar el almacenamiento clásico de ficheros en sus formatos más habituales.

Independientemente del servicio que utilicemos, como decíamos es una obligación el asegurar esos datos y su potencial recuperación en caso de fallo o desastre, en este punto es donde nos puede ayudar activar la eliminación temporal (soft delete) en estos servicios, gracias al cual podríamos recuperar los mismos.

A tener en cuenta, como todo (o casi) en la nube tiene un precio, por lo que al activar este servicio los datos en estado de “soft delete” ocuparán espacio y serán facturados de la misma manera que los datos en producción, por lo que es importante valorar pros y contras y ajustar la funcionalidad a determinados recursos.

Conexión a nuestra cuenta

Para configurar esta funcionalidad primero conectamos a nuestra cuenta con

Connect-AzAccount

Seguidamente especificamos nuestra subscripción, las listamos con el cmdlet Get-AzSubscription y seguidamente la seleccionamos

Get-AzSubscription
Select-AzSubscription -Subscription "cyberseguridad.net"

Definición de variables

En el siguiente ejemplo activaremos el soft delete para una cuenta de almacenamiento. Para ello, como vemos a continuación obtenemos el objeto de cuenta de almacenamiento a raiz de la previa definición del nombre de la misma y del nombre del grupo de recursos en la que se encuentra.

$nombregruporecursos = "demorecursos"
$nombrecuentaalmacenamiento = "demoalmacenamiento"
$cuentaalmacenamiento = Get-AzStorageAccount -Name $nombrecuentaalmacenamiento -ResourceGroupName $nombregruporecursos

Para obtener estos datos podemos usar el cmdlet Get-AzStorageAccount que nos mostrará las diferentes cuentas de almacenamiento que tengamos además de mostrar el correspondiente grupo de recursos.

Gestionando la configuración de eliminación temporal en blobs

Antes de nada, vamos a comprobar la configuración actual de esta política, utilizando el cmdlet Get-AzStorageServiceProperty

Get-AzStorageServiceProperty -Context $cuentaalmacenamiento.Context -ServiceType Blob | Select-Object -ExpandProperty DeleteRetentionPolicy

Ahi veremos claramente si la propiedad DeleteRetentionPolicy está o no activada, y en caso que lo esté qué cantidad de días tiene especificado. Para activar la funcionalidad utilizaremos el cmdlet Enable-AzStorageDeleteRetentionPolicy como vemos a continuación. En el siguiente ejemplo hemos marcado una retención de 15 dias.

Enable-AzStorageDeleteRetentionPolicy -StorageAccount $cuentaalmacenamiento

Si lo queremos desactivar pues algo similar con el cmdlet Disable-AzStorageDeleteRetentionPolicy. En el ejemplo vemos la desactivación de la funcionalidad por cuenta de almacenamiento, también lo podríamos aplicar sobre un grupo de recursos completo afectando a varias cuentas de almacenamiento, etc..

Disable-AzStorageDeleteRetentionPolicy -StorageAccount $cuentaalmacenamiento

Gestionando la configuración de eliminación temporal en Azure File Service

De la misma manera podemos activar la potencial recuperación de archivos borrados en el servicio de Azure File Service, para ello usaremos de nuevo las variables definidas anteriormente. Como en el anterior ejemplo primero vamos a comprobar si está opción está ya activada con el cmdlet Get-AzStorageFileServiceProperty

Get-AzStorageFileServiceProperty -StorageAccountName $nombrecuentaalmacenamiento -ResourceGroupName $nombregruporecursos | Select-Object ShareDeleteRetentionPolicy | Format-Custom

Para activarlo utilizaremos el cmdlet Update-AzStorageFileServiceProperty como vemos a contiinuación.

Update-AzStorageFileServiceProperty -StorageAccountName $nombrecuentaalmacenamiento -ResourceGroupName $nombregruporecursos -EnableShareDeleteRetentionPolicy $true -ShareRetentionDays 15

Lo podemos desactivar, simplemente marcando como “false” la propiedad EnableShareDeleteRetentionPolicy

Update-AzStorageFileServiceProperty -StorageAccountName $nombrecuentaalmacenamiento -ResourceGroupName $nombregruporecursos -EnableShareDeleteRetentionPolicy $false