在不同的AWS账户中查询Dynamodb - 无服务器框架

时间:2017-05-24 11:22:44

标签: amazon-web-services amazon-dynamodb amazon-iam serverless-framework

我需要从一个不同AWS账户的lambda连接到一个AWS账户中的dynamoDB表。目前,我尝试通过无服务器脱机连接到dynamodb。我能够连接到我的AWS账户中的表,但在尝试连接到另一个账户中的dynamoDB表时遇到错误。

错误:找不到请求。 (我已经检查了两次。表确实存在。)

我在serverlesss.yml中使用的角色具有完全管理员权限(包括DynamoDB)

serverless.yml

provider:
  name: aws
  runtime: nodejs6.10
  role: "arn:aws:iam::******:role/abcRole"
  iamRoleStatements:
    - Effect: Allow
      Action: ["dynamodb:*"]
      Resource: "arn:aws:dynamodb:us-east-1:*:*"



db.js

let dynamodbOnlineOptions = {
    region: 'us-east-1'
};

let client = new AWS.DynamoDB.DocumentClient(dynamodbOnlineOptions);

我认为我在权限方面犯了一些错误,但我能够识别问题。请帮忙。

1 个答案:

答案 0 :(得分:0)

我认为前进的方法是创建一个可以访问该表的跨账户角色,然后让你的lambda函数担任该角色。

在具有Dynamodb表的帐户中创建跨帐户角色,并授予其访问权限。

http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

在lambda函数中,让它假设该角色并获取访问该表的临时凭证。

http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html