创建、配置和删除 Amazon EC2 的安全组 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

创建、配置和删除 Amazon EC2 的安全组

您可以为您的 Amazon Elastic Compute Cloud(Amazon EC2)实例创建安全组,安全组本质上用作一个防火墙,具有可确定哪些网络流量可以进入和离开的规则。

使用 Amazon Command Line Interface (Amazon CLI) 创建一个安全组,向现有安全组添加规则,以及删除安全组。

注意

有关其他命令示例,请参阅 Amazon CLI 参考指南

先决条件

要运行 ec2 命令,您需要:

创建安全组

您可以创建与虚拟私有云(VPC)关联的安全组。

以下 aws ec2 create-security-group 示例说明如何为指定的 VPC 创建安全组。

$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d { "GroupId": "sg-903004f8" }

要查看安全组的初始信息,请运行 aws ec2 describe-security-groups 命令。您不能仅通过其 vpc-id 而非其名称引用 EC2-VPC 安全组。

$ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "VpcId": "vpc-1a2b3c4d", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

为您的安全组添加规则

运行 Amazon EC2 实例时,您必须启用安全组中的规则,以便为连接到镜像的方法允许入站网络流量。

例如,如果您要启动 Windows 实例,您通常会添加规则以允许 TCP 端口 3389 (RDP) 上的入站流量,从而支持远程桌面协议 (RDP)。如果您要启动 Linux 实例,则通常会添加规则以允许 TCP 端口 22 上的入站流量,从而支持 SSH 连接。

使用 aws ec2 authorize-security-group-ingress 命令向安全组添加规则。此命令的必需参数是您电脑的公有 IP 地址,或您的电脑连接到的网络(以地址范围形式)(采用 CIDR 表示法)。

以下示例说明如何使用 IP 地址将适用于 RDP 的规则(TCP 端口 3389)添加到 ID 为 sg-903004f8 的 EC2-VPC 安全组。

首先,确定您的 IP 地址。

$ curl https://checkip.amazonaws.com x.x.x.x

然后,您可以运行 aws ec2 authorize-security-group-ingress 命令以将 IP 地址添加到安全组。

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr x.x.x.x/x

以下命令添加另一个规则以对同一安全组中的实例启用 SSH。

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr x.x.x.x/x

要查看对安全组所做的更改,请运行 aws ec2 describe-security-groups 命令。

$ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "x.x.x.x/x" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

删除您的安全组

要删除安全组,请运行 aws ec2 delete-security-group 命令。

注意

如果安全组当前已附加到环境,则无法删除。

以下命令示例删除 EC2-VPC 安全组。

$ aws ec2 delete-security-group --group-id sg-903004f8

参考信息

Amazon CLI 参考:

其他参考资料: