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

创建、配置和删除 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 参考:

其他参考资料: