amazon-web-services - 如何从 secret 管理器中获取私钥?

标签 amazon-web-services terraform terraform-provider-aws aws-secrets-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:

enter image description here

然后我成功使用了如下实例:


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]
  
}

关于amazon-web-services - 如何从 secret 管理器中获取私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63366425/

相关文章:

java - 在 Beanstalk 中使用上下文路径部署 war 的可接受方式

python - 从嵌套的字典 aws 响应中获取键和值

amazon-sqs - 当 DLQ 尚不存在时,如何通过 Terraform 配置 SQS?

amazon-web-services - AWS Route 53 如何实现基于延迟的路由?

google-cloud-platform - 使用 GCP 市场中的 terraform 创建实例

kubernetes - 在 DigitalOcean 上使用 terraform 预部署 Kubernetes 负载均衡器?

kubernetes - 无法从堡垒访问通过 Terraform 进行的 AWS EKS 集群设置

amazon-web-services - Terraform : Error reason: The ARN isn't valid. 有效的 ARN 以 arn: 开头,并包含由冒号或斜杠分隔的其他信息

amazon-route53 - 为什么会出错,在Terraform aws_route53_record中出现 "alias target name does not lie within the target zone"?

node.js - 如何在AWS EC2实例中设置环境变量