【问题标题】:Allowing a Lambda function to exclusively put objects into an S3 bucket允许 Lambda 函数以独占方式将对象放入 S3 存储桶
【发布时间】:2018-01-28 07:13:14
【问题描述】:

我当前的 S3 存储桶策略全局启用 s3:getObjects3:putObject,我正试图通过指定存储桶策略来限制它。

虽然s3:getObject 是安全的,但我想限制对s3:putObject 的访问仅限于特定的AWS Lambda 函数。

该函数通过对 CloudFront 的 HTTP 请求匿名触发,因此不涉及 AWS 用户。

如何通过 Lambda 的 ARN 标识符限制访问?

现行政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:getObject",
            "Resource": "arn:aws:s3:::{bucket_name}/*"
        },
        {
            "Sid": "LambdaPutObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:putObject",
            "Resource": "arn:aws:s3:::{bucket_name}/*"
        }
    ]
}

【问题讨论】:

    标签: amazon-web-services amazon-s3 permissions aws-lambda policy


    【解决方案1】:

    实际上,只需为 Lambda 创建访问策略。有预定义的,比如lambda_basic_execution

    角色配置可以在AWS控制台里面找到:

    Lambda > Functions > {name} > Roles IAM > Roles

    这是帮助我的特定配置:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                ],
                "Resource": "arn:aws:logs:*:*:*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:PutObject",
                "Resource": "arn:aws:s3:::{bucket_name}/*"
            }
        ]
    }
    

    【讨论】:

    • 如果我正确阅读了您的原始问题,您不能仅通过为您的 Lambda 函数创建 IAM 角色来限制谁/什么写入该 S3 存储桶。所做的只是限制 Lambda 函数的功能。如果您希望 Lambda 函数并且只有 Lambda 函数能够写入该存储桶,那么您需要更多的东西(例如在 VPC 中启动 Lambda 并修改 S3 存储桶策略以限制对该 VPC 的访问)。跨度>
    • 从存储桶策略中删除 "Action": "s3:putObject", 语句 I 后,我无法再匿名写入存储桶(仅在以所有者身份登录时)。将"Action": "s3:PutObject", 添加到 Lambda 的 IAM 策略允许它写入存储桶。这就是我最初想要的,为什么我需要更多?
    猜你喜欢
    • 2016-03-17
    • 2021-11-10
    • 1970-01-01
    • 2020-03-29
    • 2016-12-28
    • 1970-01-01
    • 2019-08-26
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多