Gestionnaire de secrets PowerShell : de quoi s’agit-il ?
Lors d’une démo impliquant un script PowerShell on peut devoir saisir des credentials que l’on n’a pas spécialement envie de partager avec des centaines de personnes. On peut aussi, lors d’un projet, avoir besoin de credentials sans devoir s’embêter à les distribuer à toute l’équipe chaque fois qu’ils changent.
C’est pour répondre à ce genre de scénarios que Microsoft propose son Gestionnaire de secrets PowerShell.
Pour l’utiliser on a besoin de PowerShell 7 et d’installer le module suivant : Install-Module Microsoft.PowerShell.SecretManagement
Il installe SecretManagement qui permet de gérer des coffres aussi bien locaux que distants. SecretManagement n’impose pas de moyen d’authentification au coffre, il fournit juste une couche d’abstraction qui sera prise en charge par des modules spécialisés. Parmi les plus notoires, on trouve :
- Coffre local
- Azure Key Vault
- KeePass
- Hashicopr Vault
Et bien d’autres.
On a donc juste le module complémentaire à installer, par exemple pour SecretStore (le coffre local) : Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Et on est prêt !
On peut créer un secret, par exemple un mot de passe : Set-Secret -Name Secret1 -Secret « SecretValue »
Je ne le démontre pas dans cet article, mais String n’est pas le seul format supporté. On peut ensuite relire son mot de passe facilement : $mySecret = Get-Secret -Vault SecretStore -Name Secret1
La première fois, on reçoit une demande d’authentification au coffre bien entendu. Notez que l’on récupère non pas une string, mais une SecureString qu’il n’est ensuite pas difficile d’utiliser pour créer les credentials nécessaires à notre code.
On voit surtout qu’à aucun moment des valeurs en clair ne circulent et sont affichées, c’est précisément ce que l’on souhaite !
On pourra retrouver une démonstration un peu plus complète ici : https://amethyste16.wordpress.com/2021/07/25/le-gestionnaire-de-secrets-powershell/
Ecrit par Fréderic DE LENE MIROUZE Architecte .Net, Devops et Azure chez Expertime