Armazenar segredos do Serviço de Aplicativo do Azure no Cofre da Chave do Azure

Conteúdo

Hoy voy a mostrar cómo almacenar los secretos de configuración de Serviço de Aplicativo do Azure sobre Azure Key Vault. Neste exemplo, Vou usar um Plataforma DNN sitio web basado en Azure App Service utilizando una base de dados SQL, que almacena la cadena de conexión de la base de datos SQL en Azure Key Vault. Não alterarei a base de código da aplicação para aceder ao Azure Key Vault de forma alguma. Vamos aproveitar a funcionalidade de identidade gerida do App Service para recuperar automaticamente os segredos do Key Vault.

Aprovisionar o Azure Key Vault

  1. Aprovisionar o Azure Key Vault

    779b7662-4e66-4a9c-8d08-2dd70a18e22d-7834662

  2. Para esta demonstração, Vamos mudar o modelo de permissões para o novo controlo de acesso baseado em funções do Azure (RBAC). Atualmente está em versão preliminar.

    cce042e2-835a-4acd-9650-f923cb854031-4931459

  3. Dependendo da sua implementação, Altere a Rede conforme desejar. Para esta demonstração, Vamos deixá-lo como ponto de ligação público para coincidir com a configuração do App Service.

    8c23c374-cf92-4753-a008-124d32807146-5503519

  4. Clique no Rever + Crio Botão para iniciar a implementação
  5. Uma vez criado, Adicione-se à função “Administrador do Key Vault (versão preliminar)” através do Controlo de Acesso (IAM). Agora pode começar a gerir segredos.

    1a101595-cb28-436b-950d-bcf70c2635cd-4661991

Adicionar a cadeia de ligação aos segredos do Key Vault

  1. Adicionar um novo segredo ao Key Vault

    afc018f4-afea-421e-ad81-62b90c1713a3-1233213

  2. Especifique o tipo de segredo “Manual”, atribua-lhe um nome e defina o valor como a cadeia de ligação da base de dados SQL atual armazenada no web.config da aplicação

    a886528a-32b1-41a0-8a7a-0d5d99e0ac70-9724989

  3. Clique em Criar. Uma vez criado, clique no segredo para ver os detalhes do segredo e depois clique novamente na versão atual
  4. Ao lado do Identificador do segredo, clique no botão Copiar para a área de transferência

    5f9c0428-1949-42e4-a87f-abc7b372229a-5831097

Adicionar a referência do identificador secreto à configuração do Azure App Service

  1. Abra a configuração do App Service e adicione uma nova configuração de Cadeia de Ligação
  2. Digite o nome da cadeia de ligação (“SiteSqlServer” para a plataforma DNN) e defina o valor “@ Microsoft.KeyVault (SecretUri = VALUE_FROM_CLIPBOARD)”, onde VALUE_FROM_CLIPBOARD é o do passo 4 da secção anterior.
  3. Clique em Guardar para guardar a configuração da aplicação.

    7de603cd-e42f-4106-93e0-059da43c379c-6346505

Permitir que o App Service aceda ao Key Vault

  1. No App Service, novamente, clique em Identidade para ativar a identidade atribuída pelo sistema.
  2. Clique em Guardar após ativar “ativado” O estado

    5025f05c-fe64-42d1-9b2d-5f640ec697b8-3897923

  3. Clique no botão “Atribuições de funções” install-pbi-2-5252226 “Adicionar atribuição de funções (vista prévia)”

    49c47071-6213-43b0-bb74-506bb4119cd7-6049316

  4. En la asignación de roles, elija el alcance “Key Vault”, suscriba la suscripción donde creó el Key Vault en los pasos anteriores y el nombre del recurso de Key Vault. Para el rol, apenas selecione “Usuario de Key Vault Secrets (vista prévia)”

    52e833c4-2ef6-49ce-bd20-f6a16a9df816-5718828

  5. Finalmente, vaya al archivo web.config del sitio web de su plataforma DNN y borre el contenido de la cadena de conexión.

    92e072cf-b7f0-4e59-9b9e-f3c306ee5805-3350173

  6. Visite el sitio web y verifique que se cargue corretamente. Agora, la cadena de conexión se almacena de forma segura en Azure Key Vault y ya no se almacena en el sistema de archivos.

Problemas conocidos

  1. ERRO: Aparece un error “Palabra clave no admitida: '@ microsoft.keyvault (secreturi'”. He experimentado que los permisos de RBAC pueden tardar uno o dos minutos en aplicarse, então tente novamente após alguns minutos. Tente também reiniciar a aplicação através do portal do App Service, portanto nada é armazenado em cache.

    d31c9fb1-4cb2-4410-adb8-95917c3d8a15-1079568

  2. Ao verificar os registos do DNN log4net, vê muitos erros de um processo que tenta inicializar uma ligação à base de dados com uma cadeia de ligação inválida durante o processo de inicialização do DNN. Este erro está a ocorrer atualmente nas versões 9.7.2 ou anteriores, com um pedido de pull pendente para o resolver https://github.com/dnnsoftware/Dnn.Platform/issues/4227
  3. IMPORTANTE: se planeia usar a funcionalidade de backup do Azure App Service, não utilize este método para armazenar cadeias de ligação da base de dados SQL no Azure Key Vault, ya que la función de copia de seguridad de App Service no las admite. https://stackoverflow.com/questions/56101504/backingup-azure-webapp-when-connection-string-is-injected-through-keyvault

Eu espero que isso ajude!

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker