Acessar segredo do Azure Key Vault durante a implantação de Aplicativos Gerenciados do Azure
Quando você precisa passar um valor seguro (como uma senha) como um parâmetro durante a implantação, é possível recuperar o valor de um Azure Key Vault. Para acessar o Key Vault ao implantar os Aplicativos Gerenciados, você precisa permitir acesso à entidade de serviço Provedor de Recursos do Dispositivo. O serviço de aplicativos gerenciados usa essa identidade para executar operações. Durante a implantação, a entidade de serviço deve ser capaz de acessar o Key Vault para recuperar um valor dele com êxito.
Este artigo descreve como configurar o Key Vault para trabalhar com os Aplicativos Gerenciados.
Habilitar a implantação de modelo
Entre no portal do Azure.
Abra o cofre de chaves. Insira os cofres de chaves na caixa de pesquisa ou selecione Cofres de chaves.
Selecione Acessar configuração.
Selecione Azure Resource Manager para implantação de modelo. Em seguida, selecione Aplicar.
Adicionar o serviço como colaborador
Atribua a função Colaborador ao usuário Provedor de recursos do dispositivo no escopo do cofre de chaves. A função Colaborador é uma função privilegiada de administrador para a atribuição de função. Para ver as etapas detalhadas, vá para Atribuir funções do Azure usando o portal do Azure.
O Provedor de Recursos de Dispositivo é uma entidade de serviço no seu locatário do Microsoft Entra. No portal do Azure, você pode verificar seu registro no Microsoft Entra ID>Aplicativos Enterprise e alterar o filtro de pesquisa para Microsoft Applications. Procure Provedor de recursos do dispositivo. Se a entidade de serviço for encontrada, registre o provedor de recursos Microsoft.Solutions
.
Referenciar segredo do Key Vault
Para transmitir um segredo de um Key Vault para um modelo em seu Aplicativo Gerenciado, você deve usar um modelo vinculado ou aninhado e referenciar o Key Vault nos parâmetros desse modelo. Forneça a ID de recurso do Key Vault e o nome do segredo.
{
"$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": {
}
}
Próximas etapas
Você configurou seu Key Vault para ser acessível durante a implantação de um Aplicativo Gerenciado.
- Para obter informações sobre como passar um valor de um Key Vault como um parâmetro de modelo, vá para Usar o Azure Key Vault para passar um valor de parâmetro seguro durante a implantação.
- Para saber mais sobre a segurança do cofre de chaves, vá para Segurança do Azure Key Vault e Autenticação no Azure Key Vault.
- Para obter exemplos de aplicativo gerenciado, vá paraProjetos de exemplo para aplicativos gerenciados do Azure.
- Para saber como criar um arquivo de definição de interface do usuário para um aplicativo gerenciado, vá paraIntrodução a CreateUiDefinition.