Gestión de Credenciales Seguras en Ruby on Rails
Clase 10 de 36 • Curso de Introducción a Ruby on Rails
Contenido del curso
- 6

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

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

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

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

Gestión de Credenciales Seguras en Ruby on Rails
11:57 - 11

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

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

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

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

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

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

Debugging en Ruby on Rails: Uso de Bybug y Pry
09:03
- 18

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

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

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

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

Validaciones de Modelos en Ruby on Rails
10:42
- 23

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

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

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

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

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

Permisos y Accesos con KanKan en Aplicaciones Rails
14:13
- 29

Callbacks en Controladores y Modelos en Rails
08:59 - 30
Automatización de Inserción de Datos en Rails con db:seed
07:38 - 31

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

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

Inserciones Dinámicas de Notas con AJAX y SJR en Rails
09:12 - 34
Mejora de Interfaces con Bootstrap en Aplicaciones Rails
16:19
¿Cómo maneja Rails la información sensible?
En el vasto mundo de Ruby on Rails, uno de los aspectos más cruciales es la gestión de información sensible, como las credenciales de acceso. Esto se vuelve aún más importante a medida que tu aplicación crece y más desarrolladores se suman al proyecto. Rails ha desarrollado una serie de métodos para gestionar de manera segura estos datos confidenciales.
¿Qué ocurre al lanzar tu aplicación a producción?
Cuando decides lanzar tu aplicación, la gestión de las credenciales se convierte en una prioridad. Imagina que debes compartir las mismas credenciales de tu entorno local con el entorno de producción. Este enfoque, además de ser poco seguro, carece de confidencialidad y se convierte en un potencial dolor de cabeza organizacional.
Rails propone una solución efectiva mediante el uso de archivos de configuración como database.yaml y credentials.yaml.enc. Estos ayudan a mantener las credenciales seguras y protegidas, separando lo necesario entre diferentes ambientes.
¿Cuál es la evolución del manejo de secretos en Rails?
-
Inicios con
database.yaml: En las primeras versiones, el archivodatabase.yamlera la herramienta principal para la configuración de bases de datos. -
Introducción de
secrets.yaml: En Rails 4, se añadía este archivo para gestionar credenciales de manera más estructurada, aunque todavía con áreas de mejora. -
Avance con credenciales encriptadas: A partir de la versión 5.2, la inclusión de credenciales encriptadas representó un salto significativo. Esto permitió mantener la confidencialidad de la información mientras se compartían estructuras seguras.
-
Madurez en Rails 6: Aquí, el manejo de credenciales alcanzó un nuevo nivel de sofisticación, alineándose con los principios del manifiesto 12-Factor App para seguir las mejores prácticas de arquitectura de software.
¿Cómo interactuar con el sistema de credenciales de Rails?
La interacción con el sistema de credenciales de Rails se realiza principalmente a través de la consola y el editor de texto. Aquí te mostramos cómo:
-
Acceder al archivo
credentials.yaml.enc:- Navega a la carpeta
configde tu proyecto y ubica el archivocredentials.yaml.enc. - Este archivo está encriptado y requerirá un editor para modificarlo.
- Navega a la carpeta
-
Uso de la consola:
- Abre una nueva consola y ejecuta el comando
rails credentials:editpara editar el archivo de credenciales. - Configura tu editor de preferencia, por ejemplo,
nano, para acceder al contenido encriptado.
- Abre una nueva consola y ejecuta el comando
-
Ingresar nuevas claves:
- Puedes añadir nuevas claves, por ejemplo,
hello: 123456, lo que crea un par llave-valor en las credenciales.
- Puedes añadir nuevas claves, por ejemplo,
-
Guardado y encriptación:
- Guarda los cambios y verifica que el archivo se haya encriptado correctamente.
¿Cómo utilizar credenciales en tu aplicación?
Para poder utilizar de forma práctica estas credenciales dentro de tu aplicación, sigue estos pasos:
-
Acceder a las credenciales desde Rails:
- En la consola de Rails, accede al contenido encriptado utilizando:
Rails.application.credentials.hello - Esto te permitirá obtener el valor asociado a la clave
hello.
- En la consola de Rails, accede al contenido encriptado utilizando:
-
Implementar en controladores:
- En el controlador, por ejemplo,
WelcomeController, puedes definir una variable de instancia con las credenciales:@credentials = Rails.application.credentials.hello
- En el controlador, por ejemplo,
-
Mostrar en vistas:
- Modifica la vista correspondiente para que esta variable se imprima. Duplica la línea y muestra el valor de la credencial.
Aunque este ejercicio es netamente práctico y las credenciales generalmente no se muestran directamente, este conocimiento es esencial para dominar cómo Rails maneja la seguridad de datos sensibles.
Con estos conocimientos, estás mejor preparado para manejar de manera segura la información sensible de tus aplicaciones Rails. ¡Sigue practicando y expandiendo tus habilidades en el mundo del desarrollo web!