将S3访问限制为确定的IP范围,并且不能合并Lambda-S3策略

问题描述 投票:-1回答:1

最近,我开始致力于保护对我的S3存储桶的访问,并且我有两个源要授予访问权限,但拒绝访问任何其他源。

在这种情况下,获得访问权限的源例如是我的本地IP或VPC IP范围以及Lambda函数。

我创建了以下S3存储桶策略:

{
    "Version": "2019-10-10",
    "Statement": [
        {
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:iam::480311425080:role/<lambda role name>",
                    "arn:aws:sts::480311425080:assumed-role/<lambda role name>/<Lambda function name>"
                ],
                "Service": "lambda.amazonaws.com"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::<bucket name>/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "<ip adress>/32",
                        "<ip adress>/32"
                    ]
                }
            }
        }
    ]
}

因此,正如您所看到的,我正在使用NotPrincipal排除我相应的角色和Lambda,而我使用NotIpaddress排除我的有效IP。

在这种情况下,我仍然可以从Lambda函数连接到S3,但是仍然可以从“可能没有授权IP”连接到S3。所以条件

            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "<ip adress>/32",
                        "<ip adress>/32"
                    ]
                }
            }

无法正常工作。

也许您会告诉只对NotPrincipal使用角色ARN,但是这两者都不起作用。

仅将主体作为角色,而“未使用lambda函数指定arn”

            "NotPrincipal": {
                "AWS": "arn:aws:iam::880719415082:role/lambda_s3_access"
            },

应用IP过滤的条件,但无法连接Lambda。

任何想法?

亲切的问候,

Rshad

最近,我开始致力于保护对S3存储桶的访问,我有两个源,我想授予访问权限,拒绝访问任何其他源。在这种情况下,获取......>

amazon-web-services amazon-s3 aws-lambda policy
1个回答
0
投票

Amazon S3存储桶默认为私有。因此,除非您希望覆盖另一个策略中授予的权限,否则没有必要使用Deny语句

。 (例如,管理员可以访问所有存储桶,但此存储桶是一个例外。)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.