为您的 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 实例的规则。
在安全组中为通过 IPv4 的入站 SSH 流量添加规则(控制台)
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从顶部的导航栏中选择安全组的区域。安全组特定于区域,因此您应选择您创建实例的区域。
-
在导航窗格中,选择实例。
-
选择您的实例,然后在屏幕下半部分选择 Security (安全) 选项卡。Security groups (安全组) 列出了与实例关联的安全组。Inbound rules (入站规则) 显示对实例生效的入站规则列表。
-
对于要添加新规则的安全组,请选择安全组 ID 链接以打开安全组。
-
在 Inbound Rules (入站规则) 选项卡上,选择 Edit inbound rules (编辑入站规则)。
-
在 Edit inbound rules (编辑入站规则) 页面上,执行以下操作:
-
选择 Add rule (添加规则)。
-
对于 Type (类型),请选择 SSH。
-
对于 Source(源),选择 My IP(我的 IP)以便使用本地计算机的公有 IPv4 地址自动填充该字段。
或者,对于 Source(源),选择 Custom(自定义)并使用 CIDR 表示法输入计算机的公有 IPv4 地址或网络。例如,如果您的 IPv4 地址为
203.0.113.25
,请输入203.0.113.25/32
,以使用 CIDR 表示法列出此单个 IPv4 地址。如果您的公司要分配同一范围内的地址,请输入整个范围,例如203.0.113.0/24
。有关查找 IP 地址的信息,请参阅在您开始之前。
-
选择保存规则。
-
如果您已启动带有 IPv6 地址的实例并希望使用其 IPv6 地址连接到您的实例,则必须添加允许通过 SSH 的入站 IPv6 流量的规则。
在安全组中为通过 IPv6 的入站 SSH 流量添加规则(控制台)
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从顶部的导航栏中选择安全组的区域。安全组特定于区域,因此您应选择您创建实例的区域。
-
在导航窗格中,选择实例。
-
选择您的实例,然后在屏幕下半部分选择 Security (安全) 选项卡。Security groups (安全组) 列出了与实例关联的安全组。Inbound rules (入站规则) 显示对实例生效的入站规则列表。
-
对于要添加新规则的安全组,请选择安全组 ID 链接以打开安全组。
-
在 Inbound Rules (入站规则) 选项卡上,选择 Edit inbound rules (编辑入站规则)。
-
在 Edit inbound rules (编辑入站规则) 页面上,执行以下操作:
-
选择 Add rule (添加规则)。
-
对于 Type (类型),选择 SSH。
-
对于 Source(源),选择 Custom(自定义),并使用 CIDR 表示法为您的计算机输入 IPv6 地址。例如,如果您的 IPv6 地址为
2001:db8:1234:1a00:9691:9503:25ad:1761
,请输入2001:db8:1234:1a00:9691:9503:25ad:1761/128
,以使用 CIDR 表示法列出单个 IP 地址。如果您的公司要分配同一范围内的地址,请输入整个范围,例如2001:db8:1234:1a00::/64
。 -
选择保存规则。
-
注意
请确保以下命令在您的本地系统中运行,而不是针对实例本身。有关这些命令行界面的更多信息,请参阅 访问 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)
-
向实例分配安全组
在启动实例时,您可以向实例分配安全组。在添加或删除规则时,所做的更改将自动应用于已分配安全组的所有实例。
启动实例后,您可以更改其安全组。有关更多信息,请参阅 更改实例的安全组。