Руководство по управлению переменными среды с помощью Infisical + Node.js

May 04 2023
При разработке программного обеспечения решающее значение имеет управление переменными среды, такими как ключи API, учетные данные и другая конфиденциальная информация. Infisical — это платформа со сквозным шифрованием с открытым исходным кодом, которая может помочь вам управлять переменными среды в любом масштабе.
Физический + узел

При разработке программного обеспечения решающее значение имеет управление переменными среды, такими как ключи API, учетные данные и другая конфиденциальная информация. Infisical — это платформа со сквозным шифрованием с открытым исходным кодом, которая может помочь вам управлять переменными среды в любом масштабе.

В этом руководстве мы покажем, как использовать Infisical для управления переменными среды для вашего стека Node, от локальной разработки до производства. Мы будем использовать Infisical Cloud , но те же шаги применимы, если вы используете собственный экземпляр .

Давайте погрузимся!

Что такое Инфизиал?

Infisical , платформа управления секретами с открытым исходным кодом и сквозным шифрованием, с помощью которой вы можете хранить переменные среды. Он полностью самодостаточен в вашей собственной инфраструктуре, хорошо документирован и безумно красив.

Нефизический

Его Node SDK позволяет вам получать переменные среды во время выполнения, будь то локальная разработка или производство.

Настройка проекта

Для начала мы настроим проект в Infisical и добавим переменные среды в среду.

  1. Создайте новый проект в Infisical.
  2. Добавьте секрет в среду разработки этого проекта, чтобы мы могли вернуть его для локальной разработки. На странице «Обзор секретов» нажмите «Исследовать разработку» и добавьте секрет с ключом NAME и значением YOUR_NAME . Эта переменная среды будет загружена для локальной разработки.

Чтобы получить доступ к секрету из нашего приложения Node, нам нужно создать Infisical Token .

  1. Перейдите в «Настройки проекта» > «Сервисные токены» и нажмите «Добавить новый токен» .
  2. Назовите токен (например, «Мой токен приложения») и выберите « Разработка» в разделе «Среда» . На этом этапе мы предоставляем этому токену доступ к среде разработки этого проекта.
  3. Скопируйте токен и держите его под рукой.
  4. Создать нефизический токен

Для этого руководства мы создадим минимальное приложение Express. Однако те же принципы применимы к любому приложению Node, например, созданному на Koa или Fastify.

Инициализируйте новый проект Node.js файлом по умолчанию package.json.

$ npm init -y

$ npm install express infisical-node

const express = require("express");
const app = express();
const PORT = 3000;

const client = new InfisicalClient({
    token: "YOUR_INFISICAL_TOKEN"
});

app.get("/", async (req, res) => {
    const name = (await client.getSecret("NAME")).secretValue;
    res.send(`Hello, ${name}!`);
});

app.listen(PORT, () => {
    console.log(`Example app listening on port ${PORT}`);
});

Запустите приложение и посетитеhttp://localhost:3000чтобы увидеть сообщение «Здравствуйте, ваше имя».


$ node index.js

Советы

Чтобы обеспечить оптимальную производительность, я бы рекомендовал создать один экземпляр клиента Infisical и экспортировать его для использования во всем приложении. Причина в том, что Node SDK кэширует каждый секрет и периодически обновляет его, сокращая избыточные вызовы; это встроенное кэширование обеспечивает бесшовную синхронизацию переменных среды в любом масштабе.

Я бы также рекомендовал хранить Infisical Token в .envфайле в локальной разработке или в качестве единственной переменной среды в рабочей среде. Таким образом, вам не нужно жестко кодировать его в своем приложении, и вы можете использовать его для получения остальных переменных среды.

Наконец, SDK способен на гораздо большее, чем просто получение секретов. Имея доступные операции создания , обновления и удаления , можно создать полноценную динамическую стратегию управления секретами с такими операциями, как чередование секретов.

Заключение

Теперь вы знаете, как получить секреты от Infisical для вашего приложения Node. Используя Infisical Tokens для разных сред, вы можете легко управлять секретами на разных этапах вашего проекта, от локальной разработки до производства. Infisical предлагает безопасное, удобное для разработчиков решение для управления вашими конфиденциальными данными, гарантируя, что ваши приложения будут созданы с учетом передового опыта.