Uma variável de ambiente é um valor configurável que seu aplicativo pode usar em diferentes ambientes (como desenvolvimento, teste e produção) sem que esses valores sejam explicitamente definidos no código.
Elas são ideais para armazenar informações sensíveis ou que podem variar entre ambientes, como credenciais de API, configurações de banco de dados, chaves secretas e URLs de serviços externos.
Como armazenar variáveis de ambiente em um app Rails
Em resumo existem 3 maneiras pra fazer isso:
1. configuração direta no sistema operacional
Esse método é o mais simples de fazer, além de ser muito seguro para ambientes de produção pois evita o armazenamento de dados sensíveis no repositório
No terminal , defina uma variável com:
export SECRET_KEY=uma_chave_secreta
Então sua aplicação poderá acessar essa variável com:
ENV["SECRET_KEY"]
Caso queira saber quais variáveis de ambiente já existem no seu sistema, utilize o comando:
env
ou printenv
2. Usando Credenciais Encriptadas (Rails Encrypted Credentials)
O próprio Rails oferece uma camada de segurança adicional para armazenar variáveis sensíveis através de uma master.key
visivel em config/master.key e por padrão já é incluída no arquivo .gitignore
evitando risco da chave ser acidentalmente versionada no Git e exposta publicamente.
execute o comando:
EDITOR="code" rails credentials:edit
Assim o VScode irá abrir o arquivo credentials.yml.enc
permitindo criar e editar suas variáveis, inicialmente com uma aparência bem parecida com essa:
Uma possibilidade interessante é que dessa maneira é possível agrupar variáveis, por exemplo:
Sendo possível acessar os valores agrupados através do comando:
Rails.application.credentials.google[:client_id]
obs: sempre dê dois espaços manuais(tecla espaço) invés de tabulações(Tecla tab), caso contrario é possível q o sistema não consiga acessar suas variáveis
3. Usando um arquivo .env
com a gem Dotenv:
A gem Dotenv permite que você crie um arquivo .env
na raiz do projeto onde as variáveis são armazenadas seguindo o msm padrão em formato CHAVE=VALOR
.
Como configurar
Adicione
gem 'dotenv-rails'
ao seuGemfile
e instale as dependênciasbundle install
.Em seguida, crie um arquivo
.env
na raiz do seu projeto e adicione suas variáveis:
SECRET_KEY_BASE=uma_chave_secreta
não se esqueça de adicionar o arquivo
.env
ao.gitignore
para evitar que suas variáveis de ambiente sensíveis sejamVerifique se suas variáveis de ambiente estão configuradas corretamente acessando no rails c:
ENV['SECRET_KEY_BASE']
obs: O uso de um arquivo .env com a gem Dotenv é prático e ideal para ambientes de desenvolvimento e testes, mas não deve ser usado em produção.
Conclusão
Escolher a abordagem certa para gerenciar variáveis de ambiente depende das necessidades do seu projeto e do seu ambiente de desenvolvimento.
Cada método tem suas vantagens e limitações, e a escolha certa pode fazer toda a diferença na segurança e na organização do seu código.
O mais importante é garantir que os dados sensíveis estejam sempre protegidos, evitando o risco de exposição acidental, independentemente da abordagem escolhida, adotar boas práticas de segurança desde o início é essencial para qualquer projeto.
Top comments (0)