在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
。但这似乎很骇人,所以我想知道是否有合适的解决方案?