使用令牌在 Linux 上使用 Terraform 编写 Azure 身份验证脚本
Scripting Azure authentication with Terraform on Linux using a token
- 我想创建一个 python script 利用 Azure 上的 Terraform VM 部署(这是一个教育项目 - 所以这背后没有真正的推理,但所有这些都应该用一个脚本完成)
- 我已经使用 Azure CLI 和 Terraform
成功创建了 VM
az login
terraform init
terraform validate
terraform apply
- 问题是
az login
使用 浏览器身份验证 ,教育项目(没有任何用户交互的单个 .py 脚本)不允许这样做。 Azure CLI 可以使用登录名和密码(不适用于启用双因素身份验证)
az login -u <username> -p <password>
可以用用户名和密码完成一些工作,但这并不理想 - 与队友共享您的 Microsoft 帐户并在 python 脚本中使用凭据而不是 代币.
您如何建议 授予我的队友和 terraform 对 Azure 的访问权限,从而创建一个使用一些外部令牌类文件的部署脚本? (Azure 资源的托管身份可用于对支持 Azure Active Directory 身份验证的服务进行身份验证,但我不知道这是关于什么的)
你提供了 azure-pipelines 标签,所以不确定这是否意味着你正在使用 Azure DevOps。
如果是这样,那将使它变得更容易,因为您可以 create a service connection within ADO (which will create a service principal in AAD in the background) that you can use to run your pipeline so you won't have to run az login
within your scripts. You can check out Charles Zipp's ADO pipeline task for Terraform 我发现它比 Microsoft 的 Terraform 任务更灵活。如果您设置管道,则可以在管道(甚至服务连接)上设置访问控制,以仅允许您想要的人 运行 管道。
如果您不使用 ADO 而只是想 运行 在本地进行操作,那么您需要 create a service principal and provide the credentials in the provider block 正如@AnsumanBal-MT 在对您的问题的评论中提到的那样。
- 我想创建一个 python script 利用 Azure 上的 Terraform VM 部署(这是一个教育项目 - 所以这背后没有真正的推理,但所有这些都应该用一个脚本完成)
- 我已经使用 Azure CLI 和 Terraform 成功创建了 VM
az login
terraform init
terraform validate
terraform apply
- 问题是
az login
使用 浏览器身份验证 ,教育项目(没有任何用户交互的单个 .py 脚本)不允许这样做。 Azure CLI 可以使用登录名和密码(不适用于启用双因素身份验证)
az login -u <username> -p <password>
可以用用户名和密码完成一些工作,但这并不理想 - 与队友共享您的 Microsoft 帐户并在 python 脚本中使用凭据而不是 代币.
您如何建议 授予我的队友和 terraform 对 Azure 的访问权限,从而创建一个使用一些外部令牌类文件的部署脚本? (Azure 资源的托管身份可用于对支持 Azure Active Directory 身份验证的服务进行身份验证,但我不知道这是关于什么的)
你提供了 azure-pipelines 标签,所以不确定这是否意味着你正在使用 Azure DevOps。
如果是这样,那将使它变得更容易,因为您可以 create a service connection within ADO (which will create a service principal in AAD in the background) that you can use to run your pipeline so you won't have to run az login
within your scripts. You can check out Charles Zipp's ADO pipeline task for Terraform 我发现它比 Microsoft 的 Terraform 任务更灵活。如果您设置管道,则可以在管道(甚至服务连接)上设置访问控制,以仅允许您想要的人 运行 管道。
如果您不使用 ADO 而只是想 运行 在本地进行操作,那么您需要 create a service principal and provide the credentials in the provider block 正如@AnsumanBal-MT 在对您的问题的评论中提到的那样。