Uzyskiwanie dostępu do wpisu tajnego usługi Key Vault podczas wdrażania aplikacji zarządzanych platformy Azure
Jeśli podczas wdrażania musisz przekazać bezpieczną wartość (np. hasło) jako parametr, możesz pobrać wartość z usługi Azure Key Vault. Aby uzyskać dostęp do usługi Key Vault podczas wdrażania aplikacji zarządzanych, musisz udzielić dostępu do jednostki usługi dostawcy zasobów urządzenia. Usługa Aplikacje zarządzane używa tej tożsamości do uruchamiania operacji. Aby pomyślnie pobrać wartość z usługi Key Vault podczas wdrażania, jednostka usługi musi mieć dostęp do usługi Key Vault.
W tym artykule opisano sposób konfigurowania usługi Key Vault do pracy z aplikacjami zarządzanymi.
Włączanie wdrażania szablonu
Zaloguj się w witrynie Azure Portal.
Otwórz magazyn kluczy. Wprowadź magazyny kluczy w polu wyszukiwania lub wybierz pozycję Magazyny kluczy.
Wybierz pozycję Konfiguracja dostępu.
Wybierz pozycję Azure Resource Manager w celu wdrożenia szablonu. Następnie wybierz pozycję Zastosuj.
Dodawanie usługi jako współautora
Przypisz rolę Współautor do użytkownika dostawcy zasobów urządzenia w zakresie magazynu kluczy. Rola Współautor jest rolą administratora uprzywilejowanego dla przypisania roli. Aby uzyskać szczegółowe instrukcje, przejdź do tematu Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Dostawca zasobów urządzenia jest jednostką usługi w dzierżawie firmy Microsoft Entra. W witrynie Azure Portal możesz zweryfikować jego rejestrację w aplikacjach microsoft Entra ID>Dla przedsiębiorstw i zmienić filtr wyszukiwania na Aplikacje firmy Microsoft. Wyszukaj dostawcę zasobów urządzenia. Jeśli jednostka usługi nie zostanie znaleziona, zarejestruj dostawcę Microsoft.Solutions
zasobów.
Odwołanie do wpisu tajnego usługi Key Vault
Aby przekazać wpis tajny z usługi Key Vault do szablonu w aplikacji zarządzanej, należy użyć połączonego lub zagnieżdżonego szablonu i odwołać się do usługi Key Vault w parametrach połączonego lub zagnieżdżonego szablonu. Podaj identyfikator zasobu usługi Key Vault i nazwę wpisu tajnego.
{
"$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": {
}
}
Następne kroki
Usługa Key Vault została skonfigurowana tak, aby była dostępna podczas wdrażania aplikacji zarządzanej.
- Aby uzyskać informacje na temat przekazywania wartości z usługi Key Vault jako parametru szablonu, przejdź do tematu Używanie usługi Azure Key Vault do przekazywania wartości bezpiecznego parametru podczas wdrażania.
- Aby dowiedzieć się więcej na temat zabezpieczeń magazynu kluczy, zobacz Zabezpieczenia i uwierzytelnianie usługi Azure Key Vault w usłudze Azure Key Vault.
- Przykłady aplikacji zarządzanych można znaleźć w sekcji Przykładowe projekty dla aplikacji zarządzanych platformy Azure.
- Aby dowiedzieć się, jak utworzyć plik definicji interfejsu użytkownika dla aplikacji zarządzanej, przejdź do tematu Wprowadzenie do metody CreateUiDefinition.