【问题标题】:AWS Lambda can't delete Amazon S3 objectAWS Lambda 无法删除 Amazon S3 对象
【发布时间】:2015-04-09 19:49:13
【问题描述】:

我正在尝试创建一个 AWS Lambda 函数,该函数处理上传到第一个存储桶的文件,然后将其保存到第二个存储桶,然后删除输入文件。

问题是当我试图删除我得到的文件时

{
  "message": "Access Denied",
  "code": "AccessDenied",
  "time": "2015-02-09T22:08:45.926Z",
  "statusCode": 403,
  "retryable": false,
  "retryDelay": 30
}

尝试删除文件的代码sn-p是

s3.deleteObject({
    Bucket: inputBucket,
    Key: inputKey
}, function(a, b) {
    if (a) {
        console.error("Error on delete");
        console.error(a);
    } else {
        console.log("Deleted successfully");
    }
});

【问题讨论】:

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


    【解决方案1】:

    lambda 无法删除文件(S3 对象)的可能原因可能是由于 Lambda 的执行角色。

    解决此问题的步骤

    1. 在 AWS 管理控制台中导航到 IAM
    2. 查找为 lambda 使用(或创建)的 IAM 角色(如果是默认值,则为 lambda_exec_role)
    3. 转到附加角色策略 -> 自定义策略并添加以下 IAM 策略文档

    {
      "Statement": [
        {
          "Sid": "Stmt1423535846414",
          "Action": [
            "s3:DeleteObject"
          ],
          "Effect": "Allow",
          "Resource": "arn:aws:s3:::*"
        }
      ]
    }
    

    【讨论】:

    • 或者最好是“资源”:“arn:aws:s3:::firstbucket/*”
    • 什么是席德?我在哪里可以买到?
    • 用于分类/识别每个 IAM 语句的语句 ID。更像是一个友好的名称“for-s3-access-for-app1”
    【解决方案2】:

    转到IAM -> Roles -> <assigned-role-name> -> Permissions -> <policy-name>

    确保您的政策具有以下内容:

    {
        "Statement": [
            {
                "Action": [
                    "s3:*"
                ],
                "Resource": [
                    "arn:aws:s3:::<my-bucket>",
                    "arn:aws:s3:::<my-bucket>/*"
                ],
                "Effect": "Allow"
            }
    
        ]
    }
    

    注意:arn:aws:s3:::&lt;my-bucket&gt; 用于访问 my-bucketarn:aws:s3:::&lt;my-bucket&gt;/* 用于访问my-bucket 下的所有对象。它们相似但不相同。它们需要同时存在以确保 lambda 具有完整的 S3 访问权限

    希望对你有帮助

    【讨论】:

    • 非常感谢。我错过了第一个资源。
    【解决方案3】:

    我在 inputKey 中遇到了奇怪的字符和空格。尝试使用简单的名称。

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2022-11-05
      相关资源
      最近更新 更多