【问题标题】:Modifying rules for a given EC2 security group with Boto3使用 Boto3 修改给定 EC2 安全组的规则
【发布时间】:2016-04-08 05:03:34
【问题描述】:

我最近一直致力于以编程方式向我的 EC2 服务器上的安全组添加和删除入口规则。但是,我现在似乎遇到了一些障碍。

我希望能够通过 python 脚本修改现有规则,但我无法在 Boto3 文档中找到任何指导。

有什么办法可以做到吗?

谢谢

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 boto3


    【解决方案1】:

    好像没有办法修改安全组规则。您必须删除旧的:

    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)
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      Boto3:SecurityGroup

      SG 中没有修改规则的 API。您必须先撤销规则,然后使用授权添加带有修改参数的规则。该链接也有代码sn-ps。

      • authorize_egress()
      • authorize_ingress()
      • revoke_egress()
      • revoke_ingress()

      【讨论】:

      • 是的,我以前见过这种方法,但我想知道是否有更简洁的方法来修改每个规则。不过感谢您的帮助!
      【解决方案3】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        • 2015-10-08
        • 2021-11-05
        • 2015-07-27
        • 1970-01-01
        • 2017-08-10
        • 2020-02-06
        相关资源
        最近更新 更多