本地 Terraform 存储库,具有假定角色的远程 EC2

本地 Terraform 存储库,具有假定角色的远程 EC2

我当前的设置是:

  • 我的本地机器(实际上每个开发人员一台)
  • 包含我的 Terraform 配置的 git 存储库
  • 一个 EC2 实例,它承担一个 IAM 角色,该角色授予它应用我的 terraform 配置的权限。
  • 此 EC2 实例内的 git repo 的克隆
  • 我通过 SSH 从本地计算机连接到 EC2 实例并运行 terraform

我想将这种情况改变为:

  • EC2 实例上没有 git clone
  • 我的本地机器上没有特定权限
  • 继续使用分配了角色的 EC2 实例来部署 Terraform

是否可以从我的本地计算机运行 terraform,并让 terraform 使用远程 EC2 实例的角色,而无需将文件复制到那里?Terraform 需要使用 SSH 连接到远程 EC2 实例并运行所需的步骤,或者可以使用 ssh 隧道?如有必要,我可以在远程 EC2 实例上设置代理。或者也许这就是 terraform 配置程序的用途?

提前感谢您的回答,并对我缺乏地形知识表示歉意。如果我试图实现的目标很愚蠢,请随时告诉我。(也许每台本地机器上的个人权利更好,更易于审计?)

答案1

您可以在 EC2 机器中使用 sshfs,这样您就可以将本地机器上的文件挂载到 EC2 目录中。这样,您就可以使用存储在本地机器上的文件在远程机器上执行 terraform 命令。

当然,您必须在 EC2 机器上安装 sshfs 并在本地机器上创建用户:

  1. EC2 计算机中的 terraform 用户必须具有与该用户建立 SSH 会话的权限
  2. 该用户必须能够访问配置文件

EC2 机器会将其一个 EC2 目录挂载到您的本地文件存储库上。

如果本地计算机位于 NAT 后面,则可以使用反向 ssh 隧道来允许从 EC2 计算机访问本地计算机。EC2 计算机将使用其一个端口访问客户端。这也可以解决允许来自不同客户端的连接的问题。所有这些客户端都可以通过相同的端口和相同的用户访问

相关内容