typescript - 使用自定义 Lambda 函数轮换 key

标签 typescript amazon-web-services devops aws-cdk aws-secrets-manager

如何为密码每小时更改一次的轮换 key (Typescript 中的 CDK)编写 lambda。

const templatedSecret = new secretsmanager.Secret(this, 'TemplatedSecret', {
      generateSecretString: {
        secretStringTemplate: JSON.stringify({ username: 'user' }),
        generateStringKey: 'password',
      },
    });

    new iam.User(this, 'OtherUser', {
      userName: templatedSecret.secretValueFromJson('username').toString(),
      password: templatedSecret.secretValueFromJson('password'),
    });

到目前为止,我只有这个代码,作为引用,我有 https://docs.aws.amazon.com/cdk/api/latest/docs/aws-secretsmanager-readme.html#rotating-a-secret 但我很困惑如何继续并完成我想要的任务

最佳答案

正如您的链接所述,您需要向您的 secret 添加时间表:

const fn = new lambda.Function(...);
const secret = new secretsmanager.Secret(this, 'Secret');

secret.addRotationSchedule('RotationSchedule', {
  rotationLambda: fn,
  automaticallyAfter: Duration.days(15)
});

根据需要修改持续时间。您还需要创建一个处理旋转的 lambda 函数 (fn)。这可能是您需要的通用 secret ,因此您应该基于此 template 来构建示例。 .

您需要填写set_secrettest_secret方法。 set_secret 在您的服务中设置 secret 。如果是数据库,它会调用更新用户密码的API。如果您不需要它,请留下一个空的应用程序。 test_secret 测试新 key 是否可操作。空的实现也可以工作。

您还需要为 secret 管理器添加 lambda 调用权限。像这样的事情:

fn.addPermission('allowInvocation',{
  principal: new ServicePrincipal('secretsmanager.amazonaws.com')
})

在 AWS 控制台中,转到 Lambda 配置,向下滚动到基于资源的策略并添加以下权限:

enter image description here

关于typescript - 使用自定义 Lambda 函数轮换 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69930217/

相关文章:

hadoop - 使用 aws 自动化 Hive Activity

database - AWS RDS MariaDB 在简单的更改表上无缘无故地消耗了 300GB

memory-leaks - 服务的BandwidthIn和BandwidthOut图代表什么?

javascript - 编译 TypeScript 时出现 Ionic 2 语法错误

typescript - 如何配置npm包自动更新

amazon-web-services - 同步调用 lambda 时如何向 DLQ 添加失败消息?

tomcat - 如何从 Internet 访问我的本地主机 tomcat webapp

amazon-web-services - 使用Jenkins从EC2删除现有的docker镜像

reactjs - React Router - 更新版本后 withRouter 上的 Typescript 错误

javascript - 在 webpack 中暴露 UIkit