在使用revoke-security-group-ingress命令之前,必须首先查找需要删除的安全组规则的ID。
您可以通过以下代码示例来查找安全组规则的ID,并将结果存储在$sg_rule_ids变量中:
aws ec2 describe-security-groups --group-id your-security-group-id --query "SecurityGroups[*].IpPermissions[?FromPort==`80`]" --output text | awk '{print $1}'
然后,您可以使用以下代码示例来删除与$sg_rule_ids变量中的规则ID匹配的安全组规则:
for sg_rule_id in $sg_rule_ids
do
aws ec2 revoke-security-group-ingress --group-id your-security-group-id --ip-permissions "[{\"IpProtocol\": \"tcp\", \"FromPort\": 80, \"ToPort\": 80, \"IpRanges\": [{\"CidrIp\": \"0.0.0.0/0\"}], \"PrefixListIds\": [], \"UserIdGroupPairs\": [], \"Ipv6Ranges\": []}]" --rule-id $sg_rule_id
done
使用此方法,您应该能够成功删除在revoke-security-group-ingress命令中未能删除的安全组规则。