gpt4 book ai didi

azurerm 角色分配,在提供程序中使用 client_id、client_secret、subscription_id、tenant_id 时无法分配角色

转载 作者:行者123 更新时间:2023-12-02 07:53:56 25 4
gpt4 key购买 nike

我正在使用 terraform 将“网络贡献者”角色分配给 azure vnet,并面临以下问题。无法理解问题并请求您的帮助。

工作场景(这会将角色成功分配给 vnet):

  1. az 登录(它提供设备代码并通过浏览器进行身份验证)。
  2. Terraform 代码;
    terraform {
    required_providers {
    azurerm = {
    source = "hashicorp/azurerm"
    version = "~> 2.0"
    }
    }
    required_version = "~> 1.0"
    }

    provider "azurerm" {
    features {}
    }

    resource "azurerm_role_assignment" "example" {
    scope = "/subscriptions/xxx/resourceGroups/scale-rg/providers/Microsoft.Network/virtualNetworks/scale-vnet"
    role_definition_id = "/subscriptions/xxx/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
    principal_id = "393b9aba-8a3d-48f5-b5fe-c0ed0eb81ce5"
    }```

非工作场景(需要帮助):

  1. 不同的计算机(无 az 登录)
  2. Terraform 代码;
 terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 2.0"
}
}
required_version = "~> 1.0"
}

provider "azurerm" {
features {}

use_cli = false
subscription_id = "xxx"
client_id = "xyz"
client_secret = "abc"
tenant_id = "fcf"
}

resource "azurerm_role_assignment" "example" {
scope = "/subscriptions/5cd3cd6f-667b-4a89-a046-de077806c368/resourceGroups/spectrum-scale-rg/providers/Microsoft.Network/virtualNetworks/spectrum-scale-vnet"
role_definition_id = "/subscriptions/5cd3cd6f-667b-4a89-a046-de077806c368/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
principal_id = "393b9aba-8a3d-48f5-b5fe-c0ed0eb81ce5"
}

如果使用上述 client_id、tenant_id、subscription_id、client_secret(它们是从 az account show 获取的,并且能够成功创建 vnet、子网等其他资源),则会出现以下错误;

错误:authorization.RoleAssignmentsClient#Create:响应请求失败:StatusCode=403 -- 原始错误:autorest/azure:服务返回错误。 Status=403 Code="AuthorizationFailed"Message="对象 ID '4d8a138b-5734-441a-a3cd-00f60be1d7c0' 的客户端 '4d8a138b-5734-441a-a3cd-00f60be1d7c0' 无权执行操作 'Microsoft.Authorization/roleAssignments/write' 范围 '/subscriptions/xxx/resourceGroups/scale-rg/providers/Microsoft.Network/virtualNetworks/scale-vnet/providers/Microsoft.Authorization/roleAssignments/144a2f0d-1f3b-fb7a-3e20-62261e44a9c1' 或范围无效。如果最近授予了访问权限,请刷新您的凭据。”

最佳答案

您收到此错误的原因是您运行 terraform 代码所使用的服务主体没有分配角色的权限。

要解决此问题,请为 Azure 订阅中的服务主体分配适当的 Azure RBAC 角色。允许角色分配的 RBAC 角色为 OwnerUser Access Administrator .

关于azurerm 角色分配,在提供程序中使用 client_id、client_secret、subscription_id、tenant_id 时无法分配角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69925835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com