azure - 执行 Terraform 执行计划时凭证失败

标签 azure terraform

我正在尝试执行下面给出的示例地形计划。

# Configure the Microsoft Azure Provider
provider "azurerm" {
  subscription_id = "..."
  client_id       = "..."
  client_secret   = "..."
  tenant_id       = "..."
}

    # Create a resource group
    resource "azurerm_resource_group" "production" {
        name     = "production"
        location = "West US"
    }

    # Create a virtual network in the web_servers resource group
    resource "azurerm_virtual_network" "network" {
      name                = "productionNetwork"
      address_space       = ["10.0.0.0/16"]
      location            = "West US"
      resource_group_name = "${azurerm_resource_group.production.name}"

      subnet {
        name           = "subnet1"
        address_prefix = "10.0.1.0/24"
      }

      subnet {
        name           = "subnet2"
        address_prefix = "10.0.2.0/24"
      }

      subnet {
        name           = "subnet3"
        address_prefix = "10.0.3.0/24"
      }
    }`enter code here`

我按照 [1] 通过创建 Active Directory 应用程序生成凭据,并在上述计划中使用了正确的 subscription_id、client_id、client_secret、tenant_id 并对其执行了“terraform plan”。但我遇到了以下错误。

刷新状态时出错:发生 1 个错误:

  • 访问 Azure 资源管理器 API 的凭据可能不正确,或者 服务主体无权使用 Azure 服务管理 API。

[1] https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/

对此有什么想法吗?

最佳答案

似乎在 terraform 文档中,他们没有包含向服务主体分配角色的步骤。按照以下步骤操作即可。

1) 按照此链接 https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal-cli/ 通过 Azure CLI 创建服务主体它将角色分配给服务主体 2) 转到Azure RM门户-->Active Directory-->应用程序注册-->创建 key 3) 在 .tf 文件中使用上面的适当值。

然后运行命令 terraform plan。

关于azure - 执行 Terraform 执行计划时凭证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38948910/

相关文章:

mysql - 在Azure下哪里可以运行mysql命令行来修复 "The used command is not allowed with this MySQL version (1148)"

azure - Azure 网站中的文件夹权限

python - 如何在azure管道中设置多个图像

rounding - Terraform 是否支持数学舍入?

terraform - 创建具有版本控制的 GCS 存储桶

amazon-web-services - 网络接口(interface)与子网 ID 冲突 - Terraform AWS 提供商

python - Azure 语音到文本 0x38 (SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND)

.net - 异常:使用 context.Forward() 和 AuthBot 时堆栈为空?

amazon-web-services - 用于管理 AWS 无服务器基础设施的 Terraform 或 cloudform

amazon-web-services - 如何使用与 terraform 中的最新/非限定 lambda 函数相同的事件源映射设置 lambda 别名