Estoy tratando de usar la API de MailChimp en mi sitio web de reacción que está alojado en Google Firebase. Estoy tratando de almacenar mis claves API usando la función de nube y la configuración del entorno. Sin embargo, no estoy completamente seguro de cómo acceder a esas variables de configuración después de configurarlas. ¿Esas variables se hacen globales en toda mi aplicación de reacción, o necesito importarlas de alguna manera?
Estoy tratando de seguir la documentación que se enumera aquí: https://firebase.google.com/docs/functions/config-env
Así es como se ve mi estructura de archivos:
Las claves API solo están disponibles en la función implementada, no en la aplicación de reacción. Puede llamar a una función desde su aplicación de reacción que luego llama a la API de MailChimp. Esto mantiene su clave API fuera del código del lado del cliente que lo mantiene seguro.
Como dice la documentación, configura las claves API con la CLI en la terminal
firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"y luego puede usarlos en una función de base de fuego llamando
const apiKey = functions.config().someservice.keyFirebase puede usar Google Cloud Platform Services, puede integrar GCP Secret Manager en sus funciones. Google Secret Manager es un sistema de almacenamiento conveniente, seguro y completamente administrado para dichos secretos.
Históricamente, los desarrolladores han aprovechado las variables de entorno o el sistema de archivos para administrar secretos en Cloud Functions. Esto se debió en gran parte a que la integración con Secret Manager requería que los desarrolladores escribieran código personalizado... hasta ahora. Con este servicio, puede almacenar sus claves sin procesar (estas se cifrarán) y recuperar mediante su función de código, lo que conlleva la ventaja de que puede restringir el acceso a través de Cloud IAM y cuentas de servicio. Además, esto puede ayudarlo a definir qué miembros de sus proyectos o qué cuentas de servicio pueden acceder a las claves API (secretos). Los permisos sobre los secretos se pueden configurar para que incluso los desarrolladores no puedan ver las claves del entorno de producción, mediante la asignación de permisos de acceso a los secretos. pero permitiendo que la función pueda obtener el secreto (porque la cuenta de servicio asociada con su función puede leer el secreto).
Otros beneficios incluyen:
En este documento puedes encontrar un ejemplo de código en JS sobre cómo usar GCP Secret Manager.