簡體   English   中英

如何在 Express Project 中使用 AWS Secrets Manager 獲取憑證?

[英]How to use AWS Secrets Manager in Express Project for fetching Credentials?

我正在嘗試從我的憑證和密鑰遷移到我的 Express 項目中的 AWS Secrets Manager。

當前結構有一個 config.json 文件,該文件在 express 應用程序時同步加載。

但是,當我嘗試從 AWS API 獲取憑證時,流程將不起作用。 因為在我之前的方法中,文件是同步加載的,因此,當應用程序啟動時所有憑證都可用,但當從 AWS API 獲取憑證時,所有憑證都不可用。

我想了解在 Express/Node 項目中需要 API 調用以獲取憑據的任何秘密管理器的理想方法是什么。

以下是我獲取后續遷移的秘密的方法。

  1. 將 config.json 重命名為 config.js,確保相應地更新 .sequelizerc。
  2. 在 config.js 里面粘貼這個:
const aws = require('aws-sdk');
aws.config.update({
  region: 'ca-central-1', // IMPORTANT: configure your aws region
});

const returnSequelizeConfig = async () => {
  const secretsManager = new aws.SecretsManager();
  const secret = await secretsManager
    .getSecretValue({ SecretId: 'dev/yourwork/postgres' }) // fetch secret
    .promise();
  const parsedSecret = JSON.parse(secret.SecretString);

  return {
    development: {
      database: parsedSecret.dbname,
      username: parsedSecret.username,
      password: parsedSecret.password,
      host: 'yourwork-instance.XXXXX.ca-central-1.rds.amazonaws.com', // replace with host
      dialect: 'postgres',
    },
    test: {
      username: 'postgres',
      password: 'postgres',
      database: 'yourwork_db',
      host: 'localhost',
      dialect: 'postgres',
    },
  };
};

module.exports = returnSequelizeConfig;

然后,在運行 sequelize 遷移時,它將首先獲取秘密,然后返回配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM