EC2: Fix egress rules used in ingress revoke method (#6180)
This commit is contained in:
		
							parent
							
								
									bbb07b4e7e
								
							
						
					
					
						commit
						dc460a3258
					
				| @ -733,7 +733,7 @@ class SecurityGroupBackend: | |||||||
| 
 | 
 | ||||||
|         if security_rule_ids: |         if security_rule_ids: | ||||||
|             group.ingress_rules = [ |             group.ingress_rules = [ | ||||||
|                 rule for rule in group.egress_rules if rule.id not in security_rule_ids |                 rule for rule in group.ingress_rules if rule.id not in security_rule_ids | ||||||
|             ] |             ] | ||||||
|             return |             return | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1820,3 +1820,52 @@ def test_filter_group_name(): | |||||||
|     security_groups = list(security_groups) |     security_groups = list(security_groups) | ||||||
|     assert len(security_groups) == 1 |     assert len(security_groups) == 1 | ||||||
|     assert security_groups[0].group_name == sg1.group_name |     assert security_groups[0].group_name == sg1.group_name | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @mock_ec2 | ||||||
|  | def test_revoke_security_group_ingress(): | ||||||
|  |     ec2 = boto3.client("ec2", region_name="us-east-1") | ||||||
|  | 
 | ||||||
|  |     vpc = ec2.create_vpc(CidrBlock="10.0.0.0/16") | ||||||
|  | 
 | ||||||
|  |     sg = ec2.create_security_group( | ||||||
|  |         Description="Test SG", GroupName=str(uuid4()), VpcId=vpc["Vpc"]["VpcId"] | ||||||
|  |     ) | ||||||
|  |     sg_id = sg["GroupId"] | ||||||
|  | 
 | ||||||
|  |     ec2.authorize_security_group_ingress( | ||||||
|  |         GroupId=sg_id, | ||||||
|  |         IpPermissions=[ | ||||||
|  |             { | ||||||
|  |                 "FromPort": 3000, | ||||||
|  |                 "ToPort": 3300, | ||||||
|  |                 "IpProtocol": "TCP", | ||||||
|  |                 "IpRanges": [{"CidrIp": "10.0.0.1/32"}], | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "FromPort": 8080, | ||||||
|  |                 "ToPort": 8080, | ||||||
|  |                 "IpProtocol": "TCP", | ||||||
|  |                 "IpRanges": [{"CidrIp": "10.0.0.1/32"}], | ||||||
|  |             }, | ||||||
|  |         ], | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     response = ec2.describe_security_group_rules( | ||||||
|  |         Filters=[{"Name": "group-id", "Values": [sg_id]}] | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     ingress_rules = [r for r in response["SecurityGroupRules"] if not r["IsEgress"]] | ||||||
|  |     assert len(ingress_rules) == 2 | ||||||
|  | 
 | ||||||
|  |     # revoke 1 of the 2 ingress rules | ||||||
|  |     ec2.revoke_security_group_ingress( | ||||||
|  |         GroupId=sg_id, SecurityGroupRuleIds=[ingress_rules[0]["SecurityGroupRuleId"]] | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     response = ec2.describe_security_group_rules( | ||||||
|  |         Filters=[{"Name": "group-id", "Values": [sg_id]}] | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     ingress_rules = [r for r in response["SecurityGroupRules"] if not r["IsEgress"]] | ||||||
|  |     assert len(ingress_rules) == 1 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user