繁体   English   中英

通过AWS CLI使用Lambda时出现AccessDeniedException

[英]AccessDeniedException while using Lambda by AWS CLI

我正在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无权执行:资源上的iam:PassRole:阿尔恩:AWS:IAM :: 12345678:角色/λ-S3-执行角色

你能告诉我前进的道路吗? 谢谢!

为我解决了这个问题:用您在本教程前面创建的ARM:AWS:IAM替换--role参数。

我有同样的问题。 如果您看一下教程中的CLI参数,则IAM ID似乎是任意填写的。 它实际上是数字12345678。从您的最低代码段开始:-- --role arn:aws:iam::12345678:role/lambda-s3-execution-role \\ )。

为了解决这个问题,我必须在“创建执行角色”步骤中粘贴我之前在教程中创建的角色的ID。 在AWS中打开IAM服务,单击“角色,选择”权限”选项卡,然后复制您的角色ARN:

该图显示了角色ARN在AWS中的位置

使用您的凭据替换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 Command Line Tools: 安装AWS CLI

如果要获取,则You must specify a region. You can also configure your region by running "aws configure". You must specify a region. You can also configure your region by running "aws configure". 错误,您需要按照以下步骤配置终端配置文件: 配置AWS CLI

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM