Je voudrais configurer une fonction d'azur, qui fonctionnerait toutes les 4h, récupérez une JWK à partir d'une URL (ce n'est pas celui que je montrent ci-dessous) et sauvegardez-le dans une voûte de clé comme un secret.
Quand J'essaie le code PowerShell à la ligne de commande, cela fonctionne simplement: P>
PS C:\> $x5c = (Invoke-WebRequest https://login.microsoftonline.com/common/discovery/v2.0/keys | >> ConvertFrom-Json | >> Select-Object -expand keys | >> Where-Object -Property kid -Eq SsZsBNhZcF3Q9S4trpQBTByNRRI) | >> Select-Object -expand x5c PS C:\> $secretvalue = ConvertTo-SecureString $x5c -AsPlainText -Force PS C:\> $secret = Set-AzKeyVaultSecret -VaultName my-keyvault -Name 'MyLittleSecret' -SecretValue $secretvalue
3 Réponses :
Compress-Archive -Path * -DestinationPath Function1.zip
Je suis confus par votre réponse: 1. Pourquoi dois-je poser ma sélection de code si je l'ai déjà entré dans le navigateur (s'il vous plaît voir ma capture d'écran) et cliquer sur "Enregistrer"? 2. Comment utiliser login-azaccount code> dans une fonction chronométrée, sans que je saisi le mot de passe?
Je pense que j'aurais dû être plus clair, je voulais que vous vérifiez que le contenu soit identique ou non. Vous pouvez le faire en téléchargeant le contenu et en comparant qu'avec le local. docs.microsoft. Com / fr-US / Azure / Azure-Fonctions / ...
Si vous utilisez l'identité gérée dans votre fonction Azure, vous n'avez même pas besoin de vous connecter manuellement à votre compte Azure.
Azure PowerShell fonctionne-t-il dans une fonction? P>
Oui, cela fonctionnera. P>
faut-il d'abord un login-azaccompount? P> blockQuote>
Non, vous n'avez pas besoin de le faire. P>
Pour plus de détails, veuillez suivre les étapes ci-dessous. P>
1.LAquez-vous créé l'application de fonction avec les paramètres tels que ci-dessous. p>
2.Après création de l'application Fonction, accédez au
Identité code> de l'application dans le portail, activez le système attribué au système comme ci-dessous. P>
3.Navigate à Votre KeyVault dans le portail ->
Stratégies d'accès CODE> ->
Ajouter une stratégie d'accès code> -> Recherchez votre nom de fonction (le MSI a le même nom que votre fonction) et ajoutez-le avec Corrigez les autorisations secrètes. P>
4. Dans la fonction, pas besoin de vous connecter manuellement, il se connectera automatiquement avec le MSI, il suffit d'utiliser La commande ci-dessous, cela fonctionne bien sur mon côté. p>
xxx pré> Vérifiez le keyvault: < / p>
J'ai suivi votre suggestion et j'ai ajouté le MSI aux stratégies d'accès Keyvaul, avec les autorisations pour obtenir, liste, définir des secrets. Pour une raison quelconque lorsque je clique sur Fonction -> Code + Test -> Exécutez, les journaux ne représentent que "Connexion aux idées de l'application ..." et la sortie "202 acceptée", mais rien d'autre ne se produit et il n'y a pas de nouveau secret créé.
@AlexanderFarber Pourriez-vous essayer mon script complet, voir si $ secret.name code> sera écrit? Et il peut y avoir un certain retard, pourriez-vous vérifier le keyvalt plus tard? Ou s'il vous plaît créer une nouvelle application de fonction PowerShell pour essayer, activez la perspective de l'application, certains bugs dans la nouvelle interface utilisateur.
J'ai encore essayé aujourd'hui et ça a fonctionné. Merci pour le guide détaillé. Savez-vous s'il existe une commande AZ CLI pour la création de l'identité attribuée au système? Est-ce que c'est fait par AZ GestionnéApp ? Je demande parce que mon application de fonction doit être créée par un pipeline Azure
@AlexanderFarber Utilisez ce docs.microsoft.com/en-us/cli/azure/fonctionApp/...
Une autre approche alternative consiste à l'obtenir de KeyVault à l'exécution et à la stocker dans la configuration, puis utilisez les valeurs de configuration dans le code. Reportez-vous: HTTPS: // DOCS. microsoft.com/en-us/azure/app-service/app-service-key-vault-ferferences P>
la configuration sera quelque chose comme ça USERNAMEKV: @ Microsoft.keyvault (Secreturi = https: //myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109C51A1f14CDB1931) Passwordkv: @ Microsoft.KeyVault (Secreturi = https: //myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109C51A1f14CDB1931) P>
Salut joie, merci pour votre réponse! J'ai besoin de quelques jours pour tester votre réponse très détaillée (déjà upéted)
Eh bien, bonne chance, tout problème n'hésitez pas à me faire savoir. ;-)