为您的 Linux 实例授权入站流量
您可以采用安全组控制实例的流量,包括可到达您的实例的流量类型。例如,您可以只允许来自您家庭网络的计算机使用 SSH 访问您的实例。如果您的实例为 Web 服务器,那么您可以允许所有 IP 地址通过 HTTP 或 HTTPS 访问您的实例,以便外部用户能够浏览您的 Web 服务器上的内容。
您的默认安全组和新创建的安全组包含不支持您从 Internet 访问实例的默认规则。有关更多信息,请参阅默认安全组和自定义安全组。若要启用对实例的网络访问,您必须允许该实例的入站流量。要为入站流量打开端口,您需要在启动实例时向与实例关联的安全组添加规则。
要连接到您的实例,您必须设置规则以向来自您计算机的公有 IPv4 地址的 SSH 流量授权。要允许来自其他 IP 地址范围的 SSH 流量,请为需要授权的每个范围另外添加规则。
如果您已启用了支持 IPv6 的 VPC 并使用 IPv6 地址启动您的实例,则可以使用其 IPv6 地址而非公有 IPv4 地址连接到您的实例。您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。
如果您需要启用对 Windows 实例的网络访问,请参阅 Amazon EC2 用户指南(适用于 Windows 实例) 中的为 Windows 实例授权入站流量。
在您开始之前
确定谁需要访问您的实例;例如,您信任的单个主机或特定网络 (例如,本地计算机的公有 IPv4 地址)。Amazon EC2 控制台的安全组编辑器可自动为您检测本地计算机的公有 IPv4 地址。此外,您可以在 Internet 浏览器中使用搜索短语“什么是我的 IP 地址”,或使用以下服务:检查 IP
如果使用 0.0.0.0/0
,则允许所有 IPv4 地址使用 SSH 访问您的实例。如果您使用 ::/0
,则所有 IPv6 地址都可以访问您的实例。您应该仅授权特定 IP 地址或特定范围内的 IP 地址访问您的实例。
决定您是否支持使用 EC2 Instance Connect 对实例进行 SSH 访问。如果您将不使用 EC2 Instance Connect,则考虑卸载它或在 IAM policy 中拒绝以下操作:ec2-instance-connect:SendSSHPublicKey
。有关更多信息,请参阅 卸载 EC2 Instance Connect和为 EC2 Instance Connect 配置 IAM 权限。
添加 Linux 实例的入站 SSH 流量规则
安全组用作相关实例的防火墙,可在实例级别控制入站和出站的数据流。您必须向安全组添加可让您使用 SSH 从 IP 地址连接到 Linux 实例的规则。
如果您已启动带有 IPv6 地址的实例并希望使用其 IPv6 地址连接到您的实例,则必须添加允许通过 SSH 的入站 IPv6 流量的规则。
请确保以下命令在您的本地系统中运行,而不是针对实例本身。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2。
使用命令行向安全组添加规则
-
使用以下命令之一找到与您的实例关联的安全组:
-
describe-instance-attribute (Amazon CLI)
aws ec2 describe-instance-attribute --region
region
--instance-idinstance_id
--attribute groupSet -
Get-EC2InstanceAttribute (Amazon Tools for Windows PowerShell)
PS C:\>
(Get-EC2InstanceAttribute -Regionregion
-InstanceIdinstance_id
-Attribute groupSet).Groups
两个命令均返回一个安全组 ID,您将在下一步中使用该 ID。
-
-
使用以下命令之一向安全组添加规则:
-
authorize-security-group-ingress (Amazon CLI)
aws ec2 authorize-security-group-ingress --region
region
--group-idsecurity_group_id
--protocol tcp --port 22 --cidrcidr_ip_range
-
Grant-EC2SecurityGroupIngress (Amazon Tools for Windows PowerShell)
Grant-EC2SecurityGroupIngress
命令需要IpPermission
参数,该参数描述要用于安全组规则的协议、端口范围和 IP 地址范围。以下命令创建IpPermission
参数:PS C:\>
$ip1 = @{ IpProtocol="tcp"; FromPort="22"; ToPort="22"; IpRanges="cidr_ip_range
" }PS C:\>
Grant-EC2SecurityGroupIngress -Regionregion
-GroupIdsecurity_group_id
-IpPermission @($ip1)
-
向实例分配安全组
在启动实例时,您可以向实例分配安全组。在添加或删除规则时,所做的更改将自动应用于已分配安全组的所有实例。
启动实例后,您可以更改其安全组。想要了解更多有关信息,请参阅 Amazon VPC 用户指南中的更改实例的安全组主题。