要向Azure进行身份验证并使用Azure资源管理器cmdlet,我目前使用此处概述的方法,即使用Azure Active Directory帐户,加密密码,将加密字符串存储在文本文件中,并在脚本中使用时将其读取到凭据对象中。
但我觉得也许我应该使用管理证书。
有一种文档化的方法可以使用发布设置文件,但显然这不适用于AzureRm cmdlet,只适用于较旧的cmdlet。
例如,我看到了使用Powershell创建application_id和服务主体的示例,以及对C#应用程序进行身份验证的示例,但我似乎找不到任何显示如何在Powershell脚本中使用管理证书进行身份验证、使用AzureRm cmdlet的示例。
也许安全的字符串密码存储方法是正确的。但我对此没有很好的感觉。
你用什么?
最好的方法是什么?这取决于什么对你来说很重要。易用性、安全性、脚本编写?
Microsoft Azure Tooling(Visual Studio、Azure Powershell和CLI)最近转向了一种基于Azure AD的更精细、基于角色的访问控制方法。这目前是一种非常好的方法,因为管理证书允许所有者在订阅级别进行管理,并且在Azure Automation等环境中已被证明相当困难。
参考
- https://azure.microsoft.com/de-de/blog/azure-automation-authenticating-to-azure-using-azure-active-directory/
- https://azure.microsoft.com/en-us/documentation/articles/cloud-services-certs-create/#what-是管理证书
- http://blogs.msdn.com/b/cloud_solution_architect/archive/2015/03/17/rbac-and-the-azure-resource-manager.aspx
- https://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-configure/
- https://azure.microsoft.com/en-us/documentation/articles/resource-group-rbac/#concepts
您应该看看服务主体
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/