テラフォーム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パラメーターストアへのアクセス許可が必要です。