使用安全组 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用安全组

在启动实例时,您可以向实例分配安全组。在添加或删除规则时,所做的更改将自动应用于已分配安全组的所有实例。有关更多信息,请参阅向实例分配安全组

启动实例后,您可以更改其安全组。有关更多信息,请参阅更改实例的安全组

您可以使用 Amazon EC2 控制台和命令行工具创建、查看、更新和删除安全组及安全组规则。

创建安全组

尽管您可以为实例指定默认安全组,您可能仍希望创建自己的安全组,以反映实例在您的系统中扮演的不同角色。

在默认情况下,新安全组起初只有一条出站规则,即允许所有通信离开实例。您必须添加规则,以便允许任何入站数据流或限制出站数据流。

安全组只能在为其创建该组的 VPC 中使用。

Console
创建安全组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择安全组

  3. 选择Create security group(创建安全组)。

  4. Basic details (基本详细信息) 部分中,执行以下操作。

    1. 输入安全组的描述性名称和简要说明。创建安全组后,无法对其进行编辑。名称和描述的长度最多为 255 个字符。允许的字符包括 a-z、A-Z、0-9、空格和 ._-:/()#,@[]+=&;{}!$*。

    2. 对于 VPC,请选择 VPC。

  5. 您可以现在添加安全组规则,也可以稍后再添加。有关更多信息,请参阅向安全组添加规则

  6. 您可以现在添加标签,也可以稍后再添加。要添加标签,请选择 Add new tag(添加新标签),然后输入标签键和值。

  7. 选择Create security group(创建安全组)。

Command line
创建安全组

使用以下命令之一:

复制安全组

您可以通过创建现有安全组的副本来创建新安全组。复制安全组时,将使用与原始安全组相同的入站和出站规则创建副本。如果原始安全组位于 VPC 中,则除非您指定不同的安全组,否则将在相同 VPC 中创建副本。

副本会收到一个新的唯一安全组 ID,您必须为其指定名称。您还可以添加描述。

您无法将安全组从一个区域复制到另一区域。

您可以使用 Amazon EC2 控制台创建安全组副本。

复制安全组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组)

  3. 选择要复制的安全组,然后选择 Actions (操作)Copy to new security group (复制到新安全组)

  4. 指定名称和可选描述,并根据需要更改 VPC 和安全组规则。

  5. 选择创建

查看安全组

您可以使用以下方法之一查看有关安全组的信息。

Console
查看安全组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups(安全组)。

  3. 此时将列出您的安全组。要查看特定安全组的详细信息,包括其入站和出站规则,请在安全组 ID 列中选择其 ID。

Command line
查看安全组

使用以下命令之一。

Amazon EC2 Global View

您可以使用 Amazon EC2 全局视图查看启用 Amazon 账户的所有区域中的安全组。有关更多信息,请参阅 Amazon EC2 全局视图

向安全组添加规则

当您向安全组添加规则时,这一新规则会自动应用于与该安全组关联的任何实例。应用规则可能会有短暂的延迟。有关更多信息,请参阅针对不同使用案例的安全组规则安全组规则

Console
在安全组中添加入站规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组)

  3. 选择安全组,选择 Actions (操作),然后选择 Edit inbound rules (编辑入站规则)

  4. 对于每一条规则,选择 Add rule(添加规则),然后执行以下操作:

    1. 对于Type(类型),选择要允许的协议类型。

      • 对于自定义 TCP自定义 UDP,您必须输入允许的端口范围。例如,0-99

      • 对于自定义 ICMP,必须从协议中选择 ICMP 类型。端口范围已为您配置。例如,要允许ping命令中,从协议选择Echo 请求

      • 对于任何其他类型,则会为您配置协议和端口范围。

    2. 对于 Source (源),请执行以下操作之一以允许流量通信。

      • 选择 Custom(自定义),然后以 CIDR 表示法输入 IP 地址、CIDR 块、其他安全组或前缀列表。

      • 选择 Anywhere (任何位置) 以允许指定协议的所有流量到达您的实例。此选项将自动添加 0.0.0.0/0 IPv4 CIDR 块作为源。如果您的安全组位于启用 IPv6 的 VPC 中,则此选项会自动为 ::/0 IPv6 CIDR 块添加规则。

        警告

        如果您选择 Anywhere(任意位置),则允许所有 IPv4 和 IPv6 地址使用指定协议访问您的实例。如果您要为端口 22(SSH)或 3389(RDP)添加规则,则应该仅授权特定 IP 地址或特定范围内的 IP 地址访问您的实例。

      • 选择我的 IP 以仅允许来自本地计算机的公有 IPv4 地址的入站流量。

    3. 对于 Description (描述),您可以选择指定规则的简单描述。

  5. 选择 Preview changes (预览更改),然后选择 Save rules (保存规则)

在安全组中添加出站规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组)

  3. 选择安全组,然后选择 Actions (操作)Edit outboud rules (编辑出站规则)

  4. 对于每一条规则,选择 Add rule(添加规则),然后执行以下操作:

    1. 对于Type(类型),选择要允许的协议类型。

      • 对于自定义 TCP自定义 UDP,您必须输入允许的端口范围。例如,0-99

      • 对于自定义 ICMP,必须从协议中选择 ICMP 类型。端口范围已为您配置。

      • 对于任何其他类型,则会自动配置协议和端口范围。

    2. 对于目标,执行以下操作之一。

      • 选择自定义,然后以 CIDR 表示法输入 IP 地址、CIDR 块、其他安全组或允许出站流量的前缀列表。

      • 选择任意位置以允许传送到所有 IP 地址的出站流量。此选项将自动添加 0.0.0.0/0 IPv4 CIDR 块作为目标。

        如果您的安全组位于启用 IPv6 的 VPC 中,则此选项会自动为 ::/0 IPv6 CIDR 块添加规则。

      • 选择我的 IP 以仅允许流向本地计算机的公有 IPv4 地址的出站流量。

    3. (可选)对于 Description (描述),请指定规则的简单描述。

  5. 选择 Preview changes (预览更改)Confirm (确认)

Command line
向安全组添加规则

使用以下命令之一。

向安全组添加一个或多个传出规则

使用以下命令之一。

更新安全组规则

您可以使用以下方法之一更新安全组规则。更新的规则将自动应用于与安全组关联的任何实例。

Console

使用控制台修改现有安全组规则的协议、端口范围或者源或目标时,控制台会删除现有规则并为您添加新规则。

更新安全组规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups(安全组)。

  3. 选择安全组。

  4. 选择 Actions(操作)、Edit inbound rules(编辑入站规则)以更新入站流量的规则,或选择 Actions(操作)、Edit outbound rules(编辑出站规则)以更新出站流量的规则。

  5. 根据需要更新规则。

  6. 选择 Preview changes (预览更改)Confirm (确认)

为安全组规则添加标签
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups(安全组)。

  3. 选择安全组。

  4. Inbound rules(入站规则)或 Outbound rules(出站规则)选项卡上,选中规则的复选框,然后选择 Manage tags(管理标签)。

  5. Manage tags(管理标签)页面显示分配给规则的所有标签。要添加标签,请选择 Add tag(添加标签),然后输入标签键和值。要删除标签,请选择要删除的标签旁边的 Remove(删除)。

  6. 选择 Save changes(保存更改)

Command line

您无法使用 Amazon EC2 API 或命令行工具更新现有规则的协议、端口范围或者源或目标。相反,您必须删除该现有规则并添加新规则。不过,您可以更新现有规则的描述。

更新规则

使用以下命令之一。

更新现有入站规则的描述

使用以下命令之一。

更新现有出站规则的描述

使用以下命令之一。

为安全组规则添加标签

使用以下命令之一。

从安全组中删除规则

当您从安全组中删除规则时,此更改会自动应用于与该安全组关联的任何实例。

您可以使用以下方法之一从安全组中删除规则。

Console
删除安全组规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组)

  3. 选择要更新的安全组,选择 Actionis (操作),然后选择 Edit inbound rules (编辑入站规则) 以删除入站规则,或选择 Edit outbound rules (编辑出站规则) 以删除出站规则。

  4. 选择要删除的规则右侧的 Delete(删除)按钮。

  5. 选择保存规则。或者选择预览更改,查看您的更改,然后选择确认

Command line
从安全组中删除一个或多个传入规则

使用以下命令之一。

从安全组中删除一个或多个传出规则

使用以下命令之一。

删除安全组

您不能删除与实例关联的安全组。您不能删除默认安全组。您不能删除由同一 VPC 中其他安全组中的规则引用的安全组。如果您的安全组由自己的一个规则引用,则必须先删除该规则,然后才能删除安全组。

Console
删除安全组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组)

  3. 选择安全组,然后依次选择操作删除安全组

  4. 当系统提示进行确认时,选择 Delete(删除)

Command line
删除安全组

使用以下命令之一。

向实例分配安全组

启动实例时,您可以将一个或多个安全组分配给实例。您还可以在启动模板中指定一个或多个安全组。安全组将分配给使用启动模板启动的所有实例。

更改实例的安全组

启动实例后,您可以通过添加或删除安全组来更改其安全组。

要求
  • 实例必须处于 runningstopped 状态。

  • 安全组特定于 VPC。您可以将一个安全组分配给在您为其创建安全组的 VPC 中启动的一个或多个实例。

Console
更改实例的安全组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择您的实例,依次选择 Actions(操作)、Security(安全)和 Change security groups(更改安全组)。

  4. 对于 Associated security groups (关联的安全组),从列表中选择一个安全组,然后选择 Add security group (添加安全组)

    要删除已关联的安全组,请为该安全组选择 Remove (删除)

  5. 选择保存

Command line
更改实例的安全组

使用以下命令之一。