【发布时间】:2016-04-08 05:03:34
【问题描述】:
我最近一直致力于以编程方式向我的 EC2 服务器上的安全组添加和删除入口规则。但是,我现在似乎遇到了一些障碍。
我希望能够通过 python 脚本修改现有规则,但我无法在 Boto3 文档中找到任何指导。
有什么办法可以做到吗?
谢谢
【问题讨论】:
标签: python amazon-web-services amazon-ec2 boto3
我最近一直致力于以编程方式向我的 EC2 服务器上的安全组添加和删除入口规则。但是,我现在似乎遇到了一些障碍。
我希望能够通过 python 脚本修改现有规则,但我无法在 Boto3 文档中找到任何指导。
有什么办法可以做到吗?
谢谢
【问题讨论】:
标签: python amazon-web-services amazon-ec2 boto3
好像没有办法修改安全组规则。您必须删除旧的:
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)
希望对您有所帮助。
【讨论】:
SG 中没有修改规则的 API。您必须先撤销规则,然后使用授权添加带有修改参数的规则。该链接也有代码sn-ps。
【讨论】:
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
【讨论】: