Administrar datos confidenciales como claves API, tokens y credenciales en diversos entornos puede ser bastante complicado, especialmente cuando se desarrollan e implementan aplicaciones. Garantizar que los secretos se almacenen y recuperen de forma segura cuando sea necesario, sin codificarlos en el control de versiones, es crucial para mantener la seguridad.
Es por eso que creé Secrets Loader, un script Bash que recupera dinámicamente secretos de AWS SSM y CloudFormation directamente en su archivo .env, lo que hace que el desarrollo y la implementación locales sean más fáciles, seguros y eficientes.
Secrets Loader es una herramienta sencilla diseñada para recuperar automáticamente secretos de AWS SSM Parameter Store y salidas de AWS CloudFormation según la sintaxis personalizada de su archivo .env. Reemplaza los marcadores de posición con secretos reales sin exponer nunca información confidencial en el control de versiones.
Por ejemplo, en lugar de codificar sus claves API o credenciales, las define en su archivo .env de esta manera:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Con un solo comando, Secrets Loader obtendrá los valores reales de AWS y actualizará su archivo .env, manteniendo la información confidencial segura y fácil de administrar.
Durante el desarrollo y la implementación local, me encontré lidiando con credenciales confidenciales que no quería codificar en los archivos del proyecto. Después de haber utilizado ampliamente los servicios de AWS, quería una manera de integrar la administración de secretos en mi flujo de trabajo de desarrollo existente sin demasiadas complicaciones.
Estos son los principales desafíos que resuelve Secrets Loader:
Secrets Loader viene con algunas características clave que lo convierten en una herramienta útil tanto para entornos de producción como de desarrollo local:
La magia de Secrets Loader radica en su capacidad de recuperar secretos de AWS en función de prefijos específicos (ssm: y cf:). A continuación se muestra un flujo de trabajo de ejemplo:
Agregue marcadores de posición para sus secretos en su archivo .env usando el prefijo ssm: para los parámetros de SSM o el prefijo cf: para las salidas de CloudFormation:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
Utilice el siguiente comando para ejecutar el script y recuperar los secretos:
./secrets.sh
Después de ejecutar el script, su archivo .env se actualizará con los valores reales obtenidos de AWS:
THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-access-key-value
¡No más secretos de codificación y no más búsquedas manuales!
¿Listo para empezar? Así es como puedes configurar Secrets Loader en tu proyecto:
git clone https://github.com/Thavarshan/secretst-loader.git cd secretst-loader
chmod x secrets.sh
Si no tiene la AWS CLI instalada, siga la guía de instalación de la AWS CLI. Después de la instalación, configure sus credenciales de AWS:
aws configure
Utilice los prefijos ssm: y cf: para definir de dónde deben provenir los secretos:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Veamos un ejemplo sencillo:
# Application settings APP_NAME=MyApp APP_ENV=production # Secrets fetched from AWS SSM and CloudFormation THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
./secrets.sh
# Application settings APP_NAME=MyApp APP_ENV=production # Fetched secrets THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-secret-access-key
Si encuentra algún problema al utilizar Secrets Loader, aquí hay algunas cosas que debe verificar:
Permisos de AWS: asegúrese de que la CLI de AWS esté configurada correctamente y que su rol o usuario de IAM tenga permisos suficientes para acceder a los secretos de AWS SSM y CloudFormation.
Errores de sintaxis: vuelva a verificar la sintaxis en su archivo .env para asegurarse de que los prefijos ssm: y cf: sean correctos.
Errores de script: si el script no logra recuperar ciertos secretos, registrará advertencias pero continuará recuperando los demás. Revise los registros para detectar mensajes de error y asegúrese de que los recursos de AWS existan y sean accesibles.
El script está diseñado para ser extensible. Si desea integrar otros sistemas de administración de secretos (como Azure Key Vault o HashiCorp Vault), puede modificar fácilmente el script para admitir nuevos prefijos y lógica de recuperación.
Por ejemplo, podría agregar un prefijo azkv: para recuperar secretos de Azure Key Vault y controlar la recuperación mediante la CLI de Azure.
Secrets Loader es de código abierto y las contribuciones siempre son bienvenidas. Si desea agregar funciones, corregir errores o sugerir mejoras, no dude en:
Si está cansado de administrar secretos manualmente en todos los entornos, Secrets Loader es una herramienta sencilla y eficaz para agilizar el proceso. Al obtener secretos dinámicamente de AWS SSM y CloudFormation, puede administrar de forma segura sus credenciales sin correr el riesgo de quedar expuestos en el control de versiones.
Consulta el proyecto en GitHub, pruébalo y, si lo encuentras útil, ¡danos un ⭐ en GitHub! Tu apoyo ayuda a que el proyecto crezca y nos encantaría escuchar tu opinión. comentarios o vea sus contribuciones a su desarrollo continuo.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3