通过 boto3 中的撤销删除 Aws 安全组规则
Aws Security Group rule deletion via revoke in boto3
我写了一个脚本来删除安全组中的规则。不是所有规则,只有带有 0.0.0.0/0 cidr 块的规则。我正在尝试使用 ec2.revoke_security_group_ingress
,但是 boto3 文档中提到的参数,我无法像那样设置我的条件。
我说的那行是:
response = ec2.revoke_security_group_ingress(GroupId=group_id,GroupName=group_name,IpPermissions=inbound[{'IpRanges': ip[{'CidrIp': cidr}]])
这里我收到这个错误:
Response:
{
"errorMessage": "Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 29)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
" File \"/var/task/lambda_function.py\" Line 29\n response = ec2.revoke_security_group_ingress(GroupId=group_id,GroupName=group_name,IpPermissions=inbound{'IpRanges': ip{'CidrIp': cidr}}])\n"
]
}
如果我尝试这样做:
response = ec2.revoke_security_group_ingress(group_id,group_name,inbound[ip[cidr]])
我收到这个错误:
Response:
{
"errorMessage": "list indices must be integers or slices, not str",
"errorType": "TypeError",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 31, in lambda_handler\n response = ec2.revoke_security_group_ingress(group_id,group_name,inbound[ip[cidr]])\n"
]
}
我知道有一些基本列表到字典或字典到列表错误,但我不明白如何解决这个问题。有人可以帮忙吗?
我尝试了这个而不是所有这些。
response = ec2.revoke_security_group_ingress(CidrIp=cidr,GroupId=group_id,IpProtocol=protocol,FromPort=fromport,ToPort=toport)
但要小心,您的默认安全组会带来麻烦,因为它不包含任何值。请记住从您的代码中选择它或通过错误处理来处理它。
我写了一个脚本来删除安全组中的规则。不是所有规则,只有带有 0.0.0.0/0 cidr 块的规则。我正在尝试使用 ec2.revoke_security_group_ingress
,但是 boto3 文档中提到的参数,我无法像那样设置我的条件。
我说的那行是:
response = ec2.revoke_security_group_ingress(GroupId=group_id,GroupName=group_name,IpPermissions=inbound[{'IpRanges': ip[{'CidrIp': cidr}]])
这里我收到这个错误:
Response:
{
"errorMessage": "Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 29)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
" File \"/var/task/lambda_function.py\" Line 29\n response = ec2.revoke_security_group_ingress(GroupId=group_id,GroupName=group_name,IpPermissions=inbound{'IpRanges': ip{'CidrIp': cidr}}])\n"
]
}
如果我尝试这样做:
response = ec2.revoke_security_group_ingress(group_id,group_name,inbound[ip[cidr]])
我收到这个错误:
Response:
{
"errorMessage": "list indices must be integers or slices, not str",
"errorType": "TypeError",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 31, in lambda_handler\n response = ec2.revoke_security_group_ingress(group_id,group_name,inbound[ip[cidr]])\n"
]
}
我知道有一些基本列表到字典或字典到列表错误,但我不明白如何解决这个问题。有人可以帮忙吗?
我尝试了这个而不是所有这些。
response = ec2.revoke_security_group_ingress(CidrIp=cidr,GroupId=group_id,IpProtocol=protocol,FromPort=fromport,ToPort=toport)
但要小心,您的默认安全组会带来麻烦,因为它不包含任何值。请记住从您的代码中选择它或通过错误处理来处理它。