この長い投稿で申し訳ありません!できるだけ短くするように最善を尽くしましたが、状況を明確に説明するために必要なすべての情報を入れたかった.
私の問題は、の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 officialProfile
、$jovo deploy --ask-profile officialProfile
(追加のパラメーターなしで) 両方のコマンドを問題なく実行できます。
ローカルからコードをデプロイするために、IAM ユーザーとしてログインして ASK プロファイルを作成しました。私が従った手順は次のとおりです。
- ask init -p officialProfile
- 雇用主が作成した IAM ユーザー資格情報 (E メールとパスワード) でログイン
- プロファイルが作成されたことを示す成功メッセージを受け取りました
いくつかの調査を行った後、ポリシーを作成し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 にデプロイしているときに、まだ同じエラーが発生します。
私の先輩は、ルートユーザーとして 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