0

很抱歉这篇冗长的帖子!我已尽力使其尽可能简短,但我想把我必须清楚地解释情况的所有信息。

我的问题与AWS Lambda function deployment使用有关JOVO CLI

每次我尝试将技能功能从本地部署到 Lambda 时,都会收到以下错误块。我不知道如何解决它。

$ jovo deploy -t lambda --ask-profile officialProfile

AccessDeniedException: User: arn:aws:iam::xxxxxxxxx:root is not authorized to perform: lambda:UpdateFunctionCode on resource: arn:aws:lambda:us-east-1:109918021270:function:sampleProjectNotes

但是我可以让$ jovo get alexaSkill --skill-id <Skill ID> --ask-profile officialProfileand $jovo deploy --ask-profile officialProfile(没有任何附加参数)命令运行没有任何问题。

为了从本地部署代码,我以 IAM 用户身份登录创建了一个 ASK 配置文件。以下是我遵循的步骤:

  1. 询问 init -p 官方简介
  2. 使用我的雇主创建的 IAM 用户凭据(电子邮件和密码)登录
  3. 收到成功消息,说明配置文件已创建

在做了一些研究之后,我在下创建了一个策略aws console并将以下 JSON 添加到其中。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:CreateRole",
            "iam:GetRole",
            "iam:AttachRolePolicy",
            "iam:PassRole",
            "lambda:AddPermission",
            "lambda:CreateFunction",
            "lambda:GetFunction",
            "lambda:UpdateFunctionCode",
            "lambda:UpdateFunctionConfiguration",
            "lambda:ListFunctions",
            "logs:FilterLogEvents",
            "logs:getLogEvents",
            "logs:describeLogStreams"
        ],
        "Resource": "*"
    }
}

然后将以下权限添加到我的 IAM 用户:

  • AWSLambdaFullAccess
  • AWSCodeDeployRoleForLamda
  • 以及我之前创建的上述策略

但没有任何工作。在将代码部署到 Lambda 时,我仍然遇到同样的错误。

我的前辈说,也许问题是我试图以 root 用户身份访问 AWS,我需要使用我用户的 ARN。我无法理解如何使用或配置它。

我收到了一封电子邮件邀请,用于登录 Alexa 控制台以构建技能。当我创建 时ASK profile,我使用相同的电子邮件地址和密码登录。这是一个root帐户吗?

同时,我找到了这篇文章。AWS Access Key ID也和AWS Secret Access Key我在一起。但是想确定我在做什么,因为ASK profile我已经创建了一个,如果这会导致任何进一步的问题。

到目前为止,我一直在从我的个人 AWS 根账户构建技能。这是我第一次使用 IAM 用户帐户。

更新:

根据@Paradigm的指示,当我尝试时ask deploy,出现以下错误:

Get Lambda ARN arn:aws:lambda:us-east-1:xxxxxxxx:function:sampleProjectNotes failure for custom/NA.
AccessDeniedException: User: arn:aws:iam::xxxxxxxx:root is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:us-east-1:xxxxxxxx:function:sampleProjectNotes
4

1 回答 1

1

您的 ASK CLI 似乎将 AWS 凭证用于您的个人账户,而不是您的公司账户。

您需要运行“ ask configure ”命令为您的officialProfile.

$ ask configure --profile officialProfile --aws-setup
于 2020-06-03T06:41:01.943 回答