Ocultar configurações sensíveis da minha aplicação

Como utilizar o cloud secret manager para proteger dados sensíveis e ajudar minha aplicação a estar em conformidade com a LGPD.

Agosto está chegando e a LGPD entrará em vigor, fazendo com que as empresas corram atrás do prejuízo e busquem estar em conformidade em tempo de evitar dores de cabeça.

Lei mais sobre: https://epocanegocios.globo.com/Empresa/noticia/2019/12/lei-de-protecao-de-dados-entra-em-vigor-em-2020-mas-empresas-antecipam-protecao-ao-cliente.html

Algumas ações precisam ser tomadas para que as aplicações e principalmente os dados, estejam de acordo. Uma delas, é o controle de quem tem acesso ao banco de dados da aplicação e como isso é controlado pela organização. Pensando nisso, busquei a um serviço que me permita colocar as chaves que tenho em minha aplicação e que não deveriam estar visíveis para os que possuem acesso ao fonte. Foi então que encontrei o Google cloud secret manager.

Vamos direto ao assunto:


1- Para habilitar a api Secret Manager:
  • - https://console.cloud.google.com/apis/api/secretmanager.googleapis.com/overview
2 - Para criar uma Secret:
  • - https://console.cloud.google.com/security/secret-manager
  • - crie uma secret com o nome MINHA_SECRET
3 - Para criar versões de Secret:
  • - https://console.cloud.google.com/security/secret-manager/secret/MINHA_SECRET

Passo a passo:

  • Crie o projeto “minha-secret” e habilite a api Secret Manager e crie uma conta de serviço que tem permissão de view.
  • Depois exporte a conta de serviço (download do JSON). Ex: minha-credencial.json.
  • Para conectar local (durante desenvolvimento), execute o comando a seguir para configurar a conta de serviço no seu sistema: export GOOGLE_APPLICATION_CREDENTIALS="minha-credencial.json"
  • Então crie uma web api e no controller faça a implementação para ler a secret MINHA_SECRET.
  • Crie a secret (step 2 acima).
  • E no código, faça o seguinte na controller:


Em produção, você terá de criar uma variável de ambiente no seu container GOOGLE_APPLICATION_CREDENTIALS apontando para o arquio JSON (e por favor, delete o JSON do container antes de provisionar.

É isso, espero ter colaborado :)