Comment masquer les valeurs de terraform aws_ssm_parameter
J'ai un paramètre SSM créé avec le type SecureString et la valeur-clé comme (pasword = Passwor @ d123). J'essaie de récupérer la valeur en utilisant des ressources de données où la valeur est imprimée dans la sortie du plan.
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
J'ai essayé le cryptage comme ci-dessous.
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)
Ici, le problème est que le même code de hachage chiffré est attribué comme valeur pour ma fonction lambda.
Comment masquer la valeur lors de la terraformation du plan et obtenir la valeur de texte brut pour ma fonction lambda?
Réponses
En général, vous passez simplement le nom du SecretStringparamètre du SSM en tant que variable env à votre fonction lambda. Ensuite, la fonction lambda le chercherait elle-même dans le magasin de paramètres SSM.
Si vous souhaitez utiliser l'approche avec with_decryption = false, votre fonction lambda devra appeler l' API de déchiffrement KMS pour déchiffrer réellement le texte chiffré dans sa version texte brut.
Dans les deux cas, le rôle d'exécution de votre fonction doit disposer d'autorisations sur KMS et / ou SSM Parameter Store.