2016-08-23 92 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

相关问题