Logs
Deux types de logs sont activables :
- Diagnostic settings : Permet d’envoyer les logs dans un Log Analytics
- Diagnostic settings (classic) : Permet d’envoyer les logs dans le répertoire $logs.
Selon MS, les logs de pre-auth en échec ne sont pas toujours envoyés dans le répertoire $logs.
« Classic Storage Analytics logging to $logs container is also supported, but note that not all pre-auth connection attempt failures are logged there. »
Il est recommandé de bien penser à activer la suppression automatique des logs pour éviter de la facturation supplémentaire.
Doc supplémentaire : https://learn.microsoft.com/en-us/answers/questions/1163494/where-to-find-connection-logs-for-azure-blob-stora
Tarification
https://azure.microsoft.com/en-us/pricing/details/storage/blobs
Cloisonnement des connexions
Connexion depuis un PowerBI
Connexion via Access Key :
- Dans Settings > Configuration : « Allow storage account key access : Enabled »
- Dans Networking, vu que la connexion est intra-Azure, il n’est pas nécessaire d’ouvrir de flux vu que la connexion se fait dans la même région (cf lien ci-dessous), passer en Disabled l’accès.
https://www.datalineo.com/post/securing-azure-storage-for-a-power-bi-implementation : Vrai ou faux ? Test KO
Connexion depuis Automation
Connexion via RBAC :
- Dans Settings > Configuration : « Allow storage account key access : Disabled »
- Dans Networking, vu que la connexion passe par Internet (forcément), autoriser l’accès via « Enabled from all networks »
Connexion via VM on-prem
Le flux est : VM -> Express Route -> Azure Private Link (Private Endpoint) -> Storage account
- Créer un Private Endpoint et ajouter l’entrée dans Private DNS Zones
- Dans Settings > Configuration : « Allow storage account key access : Enabled »
- Dans Networking, vu que la connexion passe par l’Express Route, autoriser l’accès via « Enabled from selected networks and IP addresses » et préciser la carte réseau du Private Endpoint
Cycle de vie des données
Suppression automatique des données ? Automation ou Azure Fonction – non maitrisé
Test création Lifecycle Management
https://thebernardlim.com/azure-storage-blob-delete-files-powershell
De MS :
#1. Blob Lifecycle Management (Recommended): Azure Storage provides a feature called Blob Lifecycle Management. With this, you can define policies to automatically delete blobs based on criteria such as their age (e.g., older than 30 days). Go to your Azure Storage Account.Navigate to Blob Service > Lifecycle Management. Define a policy to delete blobs older than your desired threshold (e.g., 14 days). Azure Storage will handle the deletion for you.
#2. Azure Functions: You can create an Azure Function that periodically checks each folder and deletes files older than a specified duration. Here’s a high-level approach: Create a Timer Trigger function. Fetch the list of blobs from the corresponding Blob Container. Check the LastModified property of each blob. Delete the blobs that don’t meet your criteria (e.g., older than 14 days).
Envoyer un fichier
Envoyer un fichier depuis une VM on-prem vers un storage account à travers un private endpoint :
#Our source File:
$file = "D:\Scheduled_scripts\Import_TelephoneNumber\xxx.csv"
#Get the File-Name without path
$name = (Get-Item $file).Name
#The target URL wit SAS Token
$uri = "https://xxx.privatelink.blob.core.windows.net/test/$($name)?sp=racwdli&st=2024-09-xxxxx"
#Define required Headers
$headers = @{
'x-ms-blob-type' = 'BlockBlob'
}
#Upload File...
Invoke-RestMethod -Uri $uri -Method Put -Headers $headers -InFile $file
Récupérer un fichier
(sans modules PS)
$BlobUri = 'https://xxx.privatelink.blob.core.windows.net/test/licencesm365.csv'
$Sas = '?sp=xxxx'
$OutputPath = 'C:\Temp\licencesm365.csv'
$FullUri = "$BlobUri$Sas"
(New-Object System.Net.WebClient).DownloadFile($FullUri, $OutputPath)
