7

我試圖從部署在AWS ElasticBeanStalk我節點應用程序訪問DynamoDB。我收到「用戶無權執行:dynamodb:PutItem資源」錯誤AWS DynamoDB問題:用戶無權執行:dynamodb:PutItem資源

這工作完全正常本地,只有當我部署到它停止執行AWS。

任何人都知道修復?提前致謝!

+0

代碼: 'AccessDeniedException異常', 的StatusCode:400, –

回答

2

檢查您正在使用連接到DynamoDB在AWS上的節點應用的訪問鍵。此訪問密鑰將屬於在IAM中不具有必需權限的用戶。所以,找到IAM用戶,創建或更新適當的策略,你應該很好。

對於青苗當你發佈你需要設置用戶策略。退房the official docs here

並檢查了the example from here too,@Tirath國王的禮貌。

+0

相同的訪問重點工作完全在本地。我也創建了一個類似的用戶,具有類似的權限,甚至沒有工作 –

+0

您是否在本地開發中使用dynamodb-local?您是否將密鑰硬編碼到應用程序中?還是你從環境中獲得它們?如果它們不是硬編碼的,請嘗試明確硬編碼。看看你是否可以驗證密鑰和祕密是否完全符合你的期望。其他操作,如GetItem等? – smcstewart

+0

目前它的硬編碼在〜/ .aws/credentials文件中..我還沒有嘗試從應用程序getItem ..但我試過它在同一臺機器的命令行上,我能夠得到所有的項目數據庫 –

8

dynamoDB訪問被拒絕通常是一個策略問題。檢查您正在使用的IAM /角色策略。快速檢查是要在AWS控制檯「權限」選項卡添加

AmazonDynamoDBFullAccess 

政策的作用。如果它在那之後有效,那麼這意味着您需要創建一個正確的訪問策略並將其附加到您的角色。

+0

儘管'AmazonDynamoDBFullAccess'應該可以工作,但最好只爲您希望調用的函數授予權限,在本例中爲'dynamodb:PutItem'。這可以幫助避免意外的通話和後果。 [這裏](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/api-permissions-reference.html)是可能的權限的完整列表。 –

+1

@DanSalo閱讀海報的評論,我想他是說要添加FullAccess來看看是否解決了這個問題。如果確實如此,那麼您知道這是一個權限問題,然後可以適當調整您的權限。 – Thom

相關問題