【问题标题】:Terraform to provision EC2 managed PEM File (for SSH)用于配置 EC2 托管 PEM 文件的 Terraform(用于 SSH)
【发布时间】:2020-12-31 03:43:50
【问题描述】:

我正在使用 Terraform 来配置 EC2 服务器。在配置 EC2 服务器之前,我想用 terraform 配置 AWS 托管密钥对(PEM 文件),将其下载到我的本地并使用该密钥在未来创建 EC2 实例。

在密钥对的 Terraform 注册表中,我找到了以下代码:

resource "aws_key_pair" "deployer" {
  key_name   = "deployer-key"
  public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 email@example.com"
}

在上面的 Terraform 代码中,它要求我提供公钥。但是,我不想使用自己的公钥。我想从 AWS 控制台预置默认值。

如何预置 AWS 托管密钥对并从 Terraform 代码下载?

【问题讨论】:

  • 与因离题而关闭的问题完全相同。

标签: amazon-web-services amazon-ec2 terraform rsa terraform-provider-aws


【解决方案1】:

您需要的是不支持aws_key_pair 用于向 AWS 注册 现有 新公钥。这意味着您需要在本地拥有相应的私钥。

要登录到您需要私钥的实例。公钥是不够的。如果您还没有它们,您也不能从 AWS 下载它们。 AWS 不存储私钥。只存储公钥。

如果您想让一切都在 terraform 的控制之下,您可以使用 tls_private_key 创建新密钥。但如果您对它的安全问题不满意,您可以使用ssh-keygen 生成一个新的密钥对,就像您通常在不使用 terraform 时所做的那样。

【讨论】:

  • 为什么不在秘密管理器中存储 pub 和私钥?
【解决方案2】:

正如@Marcin 所建议的,您无法下载 AWS 私钥。取而代之的是,您可以在本地创建公钥和私钥并将公钥上传到 AWS。您可以稍后使用本地存储的私钥进行 EC2 登录。
如需参考,请参见此处的代码:https://github.com/dumrauf/openvpn-terraform-install/blob/master/ec2.tf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2017-10-14
    • 2019-07-10
    • 2019-07-15
    • 2018-12-19
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多