python - Boto 出口安全策略
问题描述
我正在尝试创建一个以sg1
另一个安全组sg2
为目标的出站安全组策略。根据authorize_egress()
文档:
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
组 ID 值。GroupId
指定目标组的其他方法是可能的,但您描述的情况不需要。
具体来说,您想要:
sg1_policy_egress = [{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'UserIdGroupPairs': [{
'GroupId': sg2
}]
}]
推荐阅读
- android - 当密钥是在 Android 密钥库中支持的保险箱时无法验证签名
- node.js - 我们有一个文化信息类。net ,我们在 node js 中是否有类似的结构/包?
- npm - npm install 命令在每一行给出 ERR
- database - 表之间有什么关系?
- c# - Winforms Listbox,尽管Drawmode被OwnerDrawFixed,如何使显示成员工作?
- python-3.x - 函数在本机工作,但在从另一个页面调用时不起作用
- c - 在c中反转字符串后得到垃圾
- css - 如何设置 mvc 局部视图,使其不受布局页面的 css 影响?
- c# - 我如何为文本文件中的一行提供唯一标识符?
- python - Pandas - 结合重采样值续