SSM参数存储-如何动态选择我需要访问的参数版本

时间:2019-10-15 23:07:07

标签: amazon-web-services ssm

我正在使用SSM安全参数存储区来存储RDS数据库的密码。

  • 我有CloudFormation
    • 生成密码并将其存储在具有特定名称的密钥下。名称是根据CloudFormation的输入参数之一生成的。
    • 使用CloudFormation创建的IAM角色存储参数
  • 之后运行的另一个CloudFormation堆栈
    • 使用相同的IAM角色来检索参数,并使用参数作为密码来部署RDS
    • CloudFormation像这样使用ssm-secure:
            "MasterUserPassword": {
                "Fn::Sub": "{{resolve:ssm-secure:${WorkshopName}:1}}"
            },

注意“ 1”。 SSM Secure String Parameters docs非常清楚:一个整数,指定要使用的参数的版本。您必须指定确切的版本。当前,您不能指定AWS CloudFormation使用参数的最新版本

那真是令人讨厌

  • 使用最新版本正是我想要做的
  • 在某些情况下,我可能会在版本1插槽中得到一个旧密钥。然后,当第一个CFN堆栈创建v2时,所有操作都会失败,而下一个堆栈尝试检索v1并失败(它是在其他IAM角色下创建的,并以The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.失败)

关于如何实现任一方面的更具弹性的逻辑的任何编程建议 *始终获取最新版本,或者 *尝试获取v1时捕获失败,然后递增版本直到成功

0 个答案:

没有答案