创建、配置和删除 Amazon EC2 的安全组 - AWS Command Line Interface

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

使用 AWS Command Line Interface (AWS 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 表示法)。

注意

我们提供以下服务 https://checkip.amazonaws.com/,使您可以确定您的公有 IP 地址。要查找可以帮助您识别 IP 地址的其他服务,请使用您的浏览器搜索“what is my IP address”。如果您使用动态 IP 地址通过 ISP 或从防火墙后面进行连接(通过私有网络的 NAT 网关),则您的地址可能会定期更改。在这种情况下,您必须找到客户端电脑使用的 IP 地址的范围。

以下示例说明如何使用 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

参考信息

AWS CLI 参考:

其他参考资料: