Amazon web services AWS CLI使用Lambda时的AccessDeniedException
我将在下面的教程中一起实现lambda和S3 我添加了一个角色(Amazon web services AWS CLI使用Lambda时的AccessDeniedException,amazon-web-services,amazon-s3,lambda,Amazon Web Services,Amazon S3,Lambda,我将在下面的教程中一起实现lambda和S3 我添加了一个角色(IAM>Roles>lambda-s3-execution-role),它具有策略AWSLambdaExecute: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:*" ], "Resource": "arn:aws:logs:*:*:*"
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函数的命令--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无权对资源执行:iam:PassRole:arn:aws:iam::12345678:role/lambda-s3-execution-role
你能给我指一条前进的路吗?谢谢 为我解决了这个问题:用您在本教程前面创建的ARM:AWS:IAM替换您的--role
参数。
我也有同样的问题。如果查看教程中的CLI参数,IAM ID似乎是任意填写的;实际上是12345678。从下面的代码片段:--角色arn:aws:iam::12345678:role/lambda-s3-execution-role\
)
为了解决这个问题,我必须在创建执行角色步骤中粘贴我在本教程前面创建的角色的ID。在AWS中打开IAM服务,单击“角色”,选择“权限”选项卡,然后复制您的角色ARN:
将aws lambda create function
命令中的arn:aws:iam:12345678..
行替换为您的凭据。最后一个命令应该类似于:
$ aws lambda create-function --function-name CreateThumbnail \
--zip-file fileb://function.zip --handler index.handler --runtime nodejs8.10 \
--timeout 10 --memory-size 1024 \
--role REPLACE:THIS:WITH:YOUR:ROLE:ARN
那就够了!希望它能为其他人节省一些时间
此外,如果运行上述命令时出现aws:command not found
错误,则需要按照以下步骤安装aws命令行工具:
如果你得到一个
,你必须指定一个区域。您还可以通过运行“aws配置”来配置您的区域。
error,您需要按照以下步骤配置您的终端配置文件:。鉴于此错误消息,我认为您的用户testaccountyn
缺少iam:PassRole
权限…您好@MarkB谢谢您的回答,我已经不再困惑了,如何将iam:PassRole添加到用户,我还为此用户的权限添加了AWSLambdaExecute策略。顺便说一句,您的用户已为其分配了策略,对吗?因此,请编辑该策略以添加iam:PassRole
。感谢提供信息。尽管我添加了一个内联策略:{“Version”:“2012-10-17”,“Statement”:[{“Sid”:“Stmt1497045163000”,“Effect”:“Allow”,“Action”:[“iam:PassRole”,“iam:ListInstanceProfiles”],“Resource”:[“*”]}]}您是否检查了角色的信任关系?