AWS CLI;撤销默认安全组入口规则会导致错误
Posted
技术标签:
【中文标题】AWS CLI;撤销默认安全组入口规则会导致错误【英文标题】:AWS CLi; Revoking default security group ingress rule results in an error 【发布时间】:2020-09-29 06:31:40 【问题描述】:有人要求我弄清楚如何通过 CLi 在 AWS 中创建项目,以便以后实现自动化。我被困在安全组上。我可以创建一个罚款,我可以添加入口规则没问题,但我注意到创建的默认组具有所有流量任意/任意的入口规则,并引用 SG 作为源。
我想删除它作为安全风险的可能载体。我收到一条错误消息,提示该规则不存在。我已经尝试使用 SG 组 id、组名,甚至使用 ip 权限语法,这都会导致相同的错误。我也没有看到编辑入口规则的方法。有没有人成功做到这一点?
当然,GUI 非常简单,而且运行良好,我只需要知道正确的语法即可以编程方式执行此操作。
【问题讨论】:
能否发布您尝试过的 CLI 命令? 试过这个:aws ec2 revoke-security-group-ingress --profile us-west-1 --group-id sg-XXXXXXXXXXXXXXXXc --protocol all --cidr 0.0.0.0/0。我也试过这个:aws ec2 revoke-security-group-ingress --profile us-west-1 --group-id sg-XXXXXXXXXXXXXXXXc --ip-permissions '["IpProtocol": "-1", "IpRanges “:[“CidrIp”:“0.0.0.0/0”]]'。两者都导致以下错误:“调用 RevokeSecurityGroupIngress 操作时发生错误 (InvalidPermission.NotFound):此安全组中不存在指定的规则。” 【参考方案1】:诀窍是通过describe-security-groups
获取当前规则的输出,然后将其作为参数传递给revoke-security-group-ingress
。这样,规则就完全匹配了。
首先,此命令提取现有的入站权限:
aws ec2 describe-security-groups --group-ids sg-xxx --query SecurityGroups[].IpPermissions[]
输出如下:
[
"FromPort": 0,
"IpProtocol": "tcp",
"IpRanges": [
"CidrIp": "0.0.0.0/0"
],
"Ipv6Ranges": [
"CidrIpv6": "::/0"
],
"PrefixListIds": [],
"ToPort": 65535,
"UserIdGroupPairs": []
]
然后,将该命令嵌入到revoke-security-group-ingress
命令中:
aws ec2 revoke-security-group-ingress --group-id sg-xxx --ip-permissions "`aws ec2 describe-security-groups --group-ids sg-xxx --query SecurityGroups[].IpPermissions[]`"
(这适用于我的 Mac。如果您运行的是 Windows,请在 Ubuntu shell 下运行它。)
【讨论】:
我也在使用 mac。当我尝试时,我得到了错误。 zsh:未找到匹配项:SecurityGroups[].IpPermissions[]。我的命令:aws ec2 describe-security-groups --group-ids sg-xxxxxxxxxxxxxx --query SecurityGroups[].IpPermissions[]. aws ec2 describe-security-groups --profile us-west-1 "SecurityGroups": [ "IpPermissionsEgress": [ "IpProtocol": "-1", "PrefixListIds": [] , "IpRanges": [ "CidrIp": "0.0.0.0/0" "Description": "default VPC security group", "IpPermissions": [ "IpProtocol": "-1", "PrefixListIds": [], "IpRanges": [], "UserIdGroupPairs ": [ "UserId": "x", "GroupId": "sg-x" 在不指定--query
的情况下尝试describe-security-groups
命令以查看所提供的输出。听起来你的 shell 对命令做了一些奇怪的事情,因为 zsh
不应该抱怨。在组合命令之前,请确保它返回的结果类似于我上面显示的结果。随意将您的错误/调试添加到您的问题中,使其格式正确。以上是关于AWS CLI;撤销默认安全组入口规则会导致错误的主要内容,如果未能解决你的问题,请参考以下文章