Se você ainda armazena segredos no appsettings.json, está na hora de parar!
Vários serviços de nuvem oferecem serviços para armazenar com maior segurança suas chaves e deixá-las longe do seu código, facilitando assim uma maior segurança até para que a equipe toda de devs não tenha acesso às chaves de produção.
As boas práticas prezam para que não sejam colocadas chaves de produção em repositórios de código (Github) e nem sejam disponíveis para desenvolvedores manipularem.
O que eu devo retirar do appsettings?
Os nomes de segredo não precisam ser considerados especialmente secretos em si. Você poderá armazená-los na configuração do aplicativo se a implementação exigir isso. O mesmo se aplica aos nomes de cofre e às URLs.
Mas as chaves de proteção, não devem serem mantidas em um arquivo, vimos que vazamentos no github tem sido recorrentes (caso recente), e isso implica em riscos de segurança e eventuais custos também.
Então como se proteger? Os serviços de nuvem possuem cofres de chaves que podem armazenar os segredos e assim mantê-los numa zona segura, longe de invasores.
Na nuvem Azure temos o Azure Key Vault, na Aws temos o Aws Secret Manager, além de outros (ver nas referências ao final).
Azure Key Vault
O Azure Key Vault é um repositório de segredos: um serviço de nuvem centralizado para armazenar segredos do aplicativo, como valores de configuração como senhas e cadeias de conexão devem permanecer sempre em segurança. O Key Vault ajuda você a controlar os segredos dos aplicativos mantendo-os em um único local central. Ele fornece acesso seguro, controle de permissões e log de acesso.
Os principais benefícios do uso do Key Vault são:
- Separação de informações confidenciais do aplicativo de outras configurações e código, o que reduz o risco de vazamentos acidentais.
- Um acesso restrito aos segredos com políticas de acesso adaptadas aos aplicativos e aos indivíduos que precisam deles.
- Armazenamento de segredo centralizado, o que significa que as alterações necessárias só precisam ser feitas em um único lugar.
- Log e monitoramento do acesso para ajudar você a entender como e quando os segredos são acessados.
Como inserir valores no cofre?
Qualquer interface administrativa do Azure, incluindo o portal do Azure, CLI do Azure e o Azure PowerShell pode ser utilizada para gerenciar segredos.
Através do CLI do Azure
Ou diretamente pela interface do Azure acessando o Key Vault
Clicando no botão “+” Gerar/importar, você pode inserir pela tela
E depois para acessar?
Temos duas formas para acessar
- Na inicialização: a configuração é lida quando a aplicação inicia e fica carregada no config da mesma forma com a qual fazemos carretamento do appsettings.
- Durante a execução, fazendo a leitura da chave em tempo real, caso a aplicação não possa ser reinicializada ela irá no exemplo abaixo ler o valor que está naquele momento no Azure Key Vault.
Importante
O Key Vault foi projetado para armazenar segredos de configuração para aplicativos do servidor. Ele não se destina a armazenar dados pertencentes aos usuários do aplicativo. Ele não deve ser usado na parte do lado do cliente de um aplicativo. Esse comportamento é refletido em suas características de desempenho, API e modelo de custo.
Os dados de usuário devem ser armazenados em outro lugar, como em um Banco de Dados SQL do Azure com a Transparent Data Encryption ou em uma conta de armazenamento com a Criptografia do Serviço de Armazenamento. Os segredos que seu aplicativo usa para acessar esses repositórios de dados podem ser mantidos no Key Vault.
Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !! Quer ver mais conteúdos, acesse minhas redes através do Linktree: https://linktree.com/nizzola
