Boto出口安全政策

问题描述 投票:2回答:1

我正在尝试为sg1创建一个出站安全组策略,该策略将另一个安全组sg2作为目标。根据authorize_egress() documentation

IpPermissions-> IPRanges-> CidrIp - 您可以指定CIDR范围或源安全组,而不是两者。要指定单个IPv4地址,请使用/ 32前缀长度。

SourceSecurityGroupName - 不支持。使用一组IP权限指定目标安全组。

但是,以下代码失败并出现意外的参数类型错误 - 有没有人知道这个的语法和/或我做错了什么?

sg1 = ec2.create_security_group(GroupName=sg1, Description=sg1, VpcId=vpc.id)

sg1_policy_egress = [{
    'IpProtocol': 'tcp', 
    'FromPort': 443, 
    'ToPort': 443,
    'IpRanges': [{
        'CidrIp': sg2
    }]
}]

sg1.authorize_egress(IpPermissions=sg1_policy_egress)
python amazon-web-services boto
1个回答
2
投票

您无法在IpRanges列表中指定组。您需要使用UserIdGroupPairs列表。我建议使用sg2字段的GroupId组ID值。可以使用其他方式指定目标组,但对于您描述的情况不需要。

具体你想要:

sg1_policy_egress = [{
    'IpProtocol': 'tcp', 
    'FromPort': 443, 
    'ToPort': 443,
    'UserIdGroupPairs': [{
        'GroupId': sg2
    }]
}]
© www.soinside.com 2019 - 2024. All rights reserved.