关注我带你了解科技领域最新的技术与产品
本博客文章将探讨Amazon EC2实例连接终端的功能、优势以及如何利用它进行安全的远程访问EC2实例。
在云计算领域,亚马逊网络服务(Amazon Web Services,AWS)的EC2实例以其可扩展性、灵活性和可靠性而广受欢迎。管理这些实例通常需要远程访问,用于管理任务、调试或故障排除。为了解决传统堡垒主机和安全密钥管理带来的安全问题,AWS最近推出了Amazon EC2实例连接终端点服务。在本博客文章中,我们将深入探讨Amazon EC2实例连接终端点的详细信息、特点、优势以及如何利用它在不使用公共IP的情况下实现对EC2实例的安全远程访问。
为什么选择实例连接终端点?Amazon EC2实例连接终端点是AWS提供的一项服务,它彻底改变了对EC2实例进行SSH访问的方式。在传统上,管理对AWS EC2服务器的SSH访问需要使用堡垒主机和实例的公共IP等解决方案。然而,EC2实例连接简化了这个过程,通过利用AWS身份和访问管理(IAM)策略,为EC2实例授予临时的、有时间限制的访问权限。
以前,即使使用EC2实例连接,连接实例仍然需要公共IP。然而,AWS最近推出了一项突破性的功能,称为实例连接终端点服务。使用这项服务,您不再需要在实例上使用公共IP。相反,您可以直接通过AWS控制台或命令行从本地计算机安全地连接到实例。
关键特点和优势无需使用公共IP连接EC2实例,您的VPC不需要互联网网关。访问控制由安全组和身份和访问管理的组合实现。在CloudTrail中记录所有连接。工作原理EC2实例连接(EIC)终端点是一个包含身份感知的TCP代理。它有两种工作模式。
第一种模式利用AWS CLI客户端使用您的AWS身份和访问管理(IAM)凭据在您的工作站和EIC终端点之间创建安全的WebSocket隧道。一旦隧道建立,您可以将首选的客户端指向环回地址(127.0.0.1或localhost),像往常一样连接到所需的资源。
第二种模式是当不使用AWS CLI时,AWS管理控制台提供了一种安全、无缝的访问体验,用于访问您的虚拟私有云(VPC)中的资源。在流量到达VPC之前,会对身份验证和授权过程进行评估。
EIC(EC2实例连接)终端点
EIC终端点配置我假设您在AWS上具有足够的权限来配置EC2实例连接终端点。
- 创建EIC终端点 转到VPC服务中的终端点选项,并创建一个新的终端点。
创建新的终端点
- 为用户提供连接EIC终端点的权限 根据您的IP和终端点详细信息准备自定义策略,并将其分配给想要连接到EC2实例的用户。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "EC2InstanceConnect",
"Action": "ec2-instance-connect:OpenTunnel",
"Effect": "Allow",
"Resource": "arn:aws:ec2:ap-southeast-2:11111111111:instance-connect-endpoint/eice-123456789abcdef",
"Condition": {
"NumericEquals": {
"ec2-instance-connect:remotePort": "22"
},
"IpAddress": {
"ec2-instance-connect:privateIpAddress": "10.0.0.0/16"
},
"NumericLessThanEquals": {
"ec2-instance-connect:maxTunnelDuration": "60"
}
}
},
{
"Sid": "Describe",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeInstanceConnectEndpoints"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
- 安全组的网络访问 您需要管理两个安全组:
EIC终端点安全组:您只需为EIC终端点安全组配置一个出站规则,确保EIC终端点连接到AWS中的特定私有IP范围。
实例安全组:您需要配置EC2实例安全组,以允许来自EIC终端点的流量。最好的方法是在实例安全组规则中允许EIC终端点安全组ID。
从控制台连接EC2服务器通过导航到此处打开Amazon EC2控制台。在导航窗格中,点击“实例”以查看您的实例。选择要连接的实例。点击位于控制台顶部的“连接”按钮。在连接选项中,选择“EC2实例连接终端点”以使用基于浏览器的客户端。将打开一个新的浏览器标签或窗口,显示EC2实例连接终端点界面。如果提示,请输入用户名、最大隧道持续时间和终端点。连接建立后,您将能够使用基于浏览器的客户端与实例进行交互。按照这些步骤,您可以使用Amazon EC2控制台连接到实例,并利用EC2实例连接实现无缝安全的连接体验。
从命令行界面(CLI)连接EC2服务器:启用对实例的连接涉及使用AWS CLI的open-tunnel命令启动一个监听模式,用于新的TCP连接。然后,您可以使用SSH建立额外的TCP连接,并创建到实例的私有隧道。以下是操作步骤:
创建隧道:
Shell1aws ec2-instance-connect open-tunnel --instance-id i-094ce4206fa296979 --local-port 88882
在另一个终端窗口中,使用私钥连接实例:
Shell1ssh -i eic-key.pem ec2-user@localhost -p 8888
要在没有公共IPv4地址或公共DNS名称的Windows实例上进行连接,可以使用通过EC2实例连接终端点的远程桌面协议(RDP)。这个功能允许您安全地建立与实例的RDP连接。以下是操作步骤:
创建隧道:
Shell1aws ec2-instance-connect open-tunnel --instance-id i-00518ad1164dfd6f6 --local-port 3389 --remote-port 3389
使用RDP客户端连接Windows服务器。
使用RDP客户端连接Windows服务器。
终端点的限制不支持使用IPv6地址连接实例的EC2实例连接终端点。对于启用了客户端IP保留的连接,被连接的实例必须位于与EC2实例连接终端点相同的虚拟私有云(VPC)中。请注意,在流量通过AWS Transit Gateway路由时,不支持客户端IP保留。请注意,某些实例类型不支持客户端IP保留,包括C1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3和T1。结论AWS提供了各种连接实例的方法,包括SSH、RDP、AWS Systems Manager会话管理器、EC2实例连接和终端点、堡垒主机和VPN。选择使用哪种方法取决于操作系统、安全要求、网络配置和个人偏好。通过利用这些连接方法,您可以根据特定的用例和需求安全地访问和管理AWS实例。