Die DR REST API-Ratenbegrenzung ist ein Mechanismus zum Verwalten der Risiken von API-Ressourcenauslastung und Brute-Force-Angriffen.
Ebene | Beschreibung | Konfiguration | Standardwert |
---|---|---|---|
IP address | Berücksichtigt Anforderungen pro IP-Adresse. | ipRateLimitQuota | 100 |
ipRateLimitWindow | 60 000 in ms (1 Min.) | ||
Service | Berücksichtigt Anforderungen pro DR REST API-Dienstname. In der DR REST API gibt es drei Dienstnamen: srm, vr und configure. „srm v1“ und „srm v2“ haben denselben Dienstnamen wie „srm“. | serviceRateLimitQuota | 1.000 |
serviceRateLimitWindow | 60 000 in ms (1 Min.) | ||
Session | Berücksichtigt Anforderungen pro Sitzung. | sessionRateLimitQuota | 50 |
sessionRateLimitWindow | 60 000 in ms (1 Min.) | ||
n/a | Regelmäßiges Bereinigen veralteter Datenstrukturen für die Anforderungsratenbegrenzung, um den Fingerabdruck des Arbeitsspeichers zur Laufzeit zu reduzieren. Der Wert 0 (Null) bedeutet, dass überhaupt keine Bereinigung durchgeführt wird. | rateLimitLogPurgeInterval | 7 200 000 in ms (2 Std.) |
Die DR REST API-Ratenbegrenzung besteht aus drei Ebenen, die in einer Kette arbeiten, um die eingehenden Anforderungen anhand der Kriterien der jeweiligen Ebene zu begrenzen. Wenn die Kriterien der Ebene erfüllt sind, wird sofort eine Anforderungsantwort zurückgegeben, wodurch der Rest der Ebenenkette übersprungen wird. Die Kette der DR REST API-Ratenbegrenzung besteht aus IP-Adresse, Dienst, Sitzung in dieser Reihenfolge.
Sie ändern die Dr REST API-Ratenbegrenzungskonfiguration, indem Sie die Werte der angegebenen Eigenschaften in der Datei dr-rest-api.properties hinzufügen oder aktualisieren. Die Datei befindet sich im Ordner /opt/vmware/dr-rest/lib/. Wenn eine Eigenschaft der Ratenbegrenzung nicht explizit in der Konfigurationsdatei dr-rest-api.properties der DR REST API definiert ist, verwendet die Ratenbegrenzung den Standardwert. Um einen Konfigurationswert vorzudefinieren, fügen Sie die entsprechende Konfiguration hinzu, falls sie fehlt, und legen Sie den erforderlichen Wert fest. Die aktualisierten Werte werden wirksam, wenn ein neues Ratengrenzwertfenster beginnt.
Beispiel der Datei dr-rest-api.properties
... ipRateLimitQuota=100 ipRateLimitWindow=60000 serviceRateLimitQuota=1000 serviceRateLimitWindow=60000 sessionRateLimitQuota=50 sessionRateLimitWindow=60000 rateLimitLogPurgeInterval=0 ...
HTTP-Antwort
- RateLimit-Limit – das Serverkontingent für Anforderungen des Clients im Zeitfenster.
- RateLimit-Remaining – das verbleibende Kontingent im aktuellen Fenster.
- RateLimit-Reset – die verbleibende Zeit im aktuellen Fenster, angegeben in Millisekunden.
429 Too Many Requests
und die Kopfzeile RateLimit-Remaining 0 (null). DR REST API-Antworten enthalten Ratengrenzwert-Kopfzeilen aus der letzten Ratengrenzwertebene, die die Clientanforderung verarbeitet hat.
Best Practices für die Festlegung der optimalen Ratengrenzwert-Konfiguration
Bei der Einrichtung der optimalen Ratengrenzwert-Konfiguration müssen verschiedene Faktoren berücksichtigt werden.
- Beginnen Sie mit den Standardwerten der Ratenbegrenzungskonfigurationen.
- ipRateLimitQuota, ipRateLimitWindow, serviceRateLimitQuota, serviceRateLimitWindow, sessionRateLimitQuota, sessionRateLimitWindow
- rateLimitLogPurgeInterval
- Überwachen Sie Anforderungsantworten mit Fehlercode
429 Too Many Requests
und ergreifen Sie entsprechende Maßnahmen.- Warten Sie auf das nächste Ratengrenzwertfenster und wiederholen Sie die Anforderungen, für die eine Ratenbegrenzung gilt.
- Verringern Sie die Anforderungsintensität auf der Clientseite.
- Aktualisieren Sie die Konfigurationen für Ratengrenzwerte. Erhöhen Sie die zugehörige Konfiguration RateLimitQuota und oder verringern Sie die zugehörige Konfiguration RateLimitWindow.
- Analysieren Sie die Antwortheader RateLimit-Limit, RateLimit-Remaining und RateLimit-Reset und ergreifen Sie entsprechende Maßnahmen.
- Ändern Sie die Anforderungsintensität auf der Clientseite in die erforderliche Richtung.
- Aktualisieren Sie die Konfigurationen für Ratengrenzwerte in die erforderliche Richtung.