Proteja minha senha de banco de dados dos desenvolvedores

Proteja minha senha de banco de dados dos desenvolvedores

Temos um aplicativo que utiliza um banco de dados no meu local de trabalho. Atualmente, ele usa uma senha de nome de usuário para autenticação (embora possamos usar conexões IPs confiáveis). Não queremos usar confiança por causa da movimentação que faremos com os IPs de máquinas específicas nas quais residem o aplicativo e o banco de dados.

Atualmente, por aplicarmos o nome de usuário/senha definido nos arquivos de configuração da aplicação, temos os desenvolvedores além do meu chefe que é o administrador do sistema e nós seus seis subordinados cientes da senha (eu sendo o chefe), pois qualquer um de nós em regime de rodízio, o administrador mantém e implanta o aplicativo. Como tal, o risco de manter a senha segura é de todos nós.

O que eu fiz Recentemente, começamos a alterar a senha com mais frequência, mas agora quero que apenas eu saiba essa senha. Eu sou o único que deve executar consultas no banco de dados diretamente por orientação do meu chefe. Mesmo meu chefe não precisa saber disso de cara (talvez na minha ausência e registrado). Pensei em fazer abaixo:

  1. Crie um arquivo de texto no servidor que possa ser lido apenas pelo aplicativo.
  2. Peça aos desenvolvedores que codifiquem o aplicativo para consultar esse arquivo para obter a senha em texto simples.
  3. O aplicativo usa isso para fazer login.

Estou pensando que os desenvolvedores ainda poderão revelar a senha se no aplicativo armazenarem o código que faz isso para eles (NÃO que sejam sinistros, estamos apenas tentando agilizar coletivamente o risco coletivo)

Pergunta Existe uma maneira melhor de aperfeiçoar essa abordagem e também existe outra maneira que eu possa usar além desta.

Plataformas: Linux (servidor Ubuntu), PostgreSQL, Java

Responder1

A maneira antiga do Unix/Linux é:

vi /etc/my_app.conf
database_ip=192.168.123.123
database_instance=db1
database_user=my_app
database_password=secret_in_plaintext

Isso não resolve seu problema imediatamente, mas... No futuro você poderá implantar exatamente os mesmos binários de aplicação (war/jar) paradiferenteservidores de aplicativos (produção, pré-produção, teste, desenvolvimento). Todos eles podem ter bancos de dados diferentes (prod, pre, test, dev). Dessa forma, os desenvolvedores não precisarão de acesso à produção, eventualmente.

informação relacionada