无法使用 terraform azure 管道从 Azure keyvault 获取 azure sql server 管理员密码的密码,其在本地工作

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

错误:在 Azure KeyVault Secret sqladminpassword 上发出读取请求:keyvault.BaseClient#GetSecret:响应请求失败:StatusCode=403 -- 原始错误:autorest/azure:服务返回错误。 Status=403 Code="Forbidden" Message="用户、组或应用程序 'appid=***;

没有秘密获得密钥保管库的许可

注意:我在通过天蓝色管道部署、在本地尝试时遇到此错误。 为此使用 terraform

我已经尝试了所有权限,一切都很好,如何修复它

terraform azure-pipelines azure-keyvault azure-service-principal serviceconnection
1个回答
0
投票

点号1

请检查与您的服务连接关联的服务主体是否有权从您的 Azure 密钥保管库获取机密。 如果不是,您需要将 Key Vault 管理员角色授予与 Azure 管道关联的服务主体。

第2点

检查 terraform 配置中向 azure pipeline 服务主体授予的许可

resource "azurerm_key_vault_access_policy" "example" {
  key_vault_id = azurerm_key_vault.example.id
  tenant_id    = data.azurerm_client_config.current.tenant_id
  object_id    = data.azurerm_client_config.current.object_id

  key_permissions = [
    "Get",
  ]

  secret_permissions = [
    "Get",
  ]
}

data "azuread_service_principal" "example" {
  display_name = "example-app"
}

resource "azurerm_key_vault_access_policy" "example-principal" {
  key_vault_id = azurerm_key_vault.example.id
  tenant_id    = data.azurerm_client_config.current.tenant_id
  object_id    = data.azuread_service_principal.example.object_id

  key_permissions = [
    "Get", "List", "Encrypt", "Decrypt"
  ]
}

希望这可以帮助您实现目标 很高兴能和你合作

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