小编BBM*_*BBM的帖子

使用 Terraform 将文件传递到新创建的 ec2 实例,而不在“连接”部分共享私钥

我的设置是:Terraform --> AWS ec2

使用 Terraform 创建具有 SSH 访问权限的 ec2 实例。

resource "aws_instance" "inst1" {
  instance_type = "t2.micro"
  ami           = data.aws_ami.ubuntu.id
  key_name      = "aws_key"
  subnet_id     = ...
  user_data     = file("./deploy/templates/user-data.sh")

  vpc_security_group_ids = [
    ... ,
  ]
  provisioner "file" {
    source      = "./deploy/templates/ec2-caller.sh"
    destination = "/home/ubuntu/ec2-caller.sh"
  }

  provisioner "remote-exec" {
    inline = [
      "chmod +x /home/ubuntu/ec2-caller.sh",      
    ]
  }

  connection {
    type        = "ssh"
    host        = self.public_ip
    user        = "ubuntu"
    private_key = file("./keys/aws_key_enc")
    timeout     = "4m"
  }
}

Run Code Online (Sandbox Code Playgroud)

上述位有效,我可以看到配置程序复制并执行“ec2-caller.sh”。我不想将我的私钥以明文形式传递给 Terraform 配置程序。无论如何,我们是否可以在不使用配置程序或不将私钥传递给配置程序的情况下将文件复制到新创建的 …

amazon-ec2 amazon-web-services terraform terraform-provider-aws

3
推荐指数
1
解决办法
3025
查看次数