2016-08-23 82 views
1

我在AWS中創建了一個lambda函數,用於基於查找訪問資源。如何動態授予AWS Lambda函數訪問資源的權限?

例如:我想通過API網關爲客戶FOO查詢dynamoDB表FOO_BAR。

請求進來後,我確定了它的表FOO,這是必需的,我希望能夠將策略應用於當前的將允許訪問FOO_BAR表的lambda函數/會話。

我的問題是:爲使lambda函數能夠查詢表FOO_BAR,在創建lambda函數時配置的執行角色需要具有讀取權限,並且我不想授予對此角色的任何通配符訪問權限。

使用的API會經過一個自定義授權者,在這裏我應用了一個策略來訪問這些API;我也希望能讓我的lambda函數也繼承自定義授權者生成的策略。

您可以動態授予對lambda函數訪問資源的權限嗎?

謝謝!

回答

0

您的Lambda函數無法繼承您的自定義授權人的權限。

您可以在您的Lambda函數內授予權限或生成新的IAM憑證,並將這些憑證用於通過單獨的客戶機實例進行的DynamoDB調用。

我不確定您的方法是否爲通配符提供任何安全優勢。爲自己授予權限的功能具有完全相同的安全級別。

+1

感謝kixorz,我得出了相同的結論。就我而言,它通過apis訪問資源的時間過於昂貴,所以我實現了[STS](http://docs.aws.amazon.com/STS/latest/APIReference/Welcome .html),並允許根據生成的策略直接訪問資源。這可以減少Lambda函數內的上拉/拆卸時間。這對SQS等資源的訪問更有效。用戶1通過我們的api通過sts獲取一個令牌,並且該令牌只授予對他們資源的訪問權限。 – Brian

+0

非常好的解決方案! – kixorz

相關問題