通过 SSH 连接到位于 VPC 私有子网中的 AWS EC2 实例

2023-12-22

我已经研究这个问题几个小时了,也许这是不可能的,也许是不可能的。

我在 AWS 中有一个 VPC,带有几个 EC2 实例和 Lambda 实例。

截至目前,lambda 可以毫无问题地调用、ssh 等连接 EC2 服务器。

我的 lambda 在“出站”中使用仅包含 HTTP、HTTPS 和 SSH 的安全组。

我的 ec2 默认安全组仅接受 22 个入站(来自我的 Lambda 安全组和我的办公室 IP)。

如果我在公有子网上创建一个 ec2 实例,我和我的 lambda 函数都可以通过 ssh 访问它。

如果我在我的私有子网上创建它,我的 lambda 可以 ssh 但我不能...

我真的必须拥有 NAT 服务器才能实现此目的吗?

TL:博士;只有我的办公室和我的 lambda 可以访问我的 ec2 实例。


通过 SSH 访问 EC2 实例时要考虑的第一个选项是EC2 实例连接 https://aws.amazon.com/blogs/compute/new-using-amazon-ec2-instance-connect-for-ssh-access-to-your-ec2-instances/它允许您使用 IAM 控制对 EC2 实例的访问,并提供从 AWS 控制台或常规命令行 SSH 工具的访问。

第二个选项是用于对 EC2 实例进行 Shell 访问的 AWS Systems Manager 会话管理器 https://aws.amazon.com/blogs/aws/new-session-manager/。您基本上在浏览器中运行 SSH 会话,它可以针对所有 EC2 实例,无论公共/私有 IP 或子网如何。 EC2 实例必须运行最新版本的 SSM 代理,并且必须使用适当的 IAM 角色(包括 AmazonEC2RoleForSSM 中的关键策略)启动。无需允许入站端口 22 的堡垒主机或防火墙规则。

要考虑的第三个选项是AWS Systems Manager 运行命令 https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html它允许您在 EC2 实例上远程运行命令。它不像 SSH 那样是交互式的,但如果您只是想运行一系列脚本,那么它非常好。同样,实例必须运行 SSM 代理并具有适当的 IAM 策略,并且此选项避免了通过堡垒主机建立隧道的需要。

最后,如果您确实必须从办公室笔记本电脑通过 SSH 连接到私有子网中的 EC2 实例,则可以通过堡垒主机来实现。你需要一些东西:

  1. VPC 中的 IGW 和 NAT
  2. VPC 公有子网中具有公有 IP 的堡垒主机
  3. 堡垒上的安全组允许从您的笔记本电脑进行入站 SSH
  4. 从私有子网到 NAT 的默认路由
  5. 私有 EC2 实例上允许来自堡垒的入站 SSH 的安全组

然后你必须通过堡垒主机建立隧道。看安全连接到在私有 Amazon VPC 中运行的 Linux 实例 https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/了解更多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 SSH 连接到位于 VPC 私有子网中的 AWS EC2 实例 的相关文章

随机推荐

  • 在 rmarkdown 中创建模板

    我正在尝试创建自定义模板 但它不会显示 我已经尝试跟随https bookdown org yihui rmarkdown template struct html https bookdown org yihui rmarkdown te
  • Power Query 为空时上移值

    目前 我在 Excel 中有一个大表 我想将其与动态下拉列表 级联选项 一起使用 根据您在第一个下拉菜单中所做的选择 然后在下一个单元格中 您应该有一个经过筛选的下拉菜单 此外 任何选项对于所选的主类别都是唯一的 我做的第一件事是获取我需要
  • fsock:无法找到套接字传输“http”

    我想用 fsock 发送后变量 但是当我尝试这个时 post arr array a gt b addr http 1 2 3 4 confirmation html fp fsockopen addr 80 errno errstr 30
  • 使用 CloudFormation 添加对 AWS websocket API 的集成响应

    AWS recently released Cloudformation support for templating websocket API gateways https aws amazon com about aws whats
  • JFreechart 中漂亮的饼图

    是否有可能在 JFreechart 中为饼图获得复杂 漂亮的颜色 我的意思是我怎样才能获得如图所示的颜色link http upload wikimedia org wikipedia commons b bf Ml wiki photo
  • SVG 错误:访问属性“someFunction”的权限被拒绝

    请看一下这个小提琴 http jsfiddle net arasbm Tyxea 14 http jsfiddle net arasbm Tyxea 14 正如你所看到的 我想在 SVG 元素上触发事件时对其进行转换 您可以单击箭头 它应该
  • 复制二进制文件的内容

    我正在设计一个图像解码器 作为第一步 我尝试复制使用 c 即打开文件 并将其内容写入新文件 下面是我使用的代码 while c getc fp EOF fprintf fp1 c c 其中 fp 是源文件 fp1 是目标文件 程序执行时没有
  • 字母数字和 + 字符的正则表达式

    我需要一个仅允许字母数字加上 和 字符的正则表达式 现在我正在使用 w 以下模式将匹配仅包含字母 数字 或 的字符串 包括 或 等国际字符 并且不包括 中包含的 字符 w p L p N 例子 string pattern p L p N
  • Azure AD 的访问令牌颁发者是 sts.windows.net 而不是 login.microsoftonline.com

    我正在尝试验证从 azure Active Directory 获取的访问令牌 我从以下位置获得了令牌https login microsoftonline com my tennant guid v2 0 返回的令牌中的发行者是https
  • 应用程序引擎 + 模块 + Maven 的开发工作流程

    我们最近将我们的应用程序引擎项目按照以下结构转换为模块 这个新的开发工作流程的问题是 我们必须在每次更改时重建 EAR 并重新启动应用程序引擎本地开发服务器 这使得每次我们更改代码并想要测试它时 我们都会浪费 30 秒到一分钟的时间 com
  • PorterDuffXfermode DST_IN 未按预期工作

    因此 我试图加快我们正在做的一些绘制 使用 alpha 透明度绘制弧的一部分 并尝试将整个弧缓存到单独的位图中 并使用 alpha 遮罩有选择地显示它 根据我所做的研究 Android 的 Xfermodes API 演示 这个例子 htt
  • Swagger UI 将身份验证令牌传递给标头中的 API 调用

    我是 Swagger 的新手 我正在使用 Swagger UI 生成 swagger 文档 我有两个 API 调用 第一个调用是根据用户名和密码生成令牌 第二次调用需要第一次调用生成的令牌 如何使用 Swagger UI 设置第二次调用的令
  • 如何创建 AvalonEdit 语法文件 (.xshd) 并将其嵌入到我的程序集中?

    我正在尝试为 AvalonEdit 定义一些自定义突出显示规则 似乎没有任何相关文档 有有关文件格式的一些文档 http www codeproject com KB edit AvalonEdit aspx 但没有介绍创建定义后如何实际加
  • 创建增量按钮,如果边距大于 2800 像素,该按钮将关闭

    我正在制作一个滑块 并且正在尝试弄清楚如何专门对按钮进行编程 我希望它在单击时以 700 像素的增量向左移动 但是一旦 marginLeft 大于 2800 像素 因为单击时它不会执行任何操作 现在我有以增量移动容器的部分 但我不确定如何制
  • pyspark - 合并 2 列集合

    我有一个 Spark 数据框 它有 2 列由函数collect set 形成 我想将这两列集合合并为一列集合 我应该怎样做呢 它们都是一组字符串 例如 我有两列是通过调用collect set形成的 Fruits Meat Apple Or
  • 如何用正确的行数填充表格以适应不同屏幕分辨率下的页面高度?

    我在前端开发了自己的网络管理 这是一个典型的 Admin 其中包含容器 左侧的一个菜单导航和右侧的正文内容 其中显示与单击的菜单项相关的结果 通常是表格 为了以 100 适合正文页面 获得表格中正确的行数或行数的最佳方法是什么 就我而言 我
  • 如何使用 Azure DevOps REST API 更新文件?

    我正在尝试更新test json文件托管在 Azure DevOps Repo 上 我正在使用逻辑应用程序 无法从文档中识别操作顺序 我想我需要 向以下地址发出 GET HTTP 请求Items端点 https learn microsof
  • PhpStorm 终端:Cygwin 颜色不起作用

    我有 PhpStorm 2016 2 并在 Shell 路径中添加了 Cygwin 如下所示 C cygwin64 bin env exe CHERE INVOKING 1 bin bash exe 它运行良好 但颜色不起作用 例如我有 3
  • EntityNotFoundException:Bean 已被删除 - 延迟加载失败

    我正在迈出 Play 的第一步 使用 Java 的框架 v2 1 rc1 现在我遇到了 ebean 的第一个问题 我有一个与其自身具有多对一关系的导航实体 当我尝试访问parentNavigation中的标题字段时 我收到以下错误 Enti
  • 通过 SSH 连接到位于 VPC 私有子网中的 AWS EC2 实例

    我已经研究这个问题几个小时了 也许这是不可能的 也许是不可能的 我在 AWS 中有一个 VPC 带有几个 EC2 实例和 Lambda 实例 截至目前 lambda 可以毫无问题地调用 ssh 等连接 EC2 服务器 我的 lambda 在