【发布时间】:2018-09-17 02:57:54
【问题描述】:
目前,我使用单个 SSM parameter 来存储一组由换行符分隔的属性,如下所示:
property1=value1
property2=value2
property3=value3
(我知道 4K 大小限制,没关系。)
这对于存储非敏感信息(如环境配置)的普通String 类型参数来说效果很好,但我也想使用SecureString 参数类型对机密执行类似操作。
问题是我无法在控制台中编辑参数值,因为它使用的 HTML 输入字段为 type="password",不处理换行符。
多行值适用于实际参数存储后端 - 我可以使用 SSM API 设置一个包含多行的值,并且它们也可以使用 EC2 CLI 正确读取。
但我无法使用控制台编辑它们。这是一个问题,因为使用 SecureString 参数的全部意义在于,我打算通过控制台编辑/查看这些机密的唯一位置(以便控制权限并审核访问)。
我可以实现一些基础架构变通方法(每个秘密一个参数,将秘密存储在 S3 或其他秘密存储服务等),但它们都有缺点 - 我只是想找出是否有办法使用控制台解决这个问题?
有什么办法可以解决这个问题并使用控制台编辑多行 SecureString 参数?
我可以用来告诉浏览器使用文本区域而不是“密码”类型字段的任何类型的浏览器解决方法或黑客攻击?
我正在使用 Chrome,但我很乐意通过使用其他浏览器或其他东西来解决这个问题(编辑机密非常少见,在控制台中查看多行值可以正常工作)。
编辑
发布此问题后,AWS 通知我有一个全新的“AWS Systems Manager”用户界面,但它仍然存在同样的问题 - 我在这个新用户界面上尝试了以下浏览器黑客攻击,但没有运气。
浏览器破解尝试 1 失败:我尝试打开浏览器控制台,运行 document.getElementById("Value").value = "value1\nvalue2",然后单击保存按钮,该按钮设置了我注入的值,但换行符被过滤掉了。
浏览器破解尝试 2 失败:我尝试使用浏览器检查器将元素更改为 TextArea,然后输入两行输入并单击保存,但这根本没有设置值。
【问题讨论】:
-
我们在工作中所做的事情是输入类似
property1=value1\nproperty2=value2\nproperty3=value3的内容,然后在从 ssm 读取值后,将\n替换为实际的换行符。如果有更好的解决方案,我会很感兴趣
标签: html amazon-web-services ssm aws-ssm