Python 如何使用boto3的revoke_ingress方法从入站规则中删除特定的安全组
我想使用boto3方法从另一个安全组sg ZZ的入站规则中删除特定的安全组sg yy组 资料来源:sg ZZ 目标:sg yy 我试过:Python 如何使用boto3的revoke_ingress方法从入站规则中删除特定的安全组,python,amazon-web-services,boto3,aws-security-group,Python,Amazon Web Services,Boto3,Aws Security Group,我想使用boto3方法从另一个安全组sg ZZ的入站规则中删除特定的安全组sg yy组 资料来源:sg ZZ 目标:sg yy 我试过: response = security_group_source.revoke_ingress( FromPort=FromPort, GroupName=groupName_source, IpPermissions=[ {'ToPort': ToPort,
response = security_group_source.revoke_ingress(
FromPort=FromPort,
GroupName=groupName_source,
IpPermissions=[
{'ToPort': ToPort,
'UserIdGroupPairs': [
{
'Description': description_target,
'GroupId': group_id_target,
'GroupName': groupName_target,
'VpcId': VpcId_target,
},
]
},
],
SourceSecurityGroupName=groupName_source,
SourceSecurityGroupOwnerId=owner_id_source,
ToPort=ToPort,
DryRun=True
)
print( response )
但我得到了错误:调用RevokeSecurityGroupIngress操作时发生错误(InvalidGroup.NotFound):默认VPC“VPC-1111”中不存在安全组“sg_group_name”
我不能使用:
security_group.revoke_ingress(
IpPermissions = IpPermissions,
)
因为我需要删除特定的安全组
有人能帮我吗?这可以通过保留正确的参数来解决。Boto3文档中没有明确规定非默认VPC使用哪些参数,但解决这些错误对我来说是可行的。 非默认VPC的工作代码:
response = security_group_source.revoke_ingress(
GroupId=group_id_source,
IpPermissions=[
{'FromPort': FromPort,
'IpProtocol': IpProtocol,
'ToPort': ToPort,
'UserIdGroupPairs': [
{
'GroupId': group_id_target,
'VpcId': VpcId_target,
},
]
},
],
DryRun=False
)
您确定您的所有SGs都在默认vpc中吗?@Marcin不,它们不在默认vpc中,我要提到的是它所在的vpc,即
VpcId':VpcId\u target
。此外,安全组sg yy和sg ZZ位于同一个vpc中。错误显示“默认情况下不存在”,因此它将在默认vpc中搜索它们。也不知道为什么同时使用GroupId
和GroupName
?应该使用其中一个。对于非devaulf专有网络,仅应根据文档使用GroupId
:对于非默认专有网络中的安全组,使用安全组ID。@Marcin即使我只使用组ID
我也会收到相同的错误,并且可能是什么原因导致它在默认VPC中查找,而不是我提到的VPC,即VpcId\u target
?必须检查文档。我看到GroupName
和SourceSecurityGroupName
也仅适用于[EC2经典,默认VPC]
。所以,你必须指定其他材料,或者移除它们?我现在还不太清楚。