在 AWS CLI 中创建、配置和删除 Amazon EC2 安全组
您可以为您的 Amazon Elastic Compute Cloud(Amazon EC2)实例创建安全组,安全组本质上用作一个防火墙,具有可确定哪些网络流量可以进入和离开的规则。
使用 AWS Command Line Interface (AWS CLI) 创建一个安全组,向现有安全组添加规则,以及删除安全组。
注意
有关其他命令示例,请参阅 AWS CLI 参考指南
先决条件
要运行 ec2
命令,您需要:
安装和配置 AWS CLI。有关更多信息,请参阅安装或更新最新版本的 AWS CLI 和AWS CLI 身份验证和访问凭证。
-
设置您的 IAM 权限以允许访问 Amazon EC2。有关 Amazon EC2 的 IAM 权限的更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EC2 的 IAM 策略。
创建安全组
您可以创建与虚拟私有云(VPC)关联的安全组。
以下 aws ec2 create-security-group
示例说明如何为指定的 VPC 创建安全组。
$
aws ec2 create-security-group --group-name
my-sg
--description "My security group
" --vpc-idvpc-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 地址将适用于 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 --cidrx.x.x.x/x
以下命令添加另一个规则以对同一安全组中的实例启用 SSH。
$
aws ec2 authorize-security-group-ingress --group-id
sg-903004f8
--protocol tcp --port 22 --cidrx.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 参考:》
其他参考资料:
-
要查看和贡献 AWS 开发工具包和 AWS CLI 代码示例,请参阅 GitHub 上的 AWS 代码示例存储库
。