无法向Azure资源管理器注册提供程序Microsoft.Kusto:resources.ProvidersClient#Register:响应请求失败:StatusCode=403

tquggr8v  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(115)

code snippet
完整错误:无法向Azure资源管理器注册提供程序Microsoft. ServiceFabricMesh:resources.ProvidersClient#Register:未能响应请求:403--原始错误:autorest/azure:服务返回错误。Status = 403 Code ="AuthorizationFailed" Message ="对象ID为'xxxxxxxxxxxxxxxxxxxxxxxxx'的客户端'xxxxxxxxxxxxxxxxxxx'无权在作用域'0000000000000000000000'上执行操作'Microsoft. ServiceFabricMesh/register/action',或者作用域无效。如果最近授予了访问权限,请刷新您的凭据。
提供商["www.example.com"],在www.example.com第18行,在提供商"azurerm"中:registry.terraform.io/hashicorp/azurerm"], on backend.tf line 18, in provider "azurerm": 18: provider "azurerm"
我尝试了这里提到的方法,但它没有工作。
terraform plan not working with azurerm provider
https://www.devopsschool.com/blog/azure-how-to-create-iam-user-and-assign-service-principal-access/

mzmfm0qo

mzmfm0qo1#

我们尝试使用上述不同的提供程序配置来配置示例资源。我们得到了所需的输出,没有任何错误。
在这里,我尝试提供一个示例资源,该资源具有对提供的有限访问,以显示我们如何将访问作为IAM用户服务主体访问提供。
要做到这一点,我们可以通过两种方式做到这一点。
1.通过门户直接分配贡献者角色,直到容器级别,我们将状态文件存储在远程位置以进行版本控制。
1.在执行terraform命令之前,通过CLI导入角色访问。
通过你分享的链接,我希望你尝试通过门户网站提供访问。
现在尝试导入角色访问权限,每当你在terraform工作时,如下所述。

*az登录
*az账户设置--订阅0000000 - 0000 - 0000 - 0000-00000000000
*az角色分配创建--角色“贡献者”--受让人0000000 - 0000 - 0000 - 0000- 000000000000--scope“/subscributions/00000000 - 0000 - 00000000000000/resourceGroups/xyz/providers/"

完成以下步骤后,请使用下面提到的提供程序配置。

**注意:**这是演示配置,以显示提供程序正常工作,没有任何故障。

terraform {

required_providers {

# api = {

#   source = "Azure/azapi"

# }



azapi = {

  source  = "azure/azapi"

  version = "=1.2.0"

}




azurerm = {

  source  = "hashicorp/azurerm"

  //version = "=3.0.2"

  version = "=3.57.0"

  // version = "~> 2.0.0"

}

}
  

backend  "azurerm" {

resource_group_name  =  "your_resource-group"

storage_account_name  =  "demostorageaccount"

container_name  =  "democontainer"

key  =  "terraform.tfstate"

}

}

  

provider  "azurerm" {

features {}

subscription_id  =  "000000-0000-0000-0000-0000000000"

tenant_id  =  "000000-0000-0000-0000-0000000000"

}

  

resource  "azurerm_virtual_network"  "example" {

name  =  "example-vnet"

address_space  =  ["10.0.0.0/16"]

location  =  "West US"

resource_group_name  =  "v-bolliv-Mindtree"

}

输出:

Terraform_init

*terraform_plan

terraform_apply

通过此配置,我们可以执行所有必要的terraform步骤,并获得所需的输出,因为我们是目标订阅中服务主体下的所有提供者的提供者访问。

相关问题