forked from BiteSizeAcademy/lambda-secrets
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.js
More file actions
24 lines (21 loc) · 688 Bytes
/
utils.js
File metadata and controls
24 lines (21 loc) · 688 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-1' });
const kms = new AWS.KMS();
const decrypted = {};
exports.decryptSecret = async (secretName) => {
if (decrypted[secretName]) {
console.log('returning cached ' + secretName);
return decrypted[secretName];
}
console.log('decrypting ' + secretName);
try {
const req = { CiphertextBlob: Buffer.from(process.env[secretName], 'base64') };
const data = await kms.decrypt(req).promise();
const decryptedVal = data.Plaintext.toString('ascii');
decrypted[secretName] = decryptedVal;
return decryptedVal;
} catch (err) {
console.log('decrypt error:', err);
throw err;
}
};