rhy*_*thm 2 amazon-iam amazon-cognito aws-lambda aws-api-gateway
我正在使用 API Gateway 和 Lambda 构建一个无服务器 Web 应用程序,它限制 Cognito 和 IAM 对注册用户的 API 调用。我们有个人/企业用户,希望对特定企业用户设置额外的访问限制。
所以就有了如下的用户组。
控制这种访问限制的有效方法是什么?
做这件事有很多种方法。
方法一
一种方法是为每个用户创建多个具有 IP 限制的 IAM 策略,并允许他们使用 AWS Cognito 联合身份来假设这些用户并在 API Gateway 上使用 IAM 授权者。您可以将公司设置为属性,并在映射 IAM 策略的 Cognito 联合身份中创建规则。例如,检查以下 IAM 策略。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {"NotIpAddress": {"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]}}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您需要使用 IAM 策略授予对 API 网关终端节点的访问权限。
方法2
另一种方法是为每个公司保留多个用户池,并与不同的 Cognito 联合身份池链接,这些联合身份池与具有 IP 过滤的 IAM 策略链接。在 API 网关上,您可以类似地使用 IAM 授权方。
方法3
另一种方法是使用 AWS 自定义授权程序,并在查看 Cognito ID 令牌并与公司匹配后根据传入请求的 IP 地址过滤请求(如果公司作为属性存储在 UserPool 中)。
注意:您需要使用增强型请求授权器来访问包含 IP 信息的标头。
| 归档时间: |
|
| 查看次数: |
4951 次 |
| 最近记录: |