首先,确认 Lambda 和 DynamoDB 在相同的 AWS 区域内。然后,按照以下步骤操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:DeleteItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:AWS-区域-编号:AWS账户编号:table/表名"
]
}
]
}
const AWS = require('aws-sdk');
AWS.config.update({ region: 'AWS区域编号' });
exports.handler = async function(event, context, callback) {
const dynamodb = new AWS.DynamoDB.DocumentClient();
const params = {
TableName: '表名',
Key: {
'主键名': '主键值'
}
};
try {
const data = await dynamodb.get(params).promise();
console.log('Data:', data);
} catch (error) {
console.error('Error:', error);
}
};
通过上述步骤,您应该可以解决“AWS IAM - Lambda 到 DynamoDB 的访问被拒绝”的问题。