es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener acceso a Azure Key Vault desde varios principales/usuarios utilizando una política de acceso.

Tengo un código de terraform que implementa una bóveda de claves de Azure usando el código:


data "azurerm_client_config" "current" {} resource "azurerm_key_vault" "keyvault" { name = "${local.environment}" resource_group_name = azurerm_resource_group.rg.name tenant_id = data.azurerm_client_config.current.tenant_id sku_name = "standard" access_policy { tenant_id = data.azurerm_client_config.current.tenant_id object_id = data.azurerm_client_config.current.object_id key_permissions = [ # Lista de permisos de clave... ] # Todos los permisos actualmente listados. secret_permissions = [ # Lista de permisos de secreto... ] storage_permissions = [ # Lista de permisos de almacenamiento... ] } }

Tengo un código determinado que se ejecuta bajo un principio diferente que se utiliza al implementar este código. Entonces, data.azurerm_client_config.current.object_id (también conocido como: El ID de objeto de un usuario, principal de servicio o grupo de seguridad en el inquilino de Azure Active Directory para la bóveda.) sería diferente dentro de ese código y, por lo tanto, los secretos no son accesibles para el código.

¿Cómo puedo modificar la access_policy para que diferentes usuarios/principales de servicio puedan acceder simultáneamente a la misma bóveda de datos?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para permitir que diferentes usuarios/principales de servicio accedan simultáneamente a la misma bóveda de datos, puedes agregar varios bloques access_policy al bloque de recursos azurerm_key_vault. Cada bloque puede tener un tenant_id y object_id únicos para especificar la identidad que necesita acceso a la bóveda.

    Aquí tienes un ejemplo de código:

    resource "azurerm_key_vault" "keyvault" {
      name                        = "${local.environment}"
      resource_group_name         = azurerm_resource_group.rg.name
      tenant_id                   = data.azurerm_client_config.current.tenant_id
    
      sku_name = "standard"
    
      access_policy {
        tenant_id = data.azurerm_client_config.current.tenant_id
        object_id = data.azurerm_client_config.current.object_id
        key_permissions = [
          # Lista de permisos de clave...
        ]
        secret_permissions = [
          # Lista de permisos de secreto...
        ]
        storage_permissions = [
          # Lista de permisos de almacenamiento...
        ]
      }
    
      access_policy {
        tenant_id = "<tenant_id_2>"
        object_id = "<object_id_2>"
        key_permissions = [
          # Lista de permisos de clave...
        ]
        secret_permissions = [
          # Lista de permisos de secreto...
        ]
        storage_permissions = [
          # Lista de permisos de almacenamiento...
        ]
      }
    
      access_policy {
        tenant_id = "<tenant_id_3>"
        object_id = "<object_id_3>"
        key_permissions = [
          # Lista de permisos de clave...
        ]
        secret_permissions = [
          # Lista de permisos de secreto...
        ]
        storage_permissions = [
          # Lista de permisos de almacenamiento...
        ]
      }
    }
    

    En este ejemplo, hemos agregado dos bloques access_policy adicionales al bloque de recursos azurerm_key_vault, cada uno especificando un tenant_id y object_id diferentes. Puedes agregar tantos bloques como sea necesario para otorgar acceso a todas las identidades necesarias.

Comments are closed.