Share via


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 gli insiemi di credenziali delle chiavi nella casella di ricerca o 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 Key Vault.

  3. Selezionare Configurazione di accesso.

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

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

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

Aggiungere il servizio come collaboratore

Assegnare il ruolo Collaboratore all'utente del provider di risorse dell'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 i 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 se è registrata passando a Microsoft Entra ID>Applicazioni aziendali e impostando il filtro di ricerca su Applicazioni Microsoft. Cercare Provider di risorse appliance. Se non viene trovato, registrare il Microsoft.Solutions provider di risorse.

Fare riferimento al segreto di Key Vault

Per passare un segreto da un insieme di credenziali delle chiavi a un modello nell'applicazione gestita, è necessario usare un modello collegato o annidato e fare riferimento all'insieme di credenziali delle chiavi 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.