[AWS]User: arn:aws:sts〜is not authorized to perform: dynamodb:Scan on resource〜と出る時の対応

原因はDynamoDBを操作する権限がないことです。

対応方法

ロールにDynamoDBを操作するポリシーをアタッチします。

横文字ばかりで「日本語でおk」状態ですのでポリシーをアタッチするまでの画面遷移を載せます。

僕の場合はLambda関数の実行時に出たので、Lambda関数にDynamoDBのポリシーをアタッチする操作での説明となります。

ロール画面に遷移

Lamdba>関数>該当の関数をクリックし、開いた画面で設定タブをクリックしてください。

その後、ロール名に表示されているリンクをクリックします。

※ receiving_ordersというのは僕が作っていた関数名なので適宜読み替えてください。

ポリシーアタッチ画面に遷移

「ポリシーをアタッチします」ボタンをクリックします。

DynamoDBのポリシーをアタッチ

ポリシーのフィルタでDynamoDB関連のもので絞り込んで「AmazonDynamoDBFullAccess」をアタッチします。

意点

説明のためにフルアクセスのポリシーにしていますが、フルアクセスは強い権限であり、ちゃんと理解していないと意図していないことまで実行できるようになってしまいます。

ちゃんと運用しようとするなら「ポリシーの作成」からできることを絞ったポリシーを作成してアタッチしてください。

アタッチ後

アタッチされていることが確認できます。

ここまででエラーが解消されると思いますので再度実行してみてください。

コメント