为 Azure 资源管理验证 powershell 脚本的最佳方式

Best way to authenticate powershell script for Azure resource managment

要向 Azure 进行身份验证并使用 Azure 资源管理器 cmdlet,我目前使用概述的方法 here,即使用 Azure Active Directory 帐户,加密密码,将加密的字符串存储在文本文件中,并在脚本中使用时将其读入凭据对象。

但我觉得也许我应该改用管理证书。

有一种使用发布设置文件的记录方法,但显然它不适用于 AzureRm cmdlet,仅适用于较旧的 cmdlet。

我看过使用 Powershell 创建 application_id 和服务主体的示例,以及验证 C# 应用程序的示例,但我似乎找不到任何说明如何使用管理证书的内容在 powershell 脚本中进行身份验证,以使用 AzureRm cmdlet。

也许安全的字符串密码存储方法是正确的。但我对此不太了解。

你用什么?

你应该看看 Service Principal

https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/

https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/

最好的方法是什么?这取决于什么对你很重要。易用性、安全性、脚本?

Microsoft Azure 工具(Visual Studio、Azure Powershell 和 CLI)最近转向基于 Azure AD 的更细粒度、基于角色的访问控制方法。目前这是一种非常好的方法,因为管理证书允许所有者在订阅级别进行管理,并且已被证明在 Azure 自动化等环境中相当困难。

参考文献