LambdaからDynamoDBへのアクセスが拒否されたら

私のようなAWS初心者がLambdaを使い始めると、こんな風↓にLambdaからDynamoDBへのアクセスが拒否されることがある。

エラー文が画像では見にくいので書き下したものが次である。

An error occurred (AccessDeniedException) when calling the GetItem operation

LambdaからDynamoDBにある情報を取得しようとしたらアクセスが拒否された、というエラー内容だ。

私の場合、次のようにしたらアクセスできるようになった。


AWSコンソールでLambdaの画面を開き、「実行ロール」の「ロール名」に表示されているリンクをクリックする。

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

ポリシーのフィルタの検索窓に dynamodb と書くと、DynamoDBに関するアクセス権限が一覧表示される。

製品を開発するときは本当はLambdaからDynamoDBへのどんな操作を許可するのかをきちんと考えて、

それに合う権限のみを付与すべきなんだけど、

まだAWS入門者で練習として実装している私はここでは

AmazonDynamoDBFullAccess(訳:DynamoDBに何でもできちゃう)

にチェックを入れ、「ポリシーのアタッチ」ボタンをクリックした。

良い子のみんなは真似しちゃだめだぞ。

次の画面のようにきちんとポリシーが追加されたことを確認する。

ここまでできたらLambdaからDynamoDBにアクセスできるようになっているはずなので、

Lambdaの「テスト」などで処理を実行して確認してみよう。

コメントする