0
  • 我想使用 Azure 上的Terraform VM 部署创建一个 python脚本(这是一个教育项目 - 所以这背后没有真正的推理,但所有事情都应该用一个脚本完成)
  • 我已经使用Azure CLITerraform成功创建了 VM
az login
terraform init
terraform validate
terraform apply
  • 问题是az login使用浏览器身份验证,教育项目不允许这样做(没有任何用户交互的单个 .py 脚本)。Azure CLI 可以使用登录名和密码(不适用于启用双因素身份验证)
az login -u <username> -p <password>
  • 它可以通过用户名和密码来完成,但它几乎不理想 - 与队友共享您的 Microsoft 帐户并在 python 脚本中使用凭据而不是token

  • 您如何建议授予我的队友和 terraform 对 Azure 的访问权限,从而创建一个使用一些外部令牌类文件的部署脚本?(Azure 资源的托管标识可用于对支持 Azure Active Directory 身份验证的服务进行身份验证,但我不知道这是什么意思)

4

1 回答 1

1

您提供了 azure-pipelines 标记,因此不确定这是否意味着您正在使用 Azure DevOps。

如果是这样,那将更容易,因为您可以在 ADO 中创建一个服务连接(这将在后台在 AAD 中创建一个服务主体),您可以使用它来运行您的管道,这样您就不必az login在您的脚本中运行. 您可以查看Charles Zipp 的 Terraform 的 ADO 管道任务,我发现它比 Microsoft 的 Terraform 任务更灵活一些。如果您设置管道,则可以在管道(甚至服务连接)上设置访问控制,以仅允许您想要运行管道的人。

如果您不使用 ADO 并且只想在本地运行,那么您需要创建一个服务主体并在提供程序块中提供凭据,正如@AnsumanBal-MT 在您的问题的评论中提到的那样。

于 2021-11-02T03:13:45.073 回答