【发布时间】:2017-11-12 15:15:55
【问题描述】:
我正在关注http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-upload-deployment-pkg.html 一起实现 lambda 和 S3 的教程
我添加了一个角色(IAM > Roles > lambda-s3-execution-role),它有AWSLambdaExecute的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:*"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::*"
}
]
}
此外,我已经将IAM用户设置为adminuser,并且可以像aws lambda list-functions --profile adminuser一样运行命令,但是当我运行以下命令时
aws lambda create-function \
--region us-east-2 \
--function-name CreateThumbnail \
--zip-file fileb://~/Deployment/build/distributions/lambdaDeployment.zip \
--role arn:aws:iam::12345678:role/lambda-s3-execution-role \
--handler CreateThumbnail.handler \
--runtime java8 \
--profile adminuser \
--timeout 10 \
--memory-size 1024
我遇到了一个错误:
调用 CreateFunction 操作时出错 (AccessDeniedException):调用 CreateFunction 操作时出错 (AccessDeniedException):用户:arn:aws:iam::12345678:user/testaccountyn is not authorized to perform:iam:PassRole在资源上:arn:aws:iam::12345678:role/lambda-s3-execution-role
你能告诉我前进的道路吗?谢谢!
【问题讨论】:
-
鉴于该错误消息,我认为您的用户
testaccountyn缺少iam:PassRole权限... -
嗨@MarkB 感谢您的回答,我很困惑,我怎么能添加 iam:PassRole 给用户,顺便说一句,我还在这个用户的权限中添加了 AWSLambdaExecute 策略。
-
您的用户有一个分配给它的策略,对吧?所以编辑该策略以添加
iam:PassRole。 -
感谢您的信息。尽管我添加了内联策略,但它仍然无法正常工作:{“版本”:“2012-10-17”,“声明”:[{“Sid”:“Stmt1497045163000”,“效果”:“允许”,“行动”:[“iam:PassRole”,“iam:ListInstanceProfiles”],“资源”:[“*”]}]}
-
检查角色的信任关系了吗?
标签: amazon-web-services amazon-s3 lambda