我当前的设置是:
- 我的本地机器(实际上每个开发人员一台)
- 包含我的 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 并在本地机器上创建用户:
- EC2 计算机中的 terraform 用户必须具有与该用户建立 SSH 会话的权限
- 该用户必须能够访问配置文件
EC2 机器会将其一个 EC2 目录挂载到您的本地文件存储库上。
如果本地计算机位于 NAT 后面,则可以使用反向 ssh 隧道来允许从 EC2 计算机访问本地计算机。EC2 计算机将使用其一个端口访问客户端。这也可以解决允许来自不同客户端的连接的问题。所有这些客户端都可以通过相同的端口和相同的用户访问