gpt4 book ai didi

azure - 使用 terraform 创建 Data Lake Storage 表示 datalakestore.Client#GetProperties 即使它具有完全权限

转载 作者:行者123 更新时间:2023-12-03 06:56:55 24 4
gpt4 key购买 nike

我正在使用 Terraform 创建 Azure 数据湖存储。我通过服务原则进行身份验证,并且它已分配所有角色“存储、所有者、存储贡献者、存储 Blob 数据所有者、存储 Blob 数据贡献者”等。但它仍然失败,并出现以下错误

我使用的代码:

 resource "azurerm_storage_account" "syn_st" {
name = "st${var.prefix}${var.postfix}"
resource_group_name = var.rg_name
location = var.location
account_tier = var.storage_account_tier
account_replication_type = var.storage_account_replication_type
account_kind = var.storage_account_kind
is_hns_enabled = var.hns_enabled
}

resource "azurerm_role_assignment" "st_role_admin_c" {
scope = azurerm_storage_account.syn_st.id
role_definition_name = "Contributor"
principal_id = data.azurerm_client_config.current.object_id
}

resource "azurerm_role_assignment" "st_role_admin_sbdc" {
scope = azurerm_storage_account.syn_st.id
role_definition_name = "Storage Blob Data Contributor"
principal_id = data.azurerm_client_config.current.object_id
}

resource "azurerm_storage_data_lake_gen2_filesystem" "st_adls" {
name = "default"
storage_account_id = azurerm_storage_account.syn_st.id

depends_on = [
azurerm_role_assignment.st_role_admin_sbdc
]
}

错误:

 datalakestore.Client#GetProperties: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: error response cannot be parsed: "" error: EOF │

我使用的服务主体具有完全访问权限,如下所示:

enter image description here

不确定这里出了什么问题。有人可以帮忙吗?

最佳答案

当您使用 azurerm_role_assignment 将存储 Blob 数据贡献者角色显式分配给服务主体或用户并一次执行数据湖创建时,可能会失败,因为角色分配可能需要一些时间才能传播同时 adls gen2 可能没有所需的权限。

  • 所以请确保先申请职位,并给一些时间反射(reflect)在门户中,然后尝试创建资源azurerm_storage_data_lake_gen2
  • 并尝试升级 terraform 版本。

我已分配 contributer 和 azure storage data Contributor 角色
我可以成功创建资源。另外请确保您自己拥有所有者角色

enter image description here

门户网站:

enter image description here

enter image description here

另请尝试在存储帐户网络规则代码中添加子网。有时可能是由于防火墙被阻止或在同一区域中创建的。

resource "azurerm_storage_account_network_rules" "sa" {
resource_group_name =
storage_account_name =
default_action = "Deny"
bypass = ["AzureServices"]
virtual_network_subnet_ids = [module.virtual_network.subnet["public"].id]
}

引用文献:

  1. azurerm_storage_data_lake_gen2_filesystem:Failure responding to request:StatusCode=403 · Issue· GitHub
  2. suddenly unable to deploy a container file system.html

关于azure - 使用 terraform 创建 Data Lake Storage 表示 datalakestore.Client#GetProperties 即使它具有完全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72864226/

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