【问题标题】:Missing required field Principal - Amazon S3 - Bucket Policy缺少必填字段 Principal - Amazon S3 - Bucket Policy
【发布时间】:2020-03-09 11:18:01
【问题描述】:

我正在尝试使用 AWS Lamba 调整亚马逊 s3 中托管图像的大小。我遵循了亚马逊提供的以下教程。

Tutorial

但是,当我尝试更新我的存储桶策略时,它总是给出错误 “缺少必填字段 Principal”

这是我的政策代码:

{
  "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:::yyyy",
      "Principal":{"AWS":"arn:aws:iam::123456789:user/xxxxx"}     
    }
  ]
}

我不明白为什么我会收到错误消息。我做错了什么?

【问题讨论】:

  • 您有两个语句,但只有第二个包含一个 Principal。
  • @jarmod 我也将 Principal 添加到上述语句中。然后它给出 Policy has invalid action 错误
  • 查看@Mari 的答案。您不小心创建了 S3 存储桶策略(需要 Principal)和常规 IAM 策略(不需要或允许 Principal)的混合体。对于相关教程,您的 Lambda 函数需要后者。

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


【解决方案1】:

这实际上不是 S3 存储桶策略,而是授予您的 Lambda 函数将日志写入 CloudWatch 并将对象放入您的 S3 存储桶的权限的策略文档。

请查看如何设置:https://www.screencast.com/t/SjD72va1Zso

【讨论】:

    【解决方案2】:

    【讨论】:

    • 链接好像坏了:(
    猜你喜欢
    • 2020-07-11
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    相关资源
    最近更新 更多