続・パラメータストアに複数行の文字列を保存する方法とその適用例【SecureStringでも複数行】

約 10 ヶ月前、パラメータストアの「安全な文字列(SecureString)」には改行が含まれた複数行文字列が格納できない(改行が半角スペースに変換される)という記事を書いたのですが、この挙動がいつのまにか解消されていましたのでフォローアップします。
2019.02.28

背景

この記事は、昨年 4月に公開しました記事のフォローアップとなります。

パラメータストアに複数行の文字列を保存する方法とその適用例 #AWS

こちらの記事を公開したところ、下記のようなコメントをいただきました。

typeにSecureStringを指定し、複数行の文字列を保存した後に
パラメータを取得したところ、改行コードが半角スペースに変換されました。

SecureStringは複数行の文字列に対応していないのでしょうか。

当時検証してみたところ、確かにご指摘いただいた挙動が確認できました。ところが先日別件でパラメータストアの動作を検証していたところ、たまたまこの挙動が解消されていたことに気付いたのでご報告します。

SecureString でも複数行可能

'19/02 時点で、 SecureString に複数行登録し、複数行のまま取り出すことが可能です。

こちらは登録後、登録内容を「表示」した状態です。

ちなみに同じ記事で「 マネジメントコンソールであとから確認しようとすると、1行で表示されてしまう 」と書いていたのですが、こちらも改善されてますね!

AWS CLI で取得しても下記のとおり。ちゃんと格納時には暗号化されていますが、

--with-decryption オプションを指定しつつ値を取り出すと、ちゃんと改行も含まれてます。

aws ssm get-parameter \
    --name "/sample/multi_line/securestring" \
    --with-decryption \
    --query 'Parameter.Value' \
    --output text

まとめ

これで安心して、暗号化が必要な設定ファイルや鍵ファイルもパラメータストアに保存できますね!

何かのときに参考になれば幸いです。