在Terraform的订阅下创建一个Azure资源组



我正在查看Terraform Docs创建Azure组的示例:

resource "azurerm_resource_group" "test" {
  name     = "testResourceGroup1"
  location = "West US"
  tags = {
    environment = "Production"
  }
}

它没有在任何地方指定订阅。

如何指定订阅?

在您的问题上,您知道Terraform通过Azure CLI部署Azure资源。

有四种方法可以进行身份验证。

使用Azure Cli

对Azure进行身份验证

使用托管服务身份

对Azure进行身份验证

使用服务主体和客户证书对Azure进行身份验证

使用服务主体和客户秘密

对Azure进行身份验证

如果未在Terraform代码中设置租户ID和订阅ID,则必须在默认情况下使用第一个方法。您可以通过Azure CLI进行身份验证,并使用您登录Azure CLI的帐户。因此,您在CLI中设置了哪种订阅,然后将其用于Terraform。

,但按照Terraform的建议:

我们建议使用服务本金或托管服务 非交互运行地Terraform时的身份(例如 在CI服务器中运行Terraform) - 并使用Azure进行身份验证 当地运行Terraform时的CLI。

,您可以根据需要授予服务原理的更合适的许可。

当您配置Terraform登录到Azure时,将设置订阅。推荐的方法是使用Azure AD服务原理和环境变量。

要配置Terraform以使用您的Azure AD服务主体,请设置以下环境变量,然后由Azure Terraform模块使用。如果与Azure Public以外的Azure Cloud一起工作,您也可以设置环境。

  • ARM_SUBSCRIPTION_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET
  • ARM_TENANT_ID
  • ARM_ENVIRONMENT

参考

相关内容

最新更新