Voici le problème Key-Vault auquel je suis confronté. J'ai un Key-Vault qui stocke certaines clés utilisées dans l'application Web et les fonctions utilisant @ Microsoft.KeyVault (SecretUri =) La valeur du secret changera tous les trois jours à l'aide d'une automatisation. Cela modifiera également le numéro de version (GUID), puis la valeur de paramètre de l'application (au moins un dans le cas de primaire et secondaire) deviendra invalide. Existe-t-il un moyen de faire référence à la dernière valeur de KeyVault dans les paramètres de l'application. La mise à jour des paramètres de l'application sur tout le site Web sera un processus fastidieux.
3 Réponses :
Avec le SDK Azure Python, vous pouvez faire quelque chose comme ceci:
kv_client.get_secret("https://%kvname%.vault.azure.net/", name, KeyVaultId.version_none) # or this kv_client.get_secret("https://%kvname%.vault.azure.net/", name, "")
les deux extrairont la dernière version du secret. donc je suppose que faire cela dans le code en c # serait plus ou moins identique (ou au moins possible). Pas si sûr des paramètres des applications Web = \.
Vous pouvez probablement utiliser une sorte d'automatisation (comme PowerShell) pour les mettre à jour.
C’est ce que je ne veux pas faire.
essayez de passer une chaîne vide à la version secrète, aussi, si vous ne voulez pas le faire - cela ne signifie pas que vous avez d'autres options;)
La raison en est: il y aura n nombre de sites Web et d'applications de fonction au sein de l'organisation utilisant la même logique pour autoriser les demandes en fonction de ces clés dans les paramètres de l'application. Si j'utilise le code .net pour accéder au coffre-fort au lieu des paramètres de l'application, cela augmentera le temps de traitement de la demande
transmettez-le aux paramètres de l'application
S'il y a un moyen que le numéro de version reste le même, ce serait idéal pour mon cas
non, si vous mettez à jour le secret cela générera une nouvelle version
Les références de Key Vault sont actuellement en préversion.
Une référence Key Vault est de la forme @ Microsoft.KeyVault ({referenceString}), où {referenceString} est remplacé par l'une des options suivantes:
SecretUri = secretUri
où SecretUri
doit être l'URI du plan de données complet d'un secret dans Key Vault, y compris une version, par exemple https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931
VaultName = vaultName; SecretName = secretName; SecretVersion = secretVersion
où VaultName
doit être le nom de votre ressource Key Vault. Le SecretName
doit être le nom du secret cible. La SecretVersion
doit être la version du secret à utiliser.
Par exemple, une référence complète ressemblerait à ce qui suit:
@ Microsoft.KeyVault (SecretUri = https://myvault.vault.azure. net / secrets / mysecret / ec96f02080254f109c51a1f14cdb1931 )
Alternativement:
@ Microsoft.KeyVault (VaultName = myvault; SecretName = mysecret; SecretVersion = ec96f02080254f109c51a1f14cdb1931)
Dans l'aperçu actuel, des versions
sont requises. Lors de la rotation de secrets
, vous devrez mettre à jour la version dans la configuration de votre application.
Ensuite, je devrai peut-être créer un livre d'exécution pour mettre à jour la version dans tous les paramètres d'application des sites Web et des fonctions et déclencher ce livre d'exécution à l'aide de l'automatisation qui change la valeur secrète.
Exactement !, Cela pourrait être un runbook ou un appel de repos. docs.microsoft.com/en-us/rest/api/ appservice / webapps /…
Pour mon App Service, j'ai réussi à utiliser une référence Key Vault dans le formulaire ci-dessous sans version:
@Microsoft.KeyVault(SecretUri=https://<vault_name>.vault.azure.net/secrets/<secret_name>/)
Cependant, j'ai dû arrêter et démarrer (pas redémarrer) le App Service pour extraire la nouvelle valeur secrète du coffre de clés.
Cette barre oblique à la fin "
Merci. Cela n'a fonctionné qu'après avoir arrêté et redémarré mon application Web. C'est tellement mauvais Microsoft :(. Redémarrer n'a pas fonctionné pour moi non plus.
À partir de cette question, vous ne pouvez pas spécifier le numéro de version pour obtenir le secret. Vous pourriez essayer. stackoverflow.com/questions/48432376/...