登录
首页 >  Golang >  Go问答

GAE访问控制的使用方法有哪些?

来源:stackoverflow

时间:2024-03-14 21:54:26 150浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《GAE访问控制的使用方法有哪些?》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

有没有办法使用 Google App Engine 自动控制对特定 IP 的访问? 例如,如果一个 API 端点在一分钟内被访问 10 次,它将不会接受对该 IP 地址的请求。

据我所知,GKE 和 GCE 可以通过 Google 负载平衡和 GOOGLE CLOUD ARMOR 执行相同的操作。我想使用 Google App Engine 来完成此操作。


解决方案


使用 app engine 的云端点是一种解决方案。

  1. 您可以设置 esp 对客户端 Choosing an Authentication Method 进行身份验证。

  2. 然后您可以通过向 openapi 文档 Configuring quotas 添加配额来限制 api 请求。

这是官方文档中的示例:

以下示例显示如何配置 x-google-quota 扩展在 路径部分:

x-google-management:  
 metrics:
# Define a metric for read requests.
 - name: "read-requests"
   displayName: "Read requests"
   valueType: INT64
   metricKind: DELTA   quota:
 limits:
   # Define the limit or the read-requests metric.
   - name: "read-limit"
     metric: "read-requests"
     unit: "1/min/{project}"
     values:
       STANDARD: 1000 paths:   "/echo":
 post:
   description: "Echo back a given message."
   operationId: "echo"
   produces:
   - "application/json"
   responses:
     200:
       description: "Echo"
       schema:
         $ref: "#/definitions/echoMessage"
   parameters:
   - description: "Message to echo"
     in: body
     name: message
     required: true
     schema:
       $ref: "#/definitions/echoMessage"
   x-google-quota:
     metricCosts:
       "read-requests": 1
   security:
   - api_key: []

您可以找到有关OpenAPI extensions 的更多信息

  1. 您可以使用一些更高级的技术 Proof of Work 来实施速率限制,而无需记住 ip 地址 SO case

我自己没有尝试过,但看起来有一个 api 可以做到这一点。

https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.firewall.ingressRules

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>