Cet article concerne le secret de certaine informations, comme un mot de passe, un clé privée etc.
Dutant mon apprentissage sur azure devops, je suis passé par cette étape. Cependant je ne me suis pas servi précisément de ces varibles/files secrets au final car j’ai utilisé le « service connexions » . Néanmoins je trouve cela instrucif, alors je partage.
YAML - sécurité
Vous avez remarqué, je ne vous ai pas communiqué ma passphrase ni ma clé privée. Sinon vous auriez accès a mon serveur. Ma clé est sur mon poste de dev. La passphrase lisible dans mes scripts d’upload automatique. C’est pas ouf question sécu. Mais vu que je bosse tout seul dessus… ça va, ça passe.
Qu’en est il lorsque l’on travaille à plusieurs dev, avec des sys admins, du cloisement et un niveau de sécurité qui nécessite de pas trop déconner ? Il faut trouver un moyen de sécuriser ces données. Azure Devops utilise des « secure files » et des « secure variables » pour faire cela.
https://docs.microsoft.com/en-us/azure/devops/pipelines/library/secure-files?view=azure-devops
Ces données sont HORS repo git. Ainsi personne n’y aura accès en dehors de vous et des autorisations que vous leurs donnerez sur Azure Devops. Par contre elles seront stockées sur Azure Devops… les américains, la CIA, la NSA tout ça tout ça…
Commençons par enregistrer notre passphrase et lui donner la permission pour la pipeline du projet Azure Devops « Blazor Sandbox ». Pour cela on va créer une nouveau groupe de variables que j’ai nommé IKoulaGroup. Il faut aller dans Pipelines/Library et cliquer sur Variable group.
Ajouter une variable, donner lui un nom (ex MyPassPhraseIkoula) et une valeur (dans l’exemple Bangali)
Notez qu’à droite de la valeur d’une variable se trouve un petit bouton cadena qui permet de masquer celle ci. On y reviendra.
Retour sur le YAML
Maintenant que l’on a notre variable stockée sur Azure Devops on va pouvoir la récupérer dans notre pipeline
Voici comment :
On a une première variable qui était déjà là, celle qui concerne le type de build ‘Release’. Elle a un nom et une valeur. Celle ci ne concerne que la pipeline et ne sera vu que de l’agent qui s’occupe de cette pipeline.
Ensuite on a la déclaration du groupe IkoulaGroup qui contient une variable dont le nom est « MyPassPhrase » avec une valeur. Plus d’info sur la doc officielle ici.
Plus loin on affiche ces variables avec un echo. Deux façons de récupérer notre variable MyPassPhrase.
- tout simplement en l’appellant par $(MyPassPhrase)
- en utilisant une « expression de runtime » avec $[variables.MyPassPhraseIkoula]. Je pige pas trop ce truc, mais je pose ça la des fois que ça serve plus tard.
Maintenant un mot de passe ou une passphrase c’est pas censé être affiché tel quel. Vous vous souvenez du petit bouton cadena de tout à l’heure, qui se trouve a droite de votre variable dans la library de pipeline, cliquez dessus pour le vérouiller ainsi :
penser à sauvegarder et relancer la même pipeline :
notez que cette fois ci, le contenu de la variable est masqué par des ****
On sait maintenant comment cacher des informations.