如何在AWS CDK中创建没有值的参数存储条目?

时间:2020-11-09 03:02:28

标签: aws-cdk aws-ssm

在AWS CDK中,您可以创建一个参数存储条目来存储密码之类的机密。

但是,您不能将值保留为空白,也不应该将机密信息放入CDK git存储库中,那么如何创建该条目?

我目前正在做这样的事情:

const paramKey = new cdkSSM.StringParameter(this, 'example-key', {
    description: 'Example SSH private key parameter',
    parameterName: 'example-key',
    stringValue: `???`, /// What goes here?
    allowedPattern: '^-----BEGIN RSA PRIVATE KEY-----[^-]*-----END RSA PRIVATE KEY-----$',
});

在这种情况下,我不能将stringValue留为空白,否则会出现错误,因为参数存储区不允许空白值。由于allowedPattern的要求(这是防止他人通过AWS CLI意外输入无效值的安全措施),它将接受的唯一值是RSA私钥。但是我不想放入我的私钥,因为它不应该是CDK git存储库的一部分。我不想使用虚拟密钥,否则有人可能会认为已经输入了正确的密钥。

在显示allowedPattern的情况下如何部署空白的参数存储值?

我想出的唯一解决方法是破解该值以允许另一个令牌,如下所示:

const paramKey = new cdkSSM.StringParameter(this, 'example-key', {
    description: 'Example SSH private key parameter',
    parameterName: 'example-key',
    stringValue: `TODO`,
    allowedPattern: '^TODO$|^-----BEGIN RSA PRIVATE KEY-----[^-]*-----END RSA PRIVATE KEY-----$',
});

这意味着参数存储条目将接受RSA密钥或值TODO。但这似乎很骇人,所以我想知道是否有合适的解决方案?

0 个答案:

没有答案