【问题标题】:AccessDeniedException: User is not authorized to perform dynamodb BatchWriteItem on resource: tableAccessDeniedException:用户无权对资源执行 dynamodb BatchWriteItem:表
【发布时间】:2018-08-22 00:59:22
【问题描述】:

我正在使用 nodejs、无服务器和 aws dynamodb。我正在尝试创建一个 lambda,在其中调用 API,获取数据(1000 条记录),现在,我想将此数据插入到我的 dynamodb 中。

我为此使用了 batchWrite,并通过创建每个包含 25 个 json 对象的存储桶来使用它。但我收到一个错误:
AccessDeniedException: <Username> is not authorized to perform dynamodb BatchWriteItem on resource <table-name>

当我在没有 batchWrite 和单独的 PUT 操作的情况下执行相同操作时,它可以正常工作(但我需要使用批处理,因为这会导致吞吐量超出错误)。

我已将 AWS 中的所有管理权限授予我使用无服务器的用户。

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda amazon-dynamodb serverless


    【解决方案1】:

    在你的 serverless.yml 文件中,你应该添加一个新角色

        - Effect: Allow
      Action:
        - dynamodb:DescribeTable
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
        - dynamodb:UpdateItem
        - dynamodb:DeleteItem
        - dynamodb:BatchWriteItem
      Resource: "arn:aws:dynamodb:${self:custom.region}:*:table/*"
    

    【讨论】:

    • 谢谢。我已经想通了。是的,你是对的。 serverless.yml 文件中提到的角色覆盖了我在我的 aws 帐户中设置的权限。所以我添加了上面提到的动作并且它起作用了。 :)
    【解决方案2】:

    这是我在使用 Amplify CLI 项目时的设置方式:

    {
        "Effect": "Allow",
        "Action": [
            "dynamodb:PutItem",
            "dynamodb:DeleteItem",
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:Scan",
            "dynamodb:UpdateItem",
            "dynamodb:BatchWriteItem",
            "dynamodb:Scan"
        ],
        "Resource": "arn:aws:dynamodb:*:*:table/*"
    },
    {
        "Effect": "Allow",
        "Action": "dynamodb:Query",
        "Resource": "arn:aws:dynamodb:*:*:table/*/index/*"
    }
    

    【讨论】:

    • 谢谢,我更新了 amplify/backend/function/mylambdafunction/mylambdafunction-cloudformation-template.json 文件中的 BatchWriteItem 权限并运行了 amplify push
    猜你喜欢
    • 2016-09-26
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多