Rumah  >  Artikel  >  hujung hadapan web  >  Cara Mengintegrasikan HashiCorp Vault dengan Node.js: Mengurus Data Sensitif dengan Selamat

Cara Mengintegrasikan HashiCorp Vault dengan Node.js: Mengurus Data Sensitif dengan Selamat

Susan Sarandon
Susan Sarandonasal
2024-10-29 18:40:08978semak imbas

How to Integrate HashiCorp Vault with Node.js: Securely Manage Sensitive Data

Apabila bekerja dengan data sensitif seperti kata laluan, kunci API atau maklumat pengguna peribadi, adalah penting untuk menyimpannya dengan selamat. Rahsia pengekodan keras dalam kod sumber anda atau menyimpannya dalam fail teks biasa adalah pendekatan yang berisiko. Di sinilah HashiCorp Vault memainkan peranan. Vault ialah alat sumber terbuka untuk mengurus rahsia, seperti bukti kelayakan, kunci API dan konfigurasi sensitif.
Dalam tutorial ini, saya akan membimbing anda melalui proses:
Memasang HashiCorp Vault pada Windows
Mengintegrasikannya dengan aplikasi Node.js
Melakukan operasi CRUD asas (Buat, Baca, Kemas Kini, Padam) dengan pasangan kata laluan e-mel yang disimpan dalam Bilik Kebal.

Prasyarat
Sebelum kita menyelam, pastikan anda mempunyai perkara berikut:
Node.js dipasang pada sistem anda.
Pemahaman asas JavaScript dan Node.js.
HashiCorp Vault dipasang.


Langkah 1: Memasang HashiCorp Vault pada Windows
Mari mulakan dengan menyediakan Vault pada mesin tempatan anda.
Muat turun Vault
Pergi ke halaman muat turun Vault rasmi dan muat turun binari Windows.
Nyahzip fail yang dimuat turun dan alihkan fail vault.exe ke direktori (cth., C:vault).

Tambahkan Vault pada PATH
Buka Menu Mula dan cari Pembolehubah Persekitaran.
Dalam Pembolehubah Sistem, cari Laluan dan klik Edit.
Tambahkan direktori tempat vault.exe terletak (C:vault) pada senarai.
Buka Prompt Perintah baharu dan sahkan pemasangan dengan menjalankan:

kebal --versi
Mulakan Bilik Kebal dalam Mod Pembangunan
Mulakan pelayan Vault dalam mod pembangunan menggunakan arahan ini:
pelayan peti besi -dev
Perintah ini akan melancarkan Vault secara tempatan, dan anda sepatutnya melihat Token Root dipaparkan dalam terminal. Simpan untuk kemudian; anda memerlukannya untuk mengesahkan.


Langkah 2: Menyediakan Projek Node.js
Memandangkan Vault sedang berjalan, kami akan menyediakan projek Node.js untuk berinteraksi dengan Vault.
Mulakan Projek Node.js Baharu
Buat direktori baharu untuk projek anda dan navigasi ke dalamnya:

mkdir vault-node-app cd vault-node-app

  1. Mulakan projek Node.js baharu: npm init -y
  2. Pasang kebergantungan yang diperlukan: npm pasang node-vault dotenv node-vault: Ini adalah pelanggan Node.js rasmi untuk Vault. dotenv: Untuk mengurus pembolehubah persekitaran.

