Boto 的出口安全策略
Egress Security Policy with Boto
我正在尝试为 sg1
创建出站安全组策略,该策略将另一个安全组 sg2
作为目的地。根据 authorize_egress()
documentation:
IpPermissions->IPRanges->CidrIp — 您可以指定 CIDR 范围或 源安全组 ,但不能同时指定两者。要指定单个 IPv4 地址,请使用 /32 前缀长度。
SourceSecurityGroupName — 不支持。 使用一组IP权限指定目标安全组。
但是,以下代码因意外参数类型错误而失败 — 有谁知道这个 and/or 我做错了什么的语法吗?
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
列表。我建议对 GroupId
字段使用 sg2
组 ID 值。可以使用其他方法来指定目标组,但您描述的情况不需要。
具体你想要:
sg1_policy_egress = [{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'UserIdGroupPairs': [{
'GroupId': sg2
}]
}]
我正在尝试为 sg1
创建出站安全组策略,该策略将另一个安全组 sg2
作为目的地。根据 authorize_egress()
documentation:
IpPermissions->IPRanges->CidrIp — 您可以指定 CIDR 范围或 源安全组 ,但不能同时指定两者。要指定单个 IPv4 地址,请使用 /32 前缀长度。
SourceSecurityGroupName — 不支持。 使用一组IP权限指定目标安全组。
但是,以下代码因意外参数类型错误而失败 — 有谁知道这个 and/or 我做错了什么的语法吗?
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
列表。我建议对 GroupId
字段使用 sg2
组 ID 值。可以使用其他方法来指定目标组,但您描述的情况不需要。
具体你想要:
sg1_policy_egress = [{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'UserIdGroupPairs': [{
'GroupId': sg2
}]
}]