繁体   English   中英

撤销所有安全组入口规则(与源安全组)

[英]Revoke all security group ingress rules (with source security groups)

我有一个 ec2.SecurityGroup 我想从中删除所有规则。 我无法删除组的默认入口规则,其中源是安全组的 ID:

具有安全组源的示例入口规则

我这样做,使用 Go SDK:

for _, perm := sg.IpPermissions {
  for _, pair := range perm.UserIdGroupPairs {
    service.RevokeSecurityGroupIngress(&ec2.RevokeSecurityGroupIngressInput{
    SourceSecurityGroupName: pair.GroupId,
    IpProtocol: perm.IpProtocol,
    SourceSecurityGroupOwnerId: pair.UserId,
        GroupId: sg.GroupId,
    });
  }
}

但是,这会产生错误:“VPCIdNotSpecified: No default VPC for this user”。
我应该如何撤销这条规则,以及所有其他规则? Go 在答案中是首选,但以任何语言实现此目的的方法将不胜感激。

我不是 Go 人,但这里有一些等效的 Python 代码:

import boto3

ec2_client = boto3.client('ec2')

response = ec2_client.describe_security_groups(GroupIds=['sg-xxx'])

for group in response['SecurityGroups']:
    ec2_client.revoke_security_group_ingress(GroupId=group['GroupId'], IpPermissions = group['IpPermissions'])

请注意,从describe_security_groups()返回的IpPermissions object 可以直接传递到revoke_security_group_ingress()中。 希望您可以在 Go 中做同样的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM