2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LambdaからDynamoDBへのアクセス時にAccessDeniedExceptionと言われた

Last updated at Posted at 2023-02-21

概要

  • Lambda関数として用意していたDynamoDBへのGet/Postメソッドの実行時にエラーが出力された。
  • エラー内容は以下である。

An error occurred (AccessDeniedException) when calling the GetItem operation

  • これの解決方法を記載する。

目次

  1. エラーの内容
  2. 解決方法

1.エラーの内容

このエラーはGetメソッドのコールが失敗していることを表しています。

An error occurred (AccessDeniedException) when calling the GetItem operation

ただ、DynamoDBへのフルアクセス権限はIAMロールにポリシーを作成していたのですが、このエラーが出たので???となりました。

こういったエラーが出た時に、AWSの公式が解決方法を示してくれています。

Amazon DynamoDB テーブルにアクセスしようとしているときに表示される AccessDeniedException というエラーをトラブルシューティングする方法を教えてください。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/dynamodb-access-denied-exception/

上記の記事によると、今回のようにAccessDeniedExceptionというエラーに遭遇した場合、以下のような要因が考えられるそうです。

  • DynamoDB テーブルへのアクセスに使用した AWS Identity and Access Management (IAM) ロールに必要なアクセス許可がない。
  • DynamoDB テーブルへのアクセスが組織レベルで制限されている。
  • DynamoDB の Amazon Virtual Private Cloud (Amazon VPC) エンドポイントに関連付けられたポリシーにより、オペレーションが制限されている。
  • 多要素認証 (MFA) を有効にし、MFA を使用してサインインせずにテーブルにアクセスしようとした。
  • DynamoDB テーブルの保護に、カスタマーマネージドキーまたは AWS マネージドキーを使用している。

一番上が怪しいですけど、IAMロールでの権限の作成から、LambdaからDynamoDBへのフルアクセス権限のポリシーは設定済みです。

こりゃわからない・・・と思ってましたが、Lambda関数の許可ポリシーを確認すると、AmazonDynamoDBFullAccessのポリシーが添付できていませんでした。。。。ロールの設定だけしてたのが原因です。

2.解決方法

実際にLambda関数に以下のポリシーを設定していきます。
01.png
このポリシーはDynamoDBへのフルアクセス権限を表します。

02.png
実行ロールにある、AmazonDynamoDBFullAccessポリシーを紐づけたBeAbleToFullAccessFromLambdaToDynamoDBというロールを作成していたので、付与しました。

具体的には、以下の実行ロールの右側にある編集を押下し、
03.png
基本設定から既存のロールを選択後、保存を押下します。
04.png

これで、LambdaからDynamoDBへアクセスするための権限が付与されたので、エラーを解消できるはずです。

おわりに

  • 完全に備忘録ですね。
  • cliからも解決してみたい。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?