gpt4 book ai didi

aws-lambda - 特定用户的 IP 地址限制 - AWS/Cognito/IAM/API Gateway

转载 作者:行者123 更新时间:2023-12-02 20:25:57 25 4
gpt4 key购买 nike

我正在使用 API Gateway 和 Lambda 构建无服务器 Web 应用程序,这将 Cognito 和 IAM 限制对注册用户的 API 调用。我们有个人/企业用户,希望对特定企业用户设置额外的访问限制。

所以有如下的用户组。

  • 个人用户可以从任何地方访问
  • A 公司用户只能从网络 A 访问
  • B 公司用户只能从网络 B 访问
  • C 公司用户可以从任何地方访问

控制此访问限制的有效方法是什么?

最佳答案

有多种方法可以做到这一点。

方法 1

一种方法是为每个用户创建多个具有 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"
]}}
}
}

注意:您需要使用 IAM 策略授予对 API 网关端点的访问权限。

方法 2

另一种方法是为每个公司保留多个用户池,并与不同的 Cognito 联合身份池链接,这些联合身份池与具有 IP 过滤的 IAM 策略链接。在 API 网关上,您可以类似地使用 IAM 授权方。

方法 3

另一种方法是使用 AWS 自定义授权程序,并在查看 Cognito ID token 并与公司匹配后根据传入请求的 IP 地址过滤请求(如果公司作为属性存储在 UserPool 中)。

注意:您需要使用Enhanced Request Authorizers访问带有 IP 信息的 header 。

关于aws-lambda - 特定用户的 IP 地址限制 - AWS/Cognito/IAM/API Gateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com