AWS CDK v2:因type参数已弃用,如何加密SSM的StringParameter?
CDK v2下用SSM Parameter Store创建加密参数的方案
当然可以实现,不需要依赖第三方构造,用AWS CDK v2原生模块就能搞定,以下是两种可行方式:
方式1:使用StringParameter指定加密类型(兼容弃用参数)
虽然StringParameter的type参数被标记为弃用,但目前仍能正常使用,直接指定ParameterType.SECURE_STRING即可创建加密参数:
import * as cdk from 'aws-cdk-lib'; import * as ssm from 'aws-cdk-lib/aws-ssm'; const stack = new cdk.Stack(app, 'SecureParamDemoStack'); // 创建加密的SSM字符串参数 new ssm.StringParameter(stack, 'ApiKeyParam', { parameterName: '/prod/myapp/api-key', stringValue: 'your-secret-key-here', type: ssm.ParameterType.SECURE_STRING, // 可选:指定自定义KMS密钥,默认使用AWS管理的SSM密钥 // kmsKey: yourCustomKmsKey, });
方式2:使用SecureStringParameter构造(推荐,无弃用警告)
AWS CDK v2提供了专门的SecureStringParameter构造,用来创建加密参数,完全规避弃用警告:
// 创建加密参数(推荐方式) new ssm.SecureStringParameter(stack, 'DbPasswordParam', { parameterName: '/prod/myapp/db-password', secretValue: cdk.SecretValue.unsafePlainText('your-db-secret'), // 可选:绑定自定义KMS密钥 // kmsKey: yourCustomKmsKey, });
额外说明
- 两种方式创建的参数都会自动加密存储,默认使用AWS托管的KMS密钥,也可以指定自己的KMS密钥提升安全性。
- 如果需要引用已存在的加密SSM参数,可使用
SecureStringParameter.fromSecureStringParameterAttributes方法。 - 用SSM Parameter Store存储密钥相比SecretsManager成本更低,完全满足密钥存储的基础需求。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

