使用 Boto3 修改给定 EC2 安全组的规则
Modifying rules for a given EC2 security group with Boto3
我最近一直致力于以编程方式向我的 EC2 服务器上的安全组添加和删除入口规则。但是,我现在似乎有点碰壁了。
我希望能够通过 python 脚本修改现有规则,但我无法在 Boto3 文档中找到任何指导。
有什么方法可以做到这一点吗?
谢谢
SG中没有API修改规则。您必须先撤销规则,然后使用授权添加具有修改后参数的规则。 link 也有代码片段。
- authorize_egress()
- authorize_ingress()
- revoke_egress()
- revoke_ingress()
好像没有办法修改安全组规则。你必须删除旧的:
security_group.revoke_ingress(IpProtocol="tcp", CidrIp="0.0.0.0/0", FromPort=3306, ToPort=3306)
并添加新的:
security_group.authorize_ingress(IpProtocol="tcp",CidrIp="0.0.0.0/0",FromPort=3306,ToPort=3306)
希望对您有所帮助。
AWS 添加了新的 API(modify_security_group_rules),其中可以修改安全组规则。以下代码供参考:
client = boto3.client('ec2')
sg_rules_list = [{'SecurityGroupRuleId': 'sgr-07de36a0521f39c8b',
'SecurityGroupRule': {
'IpProtocol': 'tcp',
'FromPort': 22,
'ToPort': 22,
'CidrIpv4': '3.3.3.3/32',
'Description': 'added ssh port'
}
}
]
response = client.modify_security_group_rules(GroupId='sg-00f3b9232325b20fb',
SecurityGroupRules=sg_rules_list)
AWS 博客上的更多详细信息:Easily Manage Security Group Rules with the New Security Group Rule ID