在 Azure Key-vault 中哪里可以找到机密的范围

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

我需要为我的应用程序服务添加角色,以便它可以访问 Azure key-vault 中的机密 我在哪里可以找到秘密的范围?

resource "azurerm_role_assignment" "GetKey" {
  scope              = ????????? # how can I find the scope for the secret here ?
  principal_id       = azurerm_web_app.this.identity.0.principal_id
  role_definition_name = "Get"
}
azure terraform azure-keyvault
3个回答
2
投票

范围是根据 keyvault ID 构建的。我用过类似的东西:

resource "azurerm_key_vault" "example" {
# I think you need the following line as well
  enable_rbac_authorization       = true
...
}

resource "azurerm_role_assignment" "GetKey" {
  scope              = "${azurerm_key_vault.example.id}/secrets/<your secret name>"
  principal_id       = azurerm_web_app.this.identity.0.principal_id
  role_definition_name = "Reader"
}

正如 Jorgen 指出的,我认为在使用“azurerm_key_vault_access_policy”时可以采取类似的方法,但我还没有测试过。您可以在此处指定“获取”、“列表”等权限。


0
投票

要授予对机密的访问权限,您还需要使用 azurerm_key_vault_access_policy。除了资源权限之外,Key Vault 还具有控制对机密、密钥和证书的访问的权限级别。这是一个示例:azurerm_key_vault_access_policy:示例用法


0
投票

从 azurerm 3.100.0 开始,您可以使用

resource_versionless_id
资源(或数据)的
azurerm_key_vault_secret
属性,以便为特定机密分配权限。

data "azurerm_key_vault_secret" "secret" {
  name         = "my-secret"
  key_vault_id = local.key_vault_id
}

resource "azurerm_role_assignment" "secret" {
  scope = data.azurerm_key_vault_secret.secret.resource_versionless_id
  role_definition_name = "Key Vault Secrets User"
  principal_id         = azurerm_user_assigned_identity.main.principal_id
}

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