Question

Khi khởi tạo một project, Rails sẽ tự động tạo ra file credentials.yml.enc trong folder config. Khi click vào xem nội dung thì chỉ có mỗi một dòng hash dài ngoằng ngoẵng. Thế nó sinh ra để làm gì nhỉ 🤔

  • 🌱 Từ sau Rails 5.2, khi init project sẽ tự động tạo file config/credentials.yml.enc chứa hash được mã hóa bởi aes-128-gcm để lưu những thông tin “nhạy cảm” của dự án.

  • 🌱 Rails sẽ dùng config/master.key hoặc ENV["RAILS_MASTER_KEY"] để mã hóa nội dung. Vì đã được mã hóa nên file config/credentials.yml.enc vẫn có thể public, miễn là chúng ta không làm lộ master key là được.

  • 🌱 Mặc định file tạo ra sẽ chỉ lưu secret_key_base của Rails app. Tuy nhiên chúng ta có thể edit thêm thông tin bằng command:

$ rails credentials:edit

Info

📝 Câu lệnh trên sẽ tạo file config/credentials.yml.encconfig/master.key nếu chưa tồn tại hoặc chưa được định nghĩa.

Tìm hiểu thêm: rails credentials:help

  • 🌱 Đọc thông tin mã hóa bằng câu lệnh:
> Rails.application.credentials

Danger

Tuyệt đối không được làm mất hay public master key!