ec2服务策略以限制入站ssh公共访问的创建

问题描述 投票:0回答:2

我需要创建一个AWS服务控制策略,以限制通过安全组进行公共访问的ssh入站规则的创建。我已经尝试过使用此JSON脚本,但是我搞砸了。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "ec2:RevokeSecurityGroupIngress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress"
            ],
            "Resource": "arn:aws:ec2:*:352571213128:security-group/*",
            "Condition": {
                "ForAnyValue:NotIpAddress": {
                    "aws:SourceIp": [
                        "192.0.2.0/24",
                        "203.0.113.0/24"
                    ]
                }
            }
        }
    ]
}

仍然可以创建0.0.0.0/0的入站规则。需要:我只需要ssh协议。

json amazon-web-services amazon-ec2 aws-security-group aws-policies
2个回答
0
投票

可以创建0.0.0.0/0的入站规则。

据我所知SourceIp表示创建资源(sg)而不是资源值的调用aws客户端的IP

我不确定您是否可以使用策略在SG中执行值。

限制通过安全组进行公共访问的ssh入站规则的创建

我相信您可以使用AWS Config检查公共ssh组(然后您可以使用lambda来删除或更新sg)

虽然已经仅适用于ipv4,但已经有aws config“ restricted-ssh”托管规则,因此您可能需要创建自己的规则以确保特定的值或对ipv6的支持


0
投票

[通常,您将使用自动化脚本来执行此操作,例如使用CloudFormation或Terraform,通过这些脚本,您可以传递已经存在/创建的安全组,该组将具有给定IP的22端口限制。如果没有,那么您将首先创建安全组,然后将其附加到新创建的EC2实例。

如果您手动进行操作,则在创建EC2实例后,您需要将其与安全组连接,并将IP范围从0.0.0.0/0手动更改为您的特定IP范围。

© www.soinside.com 2019 - 2024. All rights reserved.