将安全字符串参数插入 ssm 参数存储的 CDK 和自动化?

Posted

技术标签:

【中文标题】将安全字符串参数插入 ssm 参数存储的 CDK 和自动化?【英文标题】:CDK and automation of inserting secure string parameters into ssm parameter store? 【发布时间】:2021-06-05 23:24:21 【问题描述】:

所以我发现您不能使用 CloudFormation 将需要使用 KMS 密钥保护的参数插入到安全参数存储中。显然,您可以使用 cli,但在管道中执行多个插入安全参数时有很大的缺点,因为如果一个在中间失败,其他的将恢复,就像通过 CDK 和 Cloudformation 完成一样.

所以问题是,其他人是如何将此类功能整合到 CI/CD 管道中的?手动进入每个环境并放入 Secure Parameter Store?

【问题讨论】:

【参考方案1】:

这是一个限制。 CDK 文档建议使用 AWS SecretsManager 作为替代方案。如果您仅限于使用 SSM,那么我认为您将不得不使用 SDK 或 CLI。

相关链接:

https://docs.aws.amazon.com/cdk/latest/guide/get_ssm_value.html https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html

【讨论】:

【参考方案2】:

我在 CDK https://github.com/HarshRohila/cdk-secure-parameter-store 中创建了一个 npm 包来执行此操作

这里使用Lambda backed Custom Resource

这是如何工作的?

cloudformation 没有创建安全参数存储的 API,但 AWS SDK 有。 所以这个想法是使用 CloudFormation 自定义资源,我们可以附加一个 lambda,每当创建/更新/删除 CustomResource 时都会调用该 lambda 并且 lambda 可以使用 AWS SDK 创建和删除参数存储

更多关于这个问题的讨论here

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review

以上是关于将安全字符串参数插入 ssm 参数存储的 CDK 和自动化?的主要内容,如果未能解决你的问题,请参考以下文章

AWS 跨账户 - 对 AWS CDK 中的参数的参数存储/Secrets Manager 访问

在 AWS Elastic Beanstalk 中使用 SSM 参数存储

使用 Terraform 代码创建 Ec2 实例,其中私钥将存储在 AWS 参数存储中(类型-安全字符串)

将 xml 字符串参数传递给 SQL Server 存储过程

如何将 VPC 和安全组分配给 AWS CDK 中的 Lambda?

什么是将参数传递给 SQL,我为什么需要它?