0

我被要求弄清楚如何通过 CLi 在 AWS 中创建项目,以便以后实现自动化。我被困在安全组上。我可以创建一个罚款,我可以添加入口规则没问题,但我注意到创建的默认组具有所有流量任意/任意的入口规则,并引用 SG 作为源。

我想删除它作为安全风险的可能载体。我收到一条错误消息,提示该规则不存在。我已经尝试使用 SG 组 id、组名,甚至使用 ip 权限语法,这都会导致相同的错误。我也没有看到编辑入口规则的方法。有没有人成功做到这一点?

当然,GUI 非常简单,而且运行良好,我只需要知道正确的语法就可以以编程方式执行此操作。

4

1 回答 1

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 下运行它。)

于 2020-06-10T05:43:03.973 回答