Terrafrom 后端 Azure Blob 存储的“授权权限不匹配”

问题描述 投票:0回答:1

我不明白。我创建一个 Azure 存储帐户。我向服务主体授予了存储帐户的存储 Blob 数据贡献者存储队列数据贡献者权限。

我在 Terraform 中的后端配置是:

  backend "azurerm" {
    storage_account_name = "storage_account"
    container_name       = "tfstate"
    key                  = "terraform.tfstate"
    client_id            = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    subscription_id      = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    tenant_id            = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    use_azuread_auth     = true
  }
}

但是,当我运行 terraform init 时,我得到:

Error: Failed to get existing workspaces: containers.Client#ListBlobs: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="AuthorizationPermissionMismatch" Message="This request is not authorized to perform this operation using this permission.\nRequestId:18cdcac5-001e-002d-18b1-9a6185000000\nTime:2024-04-30T03:47:06.1161648Z"

除了将 SPN 的 IAM 添加到存储帐户之外,有关存储帐户的其他所有内容都是默认的。

我在网上看到的所有指南几乎都建议相同的事情(IAM 权限),但在我的一生中,我无法让它发挥作用。

azure terraform
1个回答
0
投票

已解决:https://192dot.medium.com/azure-storage-account-disable-shared-key-access-312f7cebef6c

当我将容器切换到“Entra ID”时,带有 SPN 的 terraform init 将按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.