当我们在部署 AWS Lambda 函数时可能会遇到权限不足的问题,这是因为我们没有配置该 Lambda 函数所需要的 IAM 角色,以及给予 Lambda 函数所需要的权限。
下列是一个可能的解决方案,以调用 Lambda 函数时访问 S3 存储桶为例:
{
"Statement": [
{
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "arn:aws:logs:::*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:::log-group:/aws/lambda/:*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::/*"
]
}
],
"Version": "2012-10-17"
}
注:请将上述代码中的
运行 Lambda 函数时,Lambda 环境会将您的代码作为 AWS 账户下的 Lambda 函数执行。 因此,在部署 Lambda 函数之前,我们应该确保为执行 Lambda 函数所需的 AWS 资源配置了 IAM 角色。