Protéger les secrets dans Azure PowerShell

Lorsque vous gérez Azure ressources avec Azure PowerShell, la sortie des commandes peut exposer des informations sensibles que vous devez protéger. Par exemple, Azure PowerShell peut afficher des mots de passe, des jetons ou des clés dans la sortie lorsque vous les créez. Certaines commandes peuvent également stocker la sortie dans les fichiers journaux. Ce scénario est souvent le cas lorsque vous utilisez GitHub Actions ou Azure DevOps.

Comprendre le risque

Il est essentiel de protéger les secrets et les informations sensibles. Lorsqu’ils sont mal gérés, ils peuvent devenir accessibles à des utilisateurs non autorisés. Les erreurs utilisateur, telles que les scripts mal configurés ou la saisie incorrecte de secrets en texte brut en tant que valeurs pour les paramètres, peuvent exposer des détails sensibles dans les journaux, l’historique des commandes ou les systèmes de contrôle de version.

Message d’avertissement

Azure PowerShell affiche un message d’avertissement par défaut à partir de la version 12.0.0 pour vous aider à protéger les informations sensibles lorsqu’il identifie un secret potentiel dans la sortie d’une commande.

Désactiver le message d’avertissement

Dans l’exemple suivant, l’applet Update-AzConfig de commande est utilisée pour désactiver le message d’avertissement.

Update-AzConfig -DisplaySecretsWarning $false

Vous pouvez également utiliser la variable d’environnement $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING pour désactiver le message d’avertissement.

Set-Item -Path Env:\AZURE_CLIENTS_SHOW_SECRETS_WARNING -Value $false

Passer des « Strings » à « SecureStrings »

Pour améliorer la sécurité et réduire le risque de fuites d’informations d’identification, le type de sortie par défaut de l’applet Get-AzAccessToken de commande est passé d’un texte String brut à un SecureString, en commençant par Az.Accounts version 5.0.0 et Az version 14.0.0.

Les jetons d’accès sont des informations d’identification sensibles qui accordent l’accès à Azure ressources. Les renvoyer comme du texte brut augmente le risque de divulgation accidentelle dans les journaux, les transcriptions ou les sessions interactives. En basculant vers SecureString, l’applet de commande permet d’empêcher l’affichage ou le stockage non sécurisé des jetons.

Si votre scénario nécessite le jeton en texte brut, ce qui est fortement déconseillé, vous pouvez le convertir manuellement. Pour obtenir des conseils, consultez Comment puis-je convertir un SecureString en texte brut dans PowerShell ?.