Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS CLI使用Lambda时的AccessDeniedException_Amazon Web Services_Amazon S3_Lambda - Fatal编程技术网

Amazon web services AWS CLI使用Lambda时的AccessDeniedException

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:*:*:*"

我将在下面的教程中一起实现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函数的命令--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”:[“*”]}]}您是否检查了角色的信任关系?