假设我有这个用例,允许用户从某个dynamodb表中读取getObject和putObject权限。
以下项目我已经能够建立 - : 1.用户通过认证用户池进行身份验证 2.成功验证后,访问令牌发送到API网关 3.自定义身份验证蓝图用于验证和生成策略文档
现在我无法理解的是在哪里以及如何提及表/ S3权限细节。
我浏览了以下文档/博客
https://aws.amazon.com/blogs/compute/introducing-custom-authorizers-in-amazon-api-gateway/
http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html
但是,我仍然对使用自定义身份验证lambda创建的策略文档的方式和时间感到困惑?并且对该流程的澄清将受到高度赞赏。
答案 0 :(得分:1)
我们实际上刚刚启动了对Cognito用户池的本机支持,这将验证Cognito出售的JWT。然而,这只会做一个简单的ALLOW / DENY决定(允许令牌有效),因此没有细粒度权限的概念。
对于自定义授权程序,您生成的策略将被缓存,并且可以应用于整个RestApi(或使用相同授权程序的所有方法)。该策略允许您像使用IAM用户/角色一样设置细粒度权限。
一个用例是基于组的权限设置,其中自定义授权者确定调用者是谁,并在对第一个API调用的响应中分配组策略(例如admin,readonly,blocked等)令牌。这些策略将为API中的特定资源/方法设置细粒度的权限。然后,在对该共享中的任何其他资源/方法的后续API调用中,将应用组策略。
所以好处是: