authorize_security_group_egress 上的 Boto3 错误

authorize_security_group_egress 上的 Boto3 错误

当我尝试使用 boto3 更新出口规则时,出现以下错误:

client.authorize_security_group_egress(
  GroupId=group_id,CidrIp="0.0.0.0/0",
  IpProtocol='tcp',
  FromPort=from_port,
  ToPort=to_port)

警告:root:意外错误:调用 AuthorizeSecurityGroupEgress 操作时发生错误(未知参数):无法识别参数 CidrIp

但这在入口规则上运行良好。

答案1

这里可能存在多个问题。

首先,它只适用于 EC2-VPC。它不适用于 EC2-classic http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.authorize_security_group_egress

[仅限 EC2-VPC] 向安全组添加一个或多个出站规则,以便与 VPC 一起使用。具体而言,此操作允许实例将流量发送到一个或多个目标 CIDR IP 地址范围,或发送到同一 VPC 的一个或多个目标安全组。此操作不适用于 EC2-Classic 中使用的安全组。有关更多信息,请参阅 Amazon Virtual Private Cloud 用户指南中的您的 VPC 的安全组。

其次,boto3 确实包含一些文档错误。正如@Tayler 所提到的,也许你应该省略CidrIp。老实说,我不明白为什么你需要创建这样的出口规则,因为它是所有安全组的默认规则。

如果您希望删除组中的所有规则,您需要使用 revoke_security_group_egress。authorize_security_group_egress 不能“更新”规则,它只能添加规则。

相关内容