secret manager

Mejorando la seguridad con Secret Manager

Hey Colegas!!!

Hoy vuelvo con un post muy interesante que puede serles de utilidad al utilizar passwords operando sistemas o aplicando buenas practicas a la hora de desarrollar. 

Cada vez que vamos al cajero a retirar dinero nos solicita una clave secreta que solo nosotros deberiamos conocer. Y ¿donde la almacenamos? en nuestra memoria donde sabemos que es muy dificil que alguien la conozca. Pero que pasaria si somos olvidadisos. Algunas personas deciden escribar en un papel y guardarlo en su billetera o una nota en su telefono movil. ¿Verdad que ahora es un poco mas inseguro? Claro, si alguien accede a nuestra billetera podria ver la clave o tambien si acceden a nuestras notas en el telefono. Peor aun si usamos la misma clave para varias operaciones. El peligro latente !Acceso a nuestro dinero! 

De igual manera, sucede en los sistemas informáticos. Las claves son un aspecto valioso para la seguridad del software, ya sea que lo estemos desarrollando o que lo estemos operando. Te pregunto ¿Donde sueles almacenar tus claves? ¿Están encriptadas? ¿En texto plano? ¿Dentro del código? ¿En variables de entorno?

Si estas buscando una solución para las preguntas anteriores la respuesta es

Con Google Secret Manager podes guardar Contraseñas, certificados y otros datos que sean sensibles para tus soluciones.  Pero ¿Como funciona? Vamos a verlo.

 

Obviamente, tenemos que tener creado un proyecto en Google Cloud. y luego habilitamos la APi de Secret Manager. Simplemente en el buscador de Google Cloud console teclea secret Manager y presionas habilitar

Como puedes ver, en mi proyecto ya dice administrar pero seguro a ti te sale la opcion Habilitar.

 

 Una vez habilitado, ya entramos a la consola de Secret Manager,  donde podemos empezar a gestionar nuestros recursos. Vamos a crear una clave para nuestra base de datos. 

1. Presionamos clic en Crear Secret

2. Ahora vemos las opciones que nos muestra Google donde podemos parametrizar nuestro secreto

3. Ponemos cualquier nombre y observen que podemos subir un archivo con la clave o directamente escribirla en el cuadro de texto «Valor Secreto». Pero noten todas las opciones que tenemos tambien para configurar. 

  •  Replicación:  Significa que Google se encargará de ubicár los secrets en cualquier ubicación (Región,Zona) para garantizar la disponibilidad. Sin embargo, si tu lo prefieres puedes seleccionar, por ejemplo, en la zona donde tengas ubicados tus recursos. 
  • Encriptación: Google usa KMS (Key manament Service) para administrar la encriptación. Pero también te ofrece la opción de usar tus propias claves de encriptación, aunque este tipo de servicio creo que lo usan mas empresas grandes como bancos o TelcOs. 
  • Rotación: Puedes hacer que roten los secrets. Pero primero deberias tener un Tema de Pub/sub (Servicio de Google para Cola de mensajes) con el cual  gestiones los eventos. (En el futuro hablaremos de Pub/sub)
  • Notificación: En esta sección debes configurar el tema de Pub/sub o crear uno nuevo. 
  • Vencimiento:  Podemos configurar una fecha de vencimiento del secret. Creo que puede ser util para procesos con batch que sean variables o temporales.
  • Etiquetas: Simplemente para tener identificado los recursos en nuestro proyecto. Por ejemplo, si tienes varios servidores para diferentes clientes o proyectos, podrias saber cuantos servicios tiene la etiqueta que configures. Esto también es útil para los informes de facturación por nombres de etiquetas. 

4. Ahora presionamos clic en el botón crear secreto y te mostratará la siguiente pantalla

Tenemos otras opciones interesantes:

  • Versiones: Podemos crear versiones de nuestro secret ya sea para mantener siempre las claves actualizadas o para hacer un roll back en nuestro sistema y que apuente a una version anterior de mis secrets. Tambien decidir si las habilitamos, inhabilitamos o destruimos.
  • Permisos: Simple. Decidimos quien puede usar o ver este secret. y aqui encontramos en un aspecto muy valioso. Piensa en este ejemplo: Supongamos que tu necesitas que tus operadores o desarrolladores usen las claves pero que no puedan saber que hay en ellas ¿Que puedes hacer? conceder el permisos de Secret Manager Secret Accessor ,  con el cual puedes permiter que los usen.
  • Registros: Genial que podamos ver que sucede con nuestras claves, quien las consume, si hay algun error,etc. 

Caso de Uso

Seguramentre ya estás pensando en como implementarlo. Hoy solo te voy a mostrar un solo caso de uso con servicios que tengamos en Cloud Run (Servicio para la implementacion de Contenedores).

Supongamos que vamos a crear un WordPress con cloud run  y ya tenemos nuestra imgen lista para el deployment, pero necesitamos configurarle una variable de entorno con los nombres de acceso a la DB y las claves.  Alli viene el valor de Secret Manager. Porque en vez de poner los datos de en variables de entornos configuras una variable que lea los datos del secret manager como muestra la siguiente imagen:

Bueno, esto fue lo que el tiempo y mis responsabilidades me permitieron compartir con ustedes hoy. Espero les haya gustado y pueda ayudarles en algún momento en que tengan que administrar claves en sus proyectos. 

Te agradezco un montón si compartes este post en tus redes sociales para que pueda seguir trabajando en el contenido y sientete libre de dejar un comentario o contactarme por linkedin.

See you in the cloud.

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Leave a Comment