Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
env0-middy-secrets-manager
Advanced tools
Secrets Manager middleware for the middy framework
Secrets Manager middleware for the middy framework, the stylish Node.js middleware engine for AWS Lambda
This middleware fetches secrets from AWS Secrets Manager.
Secrets to fetch can be defined by by name. See AWS docs here.
Secrets are assigned to the function handler's context
object.
The Middleware makes a single API request for each secret as Secrets Manager does not support batch get.
For each secret, you also provide the name under which its value should be added to context
.
To install this middleware you can use NPM:
npm install --save @middy/secrets-manager
cache
(boolean) (optional): Defaults to false
. Set it to true
to skip further calls to AWS Secrets ManagercacheExpiryInMillis
(int) (optional): Defaults to undefined
. Use this option to invalidate cached secrets from Secrets Managersecrets
(object) : Map of secrets to fetch from Secrets Manager, where the key is the destination, and value is secret name or secret ARN in Secrets Manager.
Example: {secrets: {RDS_LOGIN: 'dev/rds_login'}}
awsSdkOptions
(object) (optional): Options to pass to AWS.SecretsManager class constructor.throwOnFailedCall
(boolean) (optional): Defaults to false
. Set it to true
if you want your lambda to fail in case call to AWS Secrets Manager fails (secrets don't exist or internal error). It will only print error if secrets are not already cached.setEnvironment
(boolean) (optional): Defaults to false
. Set it to true
if you want to set the secrets as environment variables in addition to the context parameter. Praticularly useful for string secrets.NOTES:
secretsmanager:GetSecretValue
actionaws-sdk
version of 2.176.0
or greater is required. If your project doesn't currently use aws-sdk
, you may need to install it as a devDependency
in order to run testsconst middy = require('@middy/core')
const secretsManager = require('@middy/secrets-manager')
const handler = middy((event, context, cb) => {
cb(null, {})
})
handler.use(secretsManager({
cache: true,
secrets: {
RDS_LOGIN: 'dev/rds_login'
}
}))
// Before running the function handler, the middleware will fetch from Secrets Manager
handler(event, context, (_, response) => {
// assuming the dev/rds_login has two keys, 'Username' and 'Password'
expect(context.RDS_LOGIN.Username).toEqual('username')
expect(context.RDS_LOGIN.Password).toEqual('password')
})
For more documentation and examples, refers to the main Middy monorepo on GitHub or Middy official website.
Everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.
Licensed under MIT License. Copyright (c) 2017-2018 Luciano Mammino and the Middy team.
FAQs
Secrets Manager middleware for the middy framework
We found that env0-middy-secrets-manager demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.