Я хотел бы знать, как получить доступ к управлению с помощью Gae - PullRequest
2 голосов
/ 08 ноября 2019

Есть ли способ автоматически контролировать доступ к определенному IP с помощью Google App Engine? Например, если к конечной точке API обращаются 10 раз за одну минуту, она не будет принимать запросы на этот IP-адрес.

Я понимаю, что GKE и GCE могут делать то же самое с Google Load Balancing и GOOGLE CLOUD ARMOR. Я хочу сделать это с помощью Google App Engine.

Ответы [ 3 ]

1 голос
/ 08 ноября 2019

Облачные конечные точки с App Engine - это решение.

  1. Вы можете настроить ESP для аутентификации клиентов Выбор метода аутентификации .

  2. Затем вы можете ограничить запрос APIдобавив квоту в ваш документ OpenAPI Настройка квот .

Это пример из официальной документации:

В следующем примере показанкак настроить расширение 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

Вы можете использовать более продвинутые методы Proof of Work для принудительного ограничения скорости без необходимости запоминания IP-адресов SO case .
0 голосов
/ 08 ноября 2019

Вы можете использовать Облачные конечные точки с App Engine . Вы можете разрабатывать, развертывать и управлять API-интерфейсами в любом бэкэнде Google Cloud с помощью облачных конечных точек.

Облачные конечные точки предоставляют квоты, которые позволяют вам контролировать скорость, с которой приложения могут вызывать ваш API. Установка квоты позволяет указать ограничения на использование, чтобы защитить ваш API от чрезмерного количества запросов от вызывающих приложений. Чрезмерные запросы могли быть вызваны простой опечаткой или неэффективно спроектированной системой, которая делает ненужные вызовы вашего API. Независимо от причины блокировка трафика из определенного источника, когда он достигает определенного уровня, необходима для общего состояния вашего API. Устанавливая квоту, вы гарантируете, что одно приложение не может негативно повлиять на другие приложения, использующие ваш API.

Вы также можете проверить Ограничение скорости для Apigee Edge

0 голосов
/ 08 ноября 2019

Я сам не пробовал, но, похоже, для этого есть API.

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

Чтобы программно создать правила брандмауэра для вашего приложения App Engine,Вы можете использовать методы apps.firewall.ingressRules в API администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...