首页 > 解决方案 > 如何授予 lambda 权限以在 Aurora Postgresql 数据库中创建行?

问题描述

我有一个 lambda 并使用 IAM 身份验证连接到 RDS Aurora postgresql 11.8。连接部分有效,但我无法在表中插入一行。

我在数据库中创建了这个用户并使用这个用户连接到数据库。

CREATE USER mydbuser WITH LOGIN; 
GRANT rds_iam TO mydbuser;
GRANT ALL ON SCHEMA "test" TO mydbuser;

我为此 lambda 添加了角色策略:

- Effect: Allow
                Action:
                  - rds-db:connect 
                Resource: "arn:aws:rds-db:${self:provider.region}:${self:provider.accountId}:dbuser:*/*"
- Effect: Allow
                Action:
                  - rds:*
                Resource: "arn:aws:rds:${self:provider.region}:${self:provider.accountId}:*:*"

当我跑步时insert into,我得到了以下错误。test是数据库中的模式名称。我想知道如何授予 lambda 权限以在test模式下的表中插入行。

{
  "message": "permission denied for schema test",
  "length": 97,
  "name": "QueryFailedError",
  "severity": "ERROR",
  "code": "42501",
  "position": "13",
  "file": "aclchk.c",
  "line": "3522",
  "routine": "aclcheck_error",
  "query": "INSERT INTO \"test\".\"Customers\"(\"customerUuid\", ...",
  "parameters": [
    ...
  ]
}

标签: postgresqlamazon-web-servicesaws-lambdaamazon-rdsamazon-aurora

解决方案


推荐阅读