Como ocultar valores de aws_ssm_parameter do terreno

Aug 25 2020

Eu tenho um parâmetro SSM criado com o tipo SecureString e valor-chave como (pasword = Passwor @ d123). Estou tentando buscar o valor usando recursos de dados onde o valor está sendo impresso na saída do plano.

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

Tentei criptografar como abaixo.

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)

Aqui, o problema é que o mesmo código hash criptografado está sendo atribuído como o valor para minha função lambda.

Como mascarar valor durante a terraformação do plano e obter o valor de texto simples para minha função lambda?

Respostas

1 Marcin Aug 25 2020 at 06:03

Geralmente, você apenas passaria o nome do SecretStringparâmetro do SSM como uma variável env para sua função lambda. Em seguida, a função lambda iria buscá-lo no armazenamento de parâmetros SSM.

Se você quiser usar a abordagem com with_decryption = false, sua função lambda terá que chamar a API de descriptografia KMS para realmente descriptografar o texto cifrado em sua versão de texto simples.

Em ambos os casos, a função de execução de sua função precisaria ter permissões para armazenamento de parâmetros KMS e / ou SSM.