Azure Files avec Active Directory dans Azure

Page content

Description du service

Cet article présente l’intégration du service Azure Files disponible dans Azure avec Active Directory.

Pour plus d’informations sur ce service, il faut se reporter à ces articles:

Rôles disponibles (built-in)

Les rôles disponibles sont les suivants:

  • Storage File Data SMB Share Reader: allows read access in Azure Storage file shares over SMB.
  • Storage File Data SMB Share Contributor: allows read, write, and delete access in Azure Storage file shares over SMB.
  • Storage File Data SMB Share Elevated Contributor: allows read, write, delete and modify NTFS permissions in Azure Storage file shares over SMB.

Deploying

Les actions à réaliser pour intégrer un Storage Account (et donc un file share via Azure Files) dans un annuaire Active Directory sont les suivantes:

Je laisse les actions en anglais pour plus de facilités. Ces étapes sont décrites dans l’article indiqué ci-dessus.

  1. Enable Azure Files AD DS authentication on the storage account
  2. Assign access permissions for a share to the Azure AD identity (a user, group, or service principal) that is in sync with the target AD identity
  3. Configure ACLs over SMB for directories and files
  4. Mount an Azure file share to a VM joined to AD DS
  5. Update the password of the storage account identity in AD DS

Il sera nécessaire d’assigner un rôle (RBAC) et des permissions NTFS pour les comptes d’utilisateurs concernés.

Enable Azure Files AD DS authentication on the storage account

Pour effectuer cette étape, il est nécessaire de télécharger les sources d’un module PowerShell. Celui-ci est disponible à partir de ce lien: AzFilesHybrid module

Il s’agit d’un fichier Zip qu’il faut extraire sur une machine Windows ayant accès au Storage Account en question (Firewall rules). Avant d’exécuter le script PowerShell fourni (CopyToPSPath.ps1), il faut activer l’exécution de scripts PS non signés via la commande suivante: Set-ExecutionPolicy -ExecutionPolicy Unrestricted (en mode administrateur). Puis il faut exécuter le script CopyToPSPath.ps1.

Ce module PowerShell va permettre d’utiliser la CmdLet suivante: Join-AzStorageAccountForAuth

Avant d’exécuter les commandes présentées ci-dessous, il est nécessaire d’installer le module PowerShell Az pour Azure. Pour plus d’informations, il faut consulter l’article suivant: Powershell dans Azure. En effet le script utilise plusieurs commandes Az contenu notamment dans Az.Storage.

Pour vérifier que le feature a bien été activé sur le Storage Account, il faut exécuter les commandes PowerShell suivantes:

  • $storageaccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName
  • $storageAccount.AzureFilesIdentityBasedAuth.DirectoryServiceOptions
  • $storageAccount.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties

Les 2 dernières commandes doivent donner comme résultat: AD

Assign access permissions for a share to the Azure AD identity

On peut effectuer cette étape à l’aide du portail Azure, PowerShell ou Azure CLI. A l’aide de PowerShell, il faut exécuter les commandes suivantes:

  • $FileShareContributorRole = Get-AzRoleDefinition “Storage File Data SMB Share Contributor”
  • $scope = “/subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts//fileServices/default/fileshares/
  • New-AzRoleAssignment -SignInName -RoleDefinitionName $FileShareContributorRole.Name -Scope $scope

L’assignation peut durer quelques minutes.

Configure ACLs over SMB for directories and files

Il faut monter le share de manière classique sous Windows à l’aide de la commande suivante:

  • net use : \.file.core.windows.net<share-name> /user:Azure<storage-account-name>

Ensuite il faut assigner les bonnes permissions NTFS. On peut également utiliser l’outil icacls :

  • icacls : /grant :(f)

Mount an Azure file share to a VM joined to AD DS

Il s’agit ici de tester si tout fonctionne bien. Ce testing plan est à faire à partir d’une machine sous Windows qui est dans le même domaine Active Directory que le Storage Account et avec un compte utilisateur sur lequel a été assigné un rôle et des permissions NTFS. Si cet utilisateur arrive à monter le share, c’est gagné.

Pour effectuer ces tests, j’utilise un pool WVD mais on peut utiliser n’importe quelle instance du moment qu’elle soit rattachée au domaine Active Directory. Pour ouvrir la session j’utilise un compte sur lesquels j’ai associé rôle et permissions NTFS. Et je monte le share à l’aide de la commande suivante:

  • net use : \.file.core.windows.net<share-name>

Update the password of the storage account identity in AD DS

Dans le cas ou une expiration du mot de passe est appliquée sur l’OU contenant le compte représentant le Storage Account, il est nécessaire d’exécuter la commande suivante:

  • Update-AzStorageAccountADObjectPassword -RotateToKerbKey kerb2 -ResourceGroupName “” -StorageAccountName “

Securing

Pour plus d’informations sur la sécurité de ce service, il faut se reporter à cet article:

Training

Pour obtenir plus d’informations ou suivre un ou plusieurs modules de formation sur ce service, il faut consulter les liens suivants:

Troubleshooting

Pricing

n/a

Ressources

Last update 06.05.2020