テラフォームaws_ssm_parameter値を非表示にする方法
Aug 25 2020
タイプSecureStringとキー値(pasword = Passwor @ d123)で作成されたSSMパラメーターがあります。プランの出力で値が出力されるデータリソースを使用して値をフェッチしようとしています。
data "aws_ssm_parameter" "foo" {
name = "password"
}
module "lamda_env_vars" {
New_password = data.aws_ssm_parameter.foo.value
}
plan output:-
New_paswword = Password@123
以下のように暗号化してみました。
data "aws_ssm_parameter" "foo" {
name = "password"
with_decryption = false
}
module "lambda_env_vars" {
New_password = data.aws_ssm_parameter.foo.value
}
plan output:-
New_password = Q#iuws##)9ssdhs(some encryptrd value)
ここでの問題は、同じ暗号化されたハッシュコードが私のラムダ関数の値として割り当てられていることです。
テラフォーミング計画中に値をマスクし、ラムダ関数のプレーンテキスト値を取得するにはどうすればよいですか?
回答
1 Marcin Aug 25 2020 at 06:03
通常、SSMのパラメーターの名前をSecretStringenv変数としてラムダ関数に渡すだけです。次に、ラムダ関数はそれ自体をSSMパラメーターストアからフェッチします。
でアプローチを使用する場合with_decryption = false、ラムダ関数はKMS 復号化APIを呼び出して、暗号化されたテキストをプレーンテキストバージョンに実際に復号化する必要があります。
どちらの場合も、関数の実行ロールには、KMSやSSMパラメーターストアへのアクセス許可が必要です。