【发布时间】:2021-11-03 08:56:53
【问题描述】:
我有一个使用 Cognito 用户池进行身份验证的 AWS API 网关。我想对谁可以访问哪些端点实施细粒度控制。
这是我的要求:
提出请求的用户charlie:
/api/charlie/board/1 -> 允许
提出请求的用户daisy:
/api/charlie/board/1 -> 拒绝
charlie 和 daisy 这里是 Cognito 用户名(我可以从 JWT 中提取)。
我正在考虑两种方法来实现这一点:
-
通过编写自定义 Lambda 授权器(类似于:https://aws.amazon.com/blogs/security/building-fine-grained-authorization-using-amazon-cognito-api-gateway-and-iam/)。
-
我的 API 网关由 Lambda 函数支持。我是否应该在每个 lambda 函数中执行此授权。我可以从 Bearer 令牌中提取 Cognito 用户名,从路径变量中提取请求的资源用户名。
我倾向于实施 #2。有没有更好的方法来做到这一点?
【问题讨论】:
标签: amazon-web-services authorization aws-api-gateway amazon-cognito