我正在使用AWS CLI更新包含x509证书的JSON密钥.我传递给--secret-string
参数的有效负载是我所期望的编码,但是当它被上传并存储在AWS中时,secresManager会对换行符执行额外的编码.
Problem个
我得到的问题是PEM和密钥内容在解开秘密时并不是完全不被解开的.我在GO中有一个应用程序服务器,当将秘密传递到tls.X509KeyPair()
中时,它无法识别证书的内容.
我可以在Web上手动将CLI命令中的有效负载粘贴到密码中,它保留了现有的格式,我的代码运行得很好.
我主要是想看看是否可以做些什么来修复上传编码,而不是在获取密钥时格式化/取消转义Go中的PEM/Key内容.
Example:
-CLI命令:
aws secretsmanager update-secret --secret-id my-secret --secret-string '{"PEM":"-----BEGIN CERTIFICATE-----\n...\n...\n...\n-----END CERTIFICATE-----\n","KEY":"..."}'
实际上传的密码:
{"PEM":"-----BEGIN CERTIFICATE-----\\\\n...\\\\n...\\\\n...\\\\n-----END CERTIFICATE-----\\\\n",,"KEY":"..."}
我使用awk
来加入PEM内容,使用jq
来更新+字符串JSON.STRINGIZED JSON正是我要查找的正确格式.
AWK:STRING_PEM=$(awk '{printf "%s\\n", $0}' $PemFile)
JQ:SECRET_STRING=$(jq -r 'tostring' $UPDATED_SECRET)