Langkah 3: Mengintegrasikan Vault dengan Node.js
Konfigurasi Pembolehubah Persekitaran
Buat fail .env dalam direktori akar projek anda untuk menyimpan konfigurasi Vault:
VAULT_ADDR=http://127.0.0.1:8200
VAULT_TOKEN=
Gantikan dengan token akar yang dipaparkan apabila anda memulakan Vault dalam mod pembangunan.
Buat Skrip Node.js
Cipta fail index.js baharu dalam direktori projek anda dan tampal kod berikut:
memerlukan('dotenv').config();
peti besi const = memerlukan('nod-vault')({
apiVersion: 'v1',
titik akhir: process.env.VAULT_ADDR,
token: process.env.VAULT_TOKEN
});
const SECRET_PATH = 'rahsia/data/pengguna'; // Laluan untuk menyimpan rahsia pengguna
// Simpan e-mel dan kata laluan
fungsi async saveCredentials(e-mel, kata laluan) {
cuba {
hasil const = tunggu bilik kebal.write(SECRET_PATH, {
data: {
[e-mel]: { kata laluan }
}
});
console.log(Bukti kelayakan disimpan untuk ${email}:, hasil);
} tangkap (ralat) {
console.error('Ralat menyimpan bukti kelayakan:', ralat);
}
}
// Kemas kini bukti kelayakan melalui e-mel
async function updateCredentials(emel, newPassword) {
cuba {
hasil const = tunggu bilik kebal.write(SECRET_PATH, {
data: {
[e-mel]: { kata laluan: newPassword }
}
});
console.log(Kredential dikemas kini untuk ${email}:, hasil);
} tangkap (ralat) {
console.error('Ralat mengemas kini bukti kelayakan:', ralat);
}
}
// Dapatkan bukti kelayakan melalui e-mel
fungsi async getCredentials(e-mel) {
cuba {
hasil const = tunggu peti besi.baca(SECRET_PATH);
const userData = result.data.data[emel];
jika (Data pengguna) {
console.log(Mengambil kelayakan untuk ${email}:, userData);
} lain {
console.log(Tiada bukti kelayakan ditemui untuk ${email});
}
} tangkap (ralat) {
console.error('Ralat mendapatkan semula bukti kelayakan:', ralat);
}
}
// Padamkan bukti kelayakan melalui e-mel
fungsi async deleteCredentials(e-mel) {
cuba {
keputusan const = tunggu bilik kebal.padam(SECRET_PATH);
console.log(Kredential dipadamkan untuk ${email});
} tangkap (ralat) {
console.error('Ralat memadam bukti kelayakan:', ralat);
}
}
// Contoh Penggunaan
(async () => {
tunggu saveCredentials('test@example.com', 'password123');
tunggu getCredentials('test@example.com');
tunggu updateCredentials('test@example.com', 'newpassword456');
tunggu getCredentials('test@example.com');
tunggu deleteCredentials('test@example.com');
})();
Penjelasan Kod
Simpan bukti kelayakan: Menyimpan e-mel dan kata laluan dalam Vault.
Kemas kini bukti kelayakan: Mengemas kini kata laluan untuk e-mel yang diberikan.
Dapatkan semula bukti kelayakan: Ambil bukti kelayakan yang disimpan menggunakan e-mel.
Padamkan bukti kelayakan: Memadamkan bukti kelayakan untuk e-mel yang diberikan.

Kami menggunakan laluan rahsia/data/pengguna dalam Vault untuk menyimpan dan mengurus data pengguna.


Langkah 4: Menjalankan Aplikasi
Untuk menjalankan aplikasi, gunakan arahan berikut:
nod index.js
Skrip akan:
Simpan e-mel dan kata laluan ke Vault.
Dapatkan semula bukti kelayakan menggunakan e-mel.
Kemas kini kata laluan.
Dapatkan semula kelayakan yang dikemas kini.
Padamkan bukti kelayakan yang disimpan.


Kesimpulan
Dengan mengikuti tutorial ini, anda kini mempunyai aplikasi Node.js berfungsi sepenuhnya yang disepadukan dengan HashiCorp Vault. Persediaan ini memberi anda cara yang selamat dan berskala untuk mengurus maklumat sensitif seperti pasangan e-mel-kata laluan dalam aplikasi anda.
HashiCorp Vault ialah alat yang berkuasa untuk menyimpan rahsia, dan penyepaduannya dengan Node.js agak mudah menggunakan perpustakaan nod-vault. Anda boleh mengembangkan persediaan ini untuk menyimpan rahsia lain seperti kunci API, token dan banyak lagi.
Jika anda sedang membina mana-mana aplikasi yang memerlukan pengurusan data sensitif, anda amat disyorkan untuk menggunakan mekanisme storan selamat seperti Vault untuk mengurangkan risiko keselamatan.

Atas ialah kandungan terperinci Cara Mengintegrasikan HashiCorp Vault dengan Node.js: Mengurus Data Sensitif dengan Selamat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn