我正在尝试为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)
您无法在IpRanges
列表中指定组。您需要使用UserIdGroupPairs
列表。我建议使用sg2
字段的GroupId
组ID值。可以使用其他方式指定目标组,但对于您描述的情况不需要。
具体你想要:
sg1_policy_egress = [{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'UserIdGroupPairs': [{
'GroupId': sg2
}]
}]