安全组是 AWS 中用于管理入站和出站网络流量的虚拟防火墙。安全组规则控制着安全组中允许或拒绝的流量的进出。其中,出站规则可以帮助你控制安全组内的 EC2 实例能够访问哪些目标。下面是一个使用 Python SDK 创建安全组及其出站规则的示例代码:
import boto3
# 创建安全组
ec2 = boto3.client('ec2')
response = ec2.create_security_group(GroupName='my-security-group', Description='My security group')
# 创建出站规则
response = ec2.authorize_security_group_egress(
GroupId=response['GroupId'],
IpPermissions=[
{
'IpProtocol': 'tcp',
'FromPort': 80,
'ToPort': 80,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
},
{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}
]
)
上面的代码中,我们首先使用 create_security_group
方法创建了一个名为 my-security-group
的安全组。然后,我们使用 authorize_security_group_egress
方法创建了两条出站规则:一条是允许 TCP 协议的80端口出站流量,另一条是允许 TCP 协议的443端口出站流量。这些规则允许安全组内的 EC2 实例可以向外部访问 HTTP 和 HTTPS 服务。
要更新现有的安全组规则,可以使用 authorize_security_group_egress
方法的 IpPermissions
参数。这个参数需要一个包含所有出站规则的列表,你需要将所有现有的规则与新增的规则一起传