如何通过 Terraform 启动没有密钥对的 EC2 实例?

Posted

技术标签:

【中文标题】如何通过 Terraform 启动没有密钥对的 EC2 实例?【英文标题】:How to launch an EC2 instance without key pair via Terraform? 【发布时间】:2020-06-22 06:05:42 【问题描述】:

我想使用我的 Terraform 配置启动一个没有密钥对的 EC2 实例。我在互联网上找不到任何表明 Terraform 中使用“无密钥对”的信息。有人将 Terraform 配置为以这种方式使用吗?

【问题讨论】:

只是不提供key_name 参数?你试过什么?您能否编辑您的问题以显示您编写的 Terraform 代码并解释您遇到的问题? 这是我的问题的解决方案。我尝试在没有密钥对参数的情况下运行我的 EC2 实例 terraform 代码,并且它在没有密钥对的情况下启动了实例。谢谢! 【参考方案1】:

这是一个 Terraform 脚本,它可以在没有密钥的情况下创建 t2.micro 类型的 EC2 实例并输出其 IP 地址。

terraform.tf:

provider "aws" 
  profile = "default"
  region  = "us-west-2"


variable "instance_type" 
 default = "t2.micro"


resource "aws_instance" "ec2_instance" 
 ami = "ami-0d1cd67c26f5fca19"
 instance_type = "var.instance_type"


output "ip" 
 value = "aws_instance.ec2_instance.public_ip"

将它放在一个目录中并使用此命令terraform apply 运行它。 您可以使用terraform plan 进行测试。

注意:不要忘记将您的 access_keysecret_key 添加到您的本地 aws 配置 (aws configure) 以使其正常工作。您还可以使用aws-vault 来避免错误地暴露您的凭据。

【讨论】:

"注意:不要忘记将您的 access_keysecret_key 添加到文件中"。这是一种通过将凭据提交给版本控制来意外暴露凭据的简单方法。最好使用 AWS CLI 的 aws configure 命令设置凭证,或使用 aws-vault 之类的工具安全地获取临时凭证。 github.com/99designs/aws-vault

以上是关于如何通过 Terraform 启动没有密钥对的 EC2 实例?的主要内容,如果未能解决你的问题,请参考以下文章

github中的Jenkinsfile和terraform模块:如何通过密钥进行身份验证?

通过 terraform 创建 IAM 用户并在 S3 存储桶中上传密钥和访问密钥

Azure 磁盘加密 - 通过带有密钥保管库的 Terraform - VmExtensionProvisioningError

为公共指数 e 设置默认值,并将 n 作为密钥对的模数

没有密钥对的SSH aws ec2弹性beantalk

SSH 密钥未受保护的 terraform ansible jenkins