如何从秘密管理员那里获取私钥?

时间:2020-08-11 21:10:58

标签: amazon-web-services terraform terraform-provider-aws aws-secrets-manager

我需要在AWS中存储一个私钥。因为当我从AWS创建ec2实例时,我需要使用此主键在预配器“ remote-exec”中进行身份验证。我不想保存在回购AWS中。

在Secret Manager中保存私钥是个好主意吗?然后食用吗?

如果是肯定的话,如何在Secret Manager中保存主键,然后在TF aws_secretsmanager_secret_version中检索?

对于我来说,如果我通过file()进行验证,则可以正常工作,但是如果我通过字符串进行验证,则失败。

connection {
    host = self.private_ip
    type = "ssh"
    user = "ec2-user"
    #private_key = file("${path.module}/key")   <-- Is working
    private_key = jsondecode(data.aws_secretsmanager_secret_version.secret_terraform.secret_string)["ec2_key"]    <-- not working. Error: Failed to read ssh private key: no key found
}

1 个答案:

答案 0 :(得分:1)

我认为原因是由于您如何存储它。我使用自己的沙盒帐户对const list = [ 'h', 'e', 'l', 'l', 'o']; list.map((currElement, index) => { console.log("The current : " + index); console.log("The curre: " + currElement); console.log("\n"); return currElement; //equivalent to list[index] });进行了验证,它可以正常工作。但是,我将其存储为痛苦的文本,而不是json:

enter image description here

然后我成功将其用于实例:

aws_secretsmanager_secret_version