登录
首页 >  Golang >  Go问答

删除所有安全组入口规则,包括源安全组

来源:stackoverflow

时间:2024-03-12 14:03:27 143浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《删除所有安全组入口规则,包括源安全组》,涉及到,有需要的可以收藏一下

问题内容

我有一个 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:此用户没有默认 vpc”。

我该如何撤销这条规则以及所有其他规则? 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 对象可以直接传递到 revoke_security_group_ingress() 中。希望您也能在 go 中做同样的事情。

到这里,我们也就讲完了《删除所有安全组入口规则,包括源安全组》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>