GolangでAWS Systems Managerパラメータストアを利用する
概要
AWS Systems Managerのパラメータストアに格納された値をGolangで取得するコード例
Systems Manager パラメータストア設定
パラメータ作成
SamplePrameter
という名前で値(encryptStrings
)を暗号化した状態で保存
完成!とても簡単
IAMロール
Systems Managerを参照しにいくので下記ポリシーは必要
AmazonSSMReadOnlyAccess
ECSで利用してるロールの例
Goでパラメータストアから値を取得
parameterName
にパラメータストア設定した名前を入れる
res
にパラメータストアに格納されている値が返ってくる
ポイント
暗号化して値を保存しているので復号化する
|
|
|
|
実行結果
お目当ての値を取ってこれます
encryptStrings
エラー例
paramerterName
にパラメータストアに存在しない名前を入れた
具体的には頭のS
を削った
|
|
実行結果
見つからないとエラーを返してくれます
Fetch Error ParameterNotFound:
status code: 400, request id: c0055d29-e029-4caf-bd2d-b332fb056932
感想
AWSに暗号化して保存している値を簡単に取り出すことができる
AWS DVAを勉強してパラメータストアを知ったので早速利用している
Fargateで動くコンテナがSQSからメッセージを取りに行く際のSQSのURLを保存したり、
Lambdaでスクレイピングする際のユーザ・パスワードを保存するのに現在利用中
環境変数で渡すよりセキュアで良いかなと
ロールはインラインポリシーでもっと絞れそうだけどリードオンリーで妥協してます