Contenido del curso
Entorno de desarollo
Nuestra primera aplicación
- 6

Arquitectura MVC y Flujo de Peticiones en Rails
07:22 min - 7

Creación y Configuración de Aplicaciones Web con Ruby on Rails
11:17 min - 8

Creación de Rutas y Controladores en Ruby on Rails
10:15 min - 9

Creación de Modelos y Migraciones en Ruby on Rails
13:12 min - 10

Gestión de Credenciales Seguras en Ruby on Rails
Viendo ahora - 11

Gestión de Assets y Layouts en Rails: Asset Pipeline y Webpacker
12:30 min - 12

Uso del Generador Scaffold en Ruby on Rails
10:50 min - 13

Migraciones y Consistencia de Modelos en Rails
05:57 min - 14

Migración de Plantillas ERB a Haml en Ruby on Rails
08:46 min - 15

Creación de Formularios Dinámicos con SimpleForm y Haml en Rails
12:19 min - 16

Internacionalización de Aplicaciones Rails con i18n y i18n-tasks
09:29 min - 17

Debugging en Ruby on Rails: Uso de Bybug y Pry
09:03 min
Proyecto del curso: primeros pasos
- 18

Desarrollo de un Sistema de Gestión de Tareas con Ruby on Rails
05:35 min - 19

Diseño de Modelos de Datos para un Organizador de Tareas
05:45 min - 20

Creación de Scaffolds y Modelos en Rails con SimpleFrame y Bootstrap
10:08 min - 21

Internacionalización de Formularios en Rails con i18n y SimpleForm
11:03 min - 22

Validaciones de Modelos en Ruby on Rails
10:42 min
Proyecto del curso: usuarios
- 23

Autenticación de Usuarios con Devise en Rails
11:42 min - 24

Migración de Llave Foránea: Enlazar Tarea con Usuario en Rails
05:46 min - 25

Integración Visual y Estructural en Rails: Usuario, Tarea y Participante
09:53 min - 26

Manejo de Formularios Anidados con Cocoon en Rails
12:25 min - 27

Formularios Dinámicos en Rails con Cocoon y Validaciones de Unicidad
09:36 min - 28

Permisos y Accesos con KanKan en Aplicaciones Rails
14:13 min
Proyecto del curso: interacciones
- 29

Callbacks en Controladores y Modelos en Rails
08:58 min - 30

Automatización de Inserción de Datos en Rails con db:seed
07:38 min - 31

Envío de Correos con ActionMailer en Rails
13:25 min - 32

Creación de notas dinámicas en tareas con Ruby on Rails
17:08 min - 33

Inserciones Dinámicas de Notas con AJAX y SJR en Rails
09:12 min - 34

Mejora de Interfaces con Bootstrap en Aplicaciones Rails
16:19 min
Cierre
Gestión de Credenciales Seguras en Ruby on Rails
Resumen
Proteger la información confidencial de tu aplicación es una de las responsabilidades más críticas en el desarrollo web. Ruby on Rails ofrece un sistema robusto de credenciales encriptadas que permite gestionar contraseñas, claves de acceso y datos sensibles sin comprometer la seguridad entre distintos ambientes de trabajo. Comprender este mecanismo te dará control total sobre cómo fluye la información confidencial desde tu entorno local hasta producción.
¿Por qué necesitas secretos en diferentes ambientes de desarrollo?
Cuando trabajas solo en tu computador con una base de datos como SQLite [00:28], no necesitas preocuparte demasiado por las credenciales, ya que esta base de datos viene preconfigurada sin requerir usuario ni contraseña. El problema aparece cuando tu proyecto crece: más desarrolladores se suman, necesitas ambientes de pruebas, un ambiente espejo y finalmente un ambiente de producción [01:15].
Si todos estos ambientes compartieran las mismas credenciales, perderías toda confidencialidad y el manejo se volvería caótico. Cada entorno debe tener su propia configuración aislada para garantizar la seguridad.
¿Cómo evolucionó el manejo de credenciales en Rails?
Rails ha recorrido un camino largo para resolver este problema. Entender esta cronología te ayuda a comprender por qué el sistema actual funciona como lo hace.
- En las primeras versiones existía únicamente el archivo database.yml para configurar el acceso a bases de datos [02:05].
- En Rails 3, los desarrolladores creaban sus propios sistemas de configuración con convenciones individuales por proyecto [02:20].
- En Rails 4 se introdujo secrets.yml, un archivo dedicado a almacenar contraseñas y credenciales de acceso [02:35].
- En Rails 5.2 llegó el concepto de credenciales encriptadas, un salto importante en seguridad que permitía compartir estructuras sin exponer la información [02:55].
- En Rails 6 este sistema maduró con la separación individual de credenciales por ambiente [03:25].
Esta evolución conecta directamente con los principios del manifiesto Twelve-Factor App [03:35], que establece que debes guardar la configuración en el entorno. Rails cumple exactamente con esta práctica recomendada para aplicaciones bien arquitecturadas.
¿Qué archivos intervienen en la gestión de información sensible?
Dentro de la carpeta config de tu proyecto encontrarás dos archivos fundamentales [04:25]:
- credentials.yml.enc: contiene las credenciales encriptadas. No puedes editarlo directamente desde el editor de texto porque su contenido está cifrado.
- database.yml: almacena la configuración de conexión a bases de datos. Fue creado automáticamente con el comando
rails new.
También existe el archivo storage.yml, asociado a servicios de almacenamiento externo [03:12], aunque su uso corresponde a configuraciones más avanzadas.
¿Cómo editar las credenciales encriptadas desde la consola?
Para modificar el archivo credentials.yml.enc necesitas ejecutar un comando especial desde la terminal [05:10]:
bash EDITOR=nano rails credentials:edit
La palabra EDITOR en mayúscula es una variable de entorno que indica qué editor de texto utilizará Rails para abrir el archivo descifrado. Al ejecutar este comando, accedes al contenido real del archivo.
Dentro encontrarás una clave ya existente llamada secret_key_base [05:40], un valor extenso que Rails usa para establecer esquemas de seguridad entre peticiones. Puedes agregar tus propias claves usando un sistema de llave y valor:
yaml hello: 123456
Para guardar los cambios presiona Ctrl + X, luego Y y finalmente Enter. Verás el mensaje File encrypted and saved [06:20], confirmando que el archivo fue cifrado y almacenado correctamente.
¿Cómo acceder a las credenciales desde tu aplicación Rails?
Desde la consola de Rails puedes consultar cualquier credencial almacenada utilizando la cadena de métodos [06:35]:
ruby Rails.application.credentials.hello
=> "123456"
Este mismo patrón funciona dentro de los controladores. Por ejemplo, en el Welcome Controller, puedes asignar el valor de una credencial a una variable de instancia [07:10]:
ruby def hello @credentials = Rails.application.credentials.hello end
Luego, en la vista hello.html.erb, puedes renderizar esa variable usando la sintaxis de ERB [07:35]:
erb <%= @credentials %>
Aunque este ejercicio muestra las credenciales en pantalla con fines didácticos, en la práctica las credenciales son de uso interno [08:00] y nunca deben exponerse en la interfaz del usuario.
Dominar el sistema de credenciales encriptadas te prepara para trabajar en equipos y desplegar aplicaciones de forma segura. Si tienes dudas sobre cómo organizar tus credenciales por ambiente, comparte tu experiencia en los comentarios.