【问题标题】:Limit AWS S3 Bucket to only Lambda access将 AWS S3 存储桶限制为仅 Lambda 访问
【发布时间】:2017-06-24 05:34:21
【问题描述】:

我正在使用 AWS S3 存储桶来保存 Java AWS Lambda 的配置文件。如何将存储桶配置为只允许访问任何 lambda 函数而不允许访问其他函数?

【问题讨论】:

  • 一般来说,如果您尝试将 AWS 服务作为 IAM 策略中的委托人,那么您将使用 "Service": "lambda.amazonaws.com" (或 "s3.amazonaws .com”、“ec2.amazonaws.com”等)但是,在这种情况下,我认为相关的不是 Lambda 服务,而是您的 Lambda 函数在其下运行的假定 IAM 角色,因为它是调用的 Lambda 函数本身这是从您的 S3 存储桶中检索配置(大概)。

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk


【解决方案1】:

您需要在区域us-east-1 中为账户123456789012 添加s3 存储桶策略 -

   {
     "Id": "Policy1498253351771",
     "Version": "2012-10-17",
     "Statement": [
        {
           "Sid": "Stmt1498253327847",
           "Action": [
                        "s3:GetObject",
                        "s3:PutObject"
                     ],
           "Effect": "Allow",
           "Resource": "arn:aws:s3:::<bucket_name>/<prefix>",
           "Principal": {
           "AWS": [
                 "arn:aws:lambda:us-east-1:123456789012:function:*"
                ]
           }
        }
    ]
 }

以上是所有 lambda 函数的通用策略。

如果您需要根据您的用例生成更精细的策略,您可以尝试AWS Policy Generator

【讨论】:

  • 显示的策略允许持有者针对 us-east-1 中 AWS 账户 123456789012 中的所有 Lambda 函数调用所有 Lambda API。它无助于任何 Lambda 函数从 S3 检索对象,或阻止非 Lambda 函数从 S3 存储桶检索对象。
  • @jarmod,我放了一个通用的,以便在从我共享的链接生成策略时可以将其作为参考。我已根据您的建议更新了我的政策,请查看。谢谢-
猜你喜欢
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2022-12-09
  • 2020-10-10
  • 2018-06-19
  • 2014-10-21
相关资源
最近更新 更多