Variáveis de ambiente

📌
Todo dado sensível ou que mude de acordo com o ambiente em que ele é executado
Existem alguns dados que diferem de acordo com onde estamos executando nossa aplicação. Implementar esses dados de forma estática no nosso código causará dois problemas:
  • dificuldade de configuração: para rodar a aplicação em um servidor diferente, precisaremos alterar o código.
  • versionamento de segredos: deixamos expostos dados de acesso, e qualquer um com acesso ao código poderá ver esses dados sensíveis.
Por esses motivos devemos delegar para o sistema que roda nossa aplicação, a função de prover esses dados. Fazemos isso implementando nosso código de forma a pegar os valores atribuídos a uma determinada chave. Exemplo:
connection = MySQLdb.connect( host=os.getenv(“DB_HOST”), user=os.getenv(“DB_USER”), passwd=os.getenv(“DB_PASS”), db=os.getenv(“DB_NAME”) )
Qualquer dado sensível ou que mude de acordo com o ambiente deve ser delegado para uma variável de ambiente. Alguns desses são dados de acesso, chaves de API, URLS de buckets, Hashes de criptografia, ...