在私有子网上启动的Amazon EC2上安全访问Web界面

我已经看到如何通过NAT服务器在VPC私有子网中通过SSH连接到ec2实例,并能够通过具有公共IP的NAT实例在私有子网中的EC2中进行SSH连接。

假设我想在私有子网的EC2实例中安装带有Zeppelin或Jupyter等Web界面的应用程序,我将如何configuration安全访问并通过我的笔记本电脑中的浏览器连接到Web服务? 我对这个领域相当陌生,那么采取什么正确的方法来实现呢?

你可以使用ssh和端口转发。

假设您的EC2实例的私有IP为10.1.1.1,并且Web接口在80端口侦听,您的NAT主机具有公有IP 198.51.100.13,则可以链接两个连续的转发:

从你的笔记本电脑

ssh -L 8080:127.0.0.1:8080 [email protected]

从NAT主机中新打开的shell:

ssh -L 8080:10.1.1.1:80 [email protected] 

现在,您可以在笔记本电脑上打开浏览器,并将其指向:

 http://127.0.0.1:8080 

其实你可以configuration你的SSH客户端,如自动使用中间框。 在您的笔记本电脑上,打开~/.ssh/config并在10.1.1.1时告诉ssh通过NAT盒子:

 Host 10.1.1.1 ProxyCommand ssh -W %h:%p YOUR_NAT_HOSTS_IP 

现在你可以直接从你的笔记本电脑上ssh了,ssh会首先透明地打开一个到NAT的连接,然后把你转到EC2实例。