Hoje vou falar um pouco sobre segurança de informações sensíveis no Azure (usuários, senhas, chaves, connection string, etc) e unificação das variáveis das aplicações do Azure.
Um dos maiores desafios é centralizar com segurança as informações das aplicações e controlar o acesso de distribuição. Para isso utilizaremos o Azure Key Valt que utilizado no gerenciamento de segredos, chaves e certificados, tudo isso com controle de permissões e histórico de modificações.
Proteger o gerenciamento de chaves é fundamental para proteger os dados na nuvem. Use o Azure Key Vault para criptografar chaves e pequenos segredos, como senhas, que usam chaves armazenadas em HSMs (módulos de segurança de hardware). Para obter maior garantia, importe ou gere chaves em HSMs e a Microsoft processará suas chaves em HSMs FIPS 140–2 de nível 2 validados (hardware e firmware). Com o Key Vault, a Microsoft não pode ver nem extrair as suas chaves. Execute o monitoramento e a auditoria do uso das suas chaves com o registro em log do Azure. Redirecione logs no Azure HDInsight ou em sua solução SIEM (gerenciamento de eventos e de informações de segurança) para obter mais análises e detecções de ameaças.
Agenda
- Criar um usuário no Azure Active Directory para leitura do Key Vault.
- Configurar o Access Policy para o usuário AD ter apenas a permissão de leitura.
- Criar um novo Secret no Azure Key Vault.
- Criar o código em Node.js para leitura de chave no Azure Key Vault.
1.1 — Abra o Azure Active Directory.
1.2 — Clique em App Registrations.
1.3 — Em New application registration, digite o nome, selecione o tipo para Web app / API e insira Sign-on URL de exemplo.
1.4 — Com o app registrado, clique em Keys para gerar a chave de acesso que será utilizada com o Application ID.
1.5 — Ao configurar a chave e salvar, é exibido o secret que será utilizado com o Application ID para leitura no Key Vault.
2.1 — Com o Azure Key Vault criado, clique em Access Policy e insira uma nova policy com acesso apenas Get no Secret.
3.1 — Com a Policy configurada, crie um novo secret com o nome ChaveTeste e insira o valor “123456”
4.1 — Crie um novo projeto em Node.js no VS Code e inclua os dois require para autenticação e leitura do key vault.
4.2 — Inclua o código de autenticação no Azure KeyVault utilizando o ClientID e ClienteSecret do passo “1.4” para obter o secret de exemplo:
4.3 — Testando
Pronto, agora é possível ter o controle de suas chaves em um cofre no Azure, com total controle de segurança e histórico de modificações.
O exemplo final do código você confere aqui: https://github.com/hgmauri/sample-azurekeyvault