Compartilhar via


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

  1. Entre no portal do Azure.

  2. Abra o cofre de chaves. Insira os cofres de chaves na caixa de pesquisa ou selecione Cofres de chaves.

    Captura de tela da home page do Azure para abrir um cofre de chaves usando a pesquisa ou selecionando o cofre de chaves.

  3. Selecione Acessar configuração.

    Captura de tela da configuração do cofre de chaves para selecionar as configurações de acesso.

  4. Selecione Azure Resource Manager para implantação de modelo. Em seguida, selecione Aplicar.

    Captura de tela das configurações de acesso do cofre de chaves que habilitam o Azure Resource Manager para a implantação de modelo.

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.