2013-04-02 23 views
0

所以我有一個dynamodb表,我用iam控制檯在只讀訪問表的組中創建一個用戶。是否允許將dynamodb只讀用戶的密鑰公開?

在客戶端JavaScript中擁有此用戶私鑰有什麼問題,以便我可以對錶進行GET請求籤名並使用ajax從表中直接拉取?我的意思是,如果表中的所有信息都是公開可用的,那麼只讀訪問密鑰是否已知並不重要?

我知道我可以設置一個令牌自動售貨機,但我想知道只讀訪問一個表的整個內容是公開可用的,我可以繞過TVM而不在乎暴露私鑰嗎?

回答

0

你可能是DoS攻擊的受害者,這將是一種防禦的痛苦。

假設攻擊者獲取您的密鑰並開始發出大量請求:您可以讓所有讀取的單元消耗,這會給其他客戶端帶來問題。如果取消該令牌,則所有其他合法用戶也會遇到問題。最後,如果你有自動縮放,你可能會得到一個巨大的賬單。

+0

感謝您的洞察。使用臨時(即tvm生成的)鑰匙的情況下,這種情況也是可能的,其具有12小時的默認壽命? – user2237076

1

這實際上似乎是一個非常糟糕的主意。你應該在你的javascript和Dynamo之間實現一個web服務。這將提供一些好處:

  • 您將隱藏從最終用戶的數據庫憑據
  • 你將不得不在CORS策略控制服務器實際上允許跨域請求
  • 你將不得不控制驗證請求是否來自有效用戶,因此您應該將請求傳遞給Dynamo
  • 您可以以最方便在javascript中使用的方式將響應格式化爲客戶端
  • 您可以引入響應緩存,如果合適的話進一步減少Dynamo上的讀取
  • 您可以將數據庫交互邏輯放置在服務器上,以便維護/改進,並將更改部署到客戶端。
相關問題