Compartir vía


Acceso al secreto de Key Vault al implementar Azure Managed Applications

Cuando tiene que pasar un valor seguro (por ejemplo, una contraseña) como un parámetro durante la implementación, puede recuperar el valor de Azure Key Vault. Para acceder a Key Vault cuando se implementa Managed Applications, debe conceder acceso a la entidad de servicio del proveedor de recursos de dispositivos. El servicio Managed Applications utiliza esta identidad para ejecutar operaciones. Para recuperar correctamente un valor de un almacén de claves durante la implementación, es necesario que la entidad de servicio pueda obtener acceso al almacén de claves.

En este artículo se describe cómo configurar Key Vault para que funcione con Managed Applications.

Habilitar la implementación de plantillas

  1. Inicie sesión en Azure Portal.

  2. Abra el almacén de claves. Escriba almacenes de claves en el cuadro de búsqueda o seleccione Almacenes de claves.

    Captura de pantalla de la página principal de Azure para abrir un almacén de claves usando la búsqueda o seleccionando Almacenes de claves.

  3. Seleccione Configuración de acceso.

    Captura de pantalla de la configuración del almacén de claves para seleccionar la configuración de acceso.

  4. Seleccione Azure Resource Manager para la implementación de plantillas. Luego, seleccione Aplicar.

    Captura de pantalla de la configuración de acceso del almacén de claves que habilita Azure Resource Manager para la implementación de plantillas.

Agregar servicio como colaborador

Asigne el rol de Colaborador al usuario del proveedor de recursos del dispositivo en el ámbito del almacén de claves. El rol Colaborador es un rol de administrador con privilegios para la asignación de roles. Para obtener los pasos detallados, consulte Asignación de roles de Azure mediante Azure Portal.

El Proveedor de recursos del dispositivo es una entidad de servicio en el inquilino de Microsoft Entra. En Azure Portal, puedes comprobar su registro en Microsoft Entra ID>Aplicaciones empresariales y cambia el filtro de búsqueda a Aplicaciones de Microsoft. Busque por proveedor de recursos de dispositivos. Si no se encuentra la entidad de servicio, registra el proveedor de recursos Microsoft.Solutions.

Referencia a secreto de Key Vault

Para pasar un secreto desde Key Vault a una plantilla de la aplicación administrada, debe usar una plantilla vinculada o anidada y hacer referencia a Key Vault en los parámetros de la plantilla vinculada o anidada. Proporcione el identificador de recurso de Key Vault y el nombre del secreto.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location where the resources will be deployed."
      }
    },
    "vaultName": {
      "type": "string",
      "metadata": {
        "description": "The name of the key vault that contains the secret."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "The name of the secret."
      }
    },
    "vaultResourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "The name of the resource group that contains the key vault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the key vault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2022-09-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "adminLogin": {
              "type": "string"
            },
            "adminPassword": {
              "type": "securestring"
            },
            "location": {
              "type": "string"
            }
          },
          "variables": {
            "sqlServerName": "[concat('sql-', uniqueString(resourceGroup().id, 'sql'))]"
          },
          "resources": [
            {
              "type": "Microsoft.Sql/servers",
              "apiVersion": "2022-05-01-preview",
              "name": "[variables('sqlServerName')]",
              "location": "[parameters('location')]",
              "properties": {
                "administratorLogin": "[parameters('adminLogin')]",
                "administratorLoginPassword": "[parameters('adminPassword')]"
              }
            }
          ],
          "outputs": {
            "sqlFQDN": {
              "type": "string",
              "value": "[reference(variables('sqlServerName')).fullyQualifiedDomainName]"
            }
          }
        },
        "parameters": {
          "location": {
            "value": "[parameters('location')]"
          },
          "adminLogin": {
            "value": "ghuser"
          },
          "adminPassword": {
            "reference": {
              "keyVault": {
                "id": "[resourceId(parameters('vaultSubscription'), parameters('vaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
              },
              "secretName": "[parameters('secretName')]"
            }
          }
        }
      }
    }
  ],
  "outputs": {
  }
}

Pasos siguientes

Has configurado Key Vault para que esté accesible durante la implementación de una aplicación administrada.