Condividi tramite


Segreto di accesso di Key Vault quando si distribuiscono le Applicazioni gestite di Azure

Quando è necessario passare un valore protetto (ad esempio una password) come parametro durante la distribuzione, è possibile recuperare il valore da Azure Key Vault. Per accedere a Key Vault durante la distribuzione delle applicazione gestite è necessario concedere l'accesso all'entità servizio Provider di risorse di Appliance. Il servizio Applicazioni gestite usa questa identità per eseguire le operazioni. Per recuperare correttamente un valore da un insieme di credenziali delle chiavi durante la distribuzione, l'entità servizio deve essere in grado di accedere all'insieme di credenziali delle chiavi.

Questo articolo descrive come configurare Key Vault per lavorare con le applicazioni gestite.

Abilitare la distribuzione di modelli

  1. Accedere al portale di Azure.

  2. Aprire l'insieme di credenziali delle chiavi. Immettere insiemi di credenziali delle chiavi nella casella di ricerca oppure selezionare Insiemi di credenziali delle chiavi.

    Screenshot della home page di Azure per aprire un insieme di credenziali delle chiavi usando la ricerca o selezionando l'insieme di credenziali delle chiavi.

  3. Selezionare Configurazione accesso.

    Screenshot dell'impostazione dell'insieme di credenziali delle chiavi per selezionare la configurazione di accesso.

  4. Selezionare Azure Resource Manager per la distribuzione modelli. Selezionare quindi Applica.

    Screenshot della configurazione di accesso dell'insieme di credenziali delle chiavi che abilita Azure Resource Manager per la distribuzione modelli.

Aggiungere il servizio come collaboratore

Assegnare il ruolo Collaboratore all'utente del Provider di risorse Appliance nell'ambito dell'insieme di credenziali delle chiavi. Il ruolo Collaboratore è un ruolo di amministratore con privilegi per l'assegnazione di ruolo. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

Il Provider di risorse appliance è un'entità servizio nel tenant di Microsoft Entra. Dal portale di Azure è possibile verificare la registrazione passando a Microsoft Entra ID>Applicazioni aziendali e impostando il filtro di ricerca su Applicazioni Microsoft. Cercare Provider di risorse appliance. Se l'entità servizio non viene trovata, registrare provider di risorse Microsoft.Solutions.

Fare riferimento al segreto di Key Vault

Per passare un segreto da un'istanza di Key Vault a un modello nell'applicazione gestita, è necessario usare un modello collegato o annidato e fare riferimento a Key Vault nei parametri per il modello collegato o annidato. Fornire l'ID risorsa di Key Vault e il nome del segreto.

{
  "$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": {
  }
}

Passaggi successivi

Key Vault è stato configurato per essere accessibile durante la distribuzione di un'applicazione gestita.