簡體   English   中英

AWS API 網關到 Lambda 到 DynamoDB 通過 API 鍵限制數據

[英]AWS API Gateway to Lambda to DynamoDB restrict data by API key

我正在尋找創建一個連接到我的 DynamoDB 數據庫的 REST API 網關,但只輸出特定於連接的 API Key 的用戶的數據。

我似乎找不到任何關於如何根據連接的 API/用戶限制 DynamoDB 調用的信息。

我假設我需要創建另一個表/部分來管理每個 API 鍵允許查看哪些數據(ID)。

所以基本上我想要的是:

用戶向 REST API 發送 GET 以從 DynamoDB 數據庫中檢索與其設備 ID 相關的所有條目。

設備 ID:44DDTTRR

然后僅輸出該設備 ID 的數據。


問題是我不確定檢查 API 用戶是否有權訪問該設備 ID 的最佳位置在哪里,因為我不希望人們只能訪問所有設備,而只是那些附加到他們的 API 密鑰的設備.

API 網關

如果您使用的是 Cognito 用戶池,則可以使用 VTL 中的上下文 object 來構造您的 DynamoDB 查詢。 如果您將分區鍵設置為用戶的 email 或 Cognito 的子聲明,並將排序鍵設置為設備 ID,那么如果用戶提交了他們不擁有的設備 ID,DynamoDB 查詢結果將返回零結果。

如果您不使用 Cognito,則可以使用 API 網關授權者 Lambda 達到相同的效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM