Search code examples
powershellazureazure-storageazure-hdinsightazure-resource-manager

Best way to authenticate powershell script for Azure resource managment


To authenticate to Azure and use the Azure Resource Manager cmdlets, I currently use the methods outlined here, namely using an Azure Active Directory account, encrypting the password, storing the encrypted string in a text file, and reading that into a credential object when using it in the script.

But I get the sense that maybe I should be using management certificates instead.

There is a documented method to use a publish settings file, but apparently that doesn't work for AzureRm cmdlets, only older cmdlets.

I have seen examples for using Powershell to create an application_id and service principal, and for authenticating a C# app, for instance, but I can't seem to find anything showing how to use management certificates for authentication in a powershell script, to use AzureRm cmdlets.

Maybe the secure string password storage method is the right one. But I don't have a good sense for that.

What do you use?


Solution

  • The best way to do it? It depends what is important to you. Ease of use, security, scripting?

    Microsoft Azure Tooling (Visual Studio, Azure Powershell and CLI) lately moved to a more fine-granular, role-based access control approach based on Azure AD. This is currently a pretty good way to do it, since Management certificates allow owners to manage at subscription level and have proven to be rather difficult in environments like Azure Automation.

    Refs