如何从秘密管理器中获取私钥?
How to get private key from secret manager?
我需要在 AWS 中存储私钥。因为当我从 AWS 创建一个 ec2 实例时,我需要使用这个主键在配置程序“remote-exec”中进行身份验证。我不想保存在 repo AWS 中。
在 Secret Manager 中保存私钥是个好主意吗?然后消费?
在肯定的情况下,如何将主键保存在 Secret Manager 中,然后在 TF 中检索 aws_secretsmanager_secret_version?
就我而言,如果我从文件 () 进行验证,它可以正常工作,但如果我从字符串进行验证,则会失败。
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
}
我认为原因在于你如何储存它。我 验证 使用我自己的沙箱帐户 aws_secretsmanager_secret_version
并且它有效。但是,我将其存储为痛苦文本,而不是 json:
然后我成功使用如下实例:
resource "aws_instance" "public" {
ami = "ami-02354e95b39ca8dec"
instance_type = "t2.micro"
key_name = "key-pair-name"
security_groups = [aws_security_group.ec2_sg.name]
provisioner "remote-exec" {
connection {
type = "ssh"
user = "ec2-user"
private_key = data.aws_secretsmanager_secret_version.example.secret_string
host = "${self.public_ip}"
}
inline = [
"ls -la"
]
}
depends_on = [aws_key_pair.key]
}
我需要在 AWS 中存储私钥。因为当我从 AWS 创建一个 ec2 实例时,我需要使用这个主键在配置程序“remote-exec”中进行身份验证。我不想保存在 repo AWS 中。
在 Secret Manager 中保存私钥是个好主意吗?然后消费?
在肯定的情况下,如何将主键保存在 Secret Manager 中,然后在 TF 中检索 aws_secretsmanager_secret_version?
就我而言,如果我从文件 () 进行验证,它可以正常工作,但如果我从字符串进行验证,则会失败。
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
}
我认为原因在于你如何储存它。我 验证 使用我自己的沙箱帐户 aws_secretsmanager_secret_version
并且它有效。但是,我将其存储为痛苦文本,而不是 json:
然后我成功使用如下实例:
resource "aws_instance" "public" {
ami = "ami-02354e95b39ca8dec"
instance_type = "t2.micro"
key_name = "key-pair-name"
security_groups = [aws_security_group.ec2_sg.name]
provisioner "remote-exec" {
connection {
type = "ssh"
user = "ec2-user"
private_key = data.aws_secretsmanager_secret_version.example.secret_string
host = "${self.public_ip}"
}
inline = [
"ls -la"
]
}
depends_on = [aws_key_pair.key]
}