我希望我的 terraform 脚本能够使用多个服务主体对多个 azure 订阅进行身份验证。
这是我的想法:
$ export ARM_SUBSCRIPTION_ID=159f2485-xxxx-xxxx-xxxx-xxxxxxxxxxxx # Client subscription
$ export ARM_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # client_id of the service principal
$ export ARM_CLIENT_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
$ export ARM_TENANT_ID=72f988bf-xxxx-xxxx-xxxx-xxxxxxxxxxxx # the same tenant for all clients
这是正确的吗?
在使用 terraform 云时,您是否有更安全的方式对多个订阅进行身份验证? (理想情况下没有 client_secret)
答案 0 :(得分:1)
如果容器实例可以运行Terraform脚本,那么步骤没有问题。您授予服务主体权限并为不同的订阅更改环境变量 ARM_SUBSCRIPTION_ID
,然后 Terraform 脚本适用于不同的订阅。
更安全的方法是使用 authentication with Azure CLI。如果您使用 CLI 命令设置不同的订阅:
az account set --subscription="SUBSCRIPTION_ID"
然后 Terraform 脚本也适用于不同的订阅。这样你就不需要将secret设置为环境变量了。