【问题标题】:Dynamodb and AWS Key Manager configuration conflictDynamodb 和 AWS Key Manager 配置冲突
【发布时间】:2023-01-09 19:22:19
【问题描述】:

问题是当我向 Dynamodb 配置端点提供一些值时,AWS 密钥管理服务完全停止工作。

1. 动态数据库

    const awsConfig = {
        region: process.env.REGION,
        endpoint: process.env.ENDPOINT, //this stops AWS KMS
        accessKeyId: process.env.ACCESS_KEY_ID,
        secretAccessKey: process.env.ACCESS_KEY,
    };

    aws.config.update(awsConfig);

2.AWS 知识管理系统

    constructor() {
        this.#KEYAWS = keyAws;
        this.#region = process.env.REGION;
        this.#secretName = process.env.SECRET_NAME;
        this.#secret = process.env.ACCESS_KEY;
        this.#_AWS_KEY_ACCESS_KEY_ID = process.env.ACCESS_KEY_ID;
    }

    async #getPrivateKey() {
        this.#KEYAWS.config.update({
            accessKeyId: this.#_AWS_KEY_ACCESS_KEY_ID,
            secretAccessKey: this.#secret,
        });

        var client = new this.#KEYAWS.SecretsManager({
            region: this.#region,
        });
    }

当我在 Dynamo 配置中注释掉 endpoint 时,KMS 正常工作

注意:DynamoDB 的 VPC 端点使 VPC 中的 Amazon EC2 实例能够使用其私有 IP 地址访问 DynamoDB,而不会暴露于公共互联网。

【问题讨论】:

    标签: node.js amazon-dynamodb environment-variables aws-sdk amazon-kms


    【解决方案1】:

    这是因为将 endpoint: process.env.ENDPOINT 添加到全局配置对象。 AWS SDK Global Configuration

    我从全局配置中删除了端点选项,并专门将其传递给 dynamodb 服务aws.DynamoDB.DocumentClient({endpoint: process.env.ENDPOINT})

    因此,这里的做法是,无论何时发生冲突,都应从全局配置中排除这些选项。

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 2018-12-09
      • 2018-09-15
      • 2020-04-01
      • 2021-09-20
      相关资源
      最近更新 更多