我需要从另一个 AWS 账户的 lambda 连接到一个 AWS 账户中的 dynamoDB 表。目前,我正在尝试通过 Serverless Offline 连接到 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);
我想我在权限方面犯了一些错误,但我能够找出问题所在。请帮忙。
最佳答案
我认为前进的方向是创建一个可以访问该表的跨账户角色,然后让您的 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
关于amazon-web-services - 在不同的 AWS 账户中查询 Dynamodb - Serverless Framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156935/