Im Mai 2024 hat Amazon Web Services (AWS) eine bedeutsame Änderung in der Preisgestaltung von Cognito Machine-to-Machine (M2M) Authentifizierungen eingeführt, die für viele Unternehmen unerwartete finanzielle Auswirkungen mit sich bringen kann. Während klassische Benutzer-Authentifizierungsflüsse von diesen Preisänderungen unberührt bleiben, sind insbesondere die sogenannten Client Credential Grant Flows betroffen. Dieser Schritt führt dazu, dass künftig Kosten für die Anzahl der Tokenanfragen pro Monat sowie für die Anzahl der App-Clients pro Monat berechnet werden. Diese Neuerung markiert eine spürbare Abkehr von der bisherigen, kostenfreien Nutzung dieser Authentifizierungsart und stellt Unternehmen vor neue Herausforderungen bei der Kostenkontrolle und bei der technischen Umsetzung ihrer M2M-Lösungen. Es gibt jedoch eine 12-monatige Kulanzfrist für Bestandskunden, die Zeit bietet, Strategien zur Anpassung zu entwickeln.
Die Preisänderungen zielen laut AWS darauf ab, die hohe Nachfrage besser bedienen und die Funktionalitäten im Bereich der M2M-Authentifizierung weiter ausbauen zu können. Viele Unternehmen sehen diesen Schritt als notwendige Investition in die Zukunft der Dienste, andere befürchten eine Kostenexplosion, die sie zum Umdenken zwingt oder gar zum Wechsel zu anderen Anbietern zwingt. Um die Auswirkungen der Änderungen zu verstehen, ist es wichtig, das Konzept der Machine-to-Machine Authentifizierung zu erfassen. M2M beschreibt Authentifizierungsprozesse zwischen nicht-menschlichen Entitäten wie Anwendungen, Diensten oder Geräten, die ohne Benutzerinteraktion sicher miteinander kommunizieren müssen. Ein alltägliches Beispiel ist etwa ein Lagerverwaltungssystem, das automatisch Logistikaufträge an externe Dienstleister übermittelt.
Dabei authentifiziert sich das System gegenüber dem API-Endpunkt des Lieferanten mithilfe von OAuth 2.0 Client Credential Grant. Das System nutzt für die Authentifizierung einen Client-ID und ein Client-Secret, um vom Identitätsanbieter – wie AWS Cognito – ein JWT-Zugriffstoken zu erhalten. Dieses Token dient anschließend als Nachweis bei API-Anfragen, dass der Client legitimiert ist und die gewünschten Aktionen ausführen darf. Durch die Einführung der neuen Preisstruktur für diese M2M-Szenarien werden nun jede Tokenanfrage und jeder registrierte App-Client in Cognito monetarisiert.
Die Beispielrechnung von AWS für den Standort Stockholm verdeutlicht, wie schnell sich die Kosten summieren können: Bei etwa 900.000 Tokenanfragen pro Monat und 200 App-Clients ergeben sich durchschnittlich rund 4.500 Tokenanfragen pro Client im Monat oder knapp über sechs pro Stunde. Allein diese Nutzung könnte zu monatlichen Zusatzkosten von bis zu 2.500 US-Dollar führen, was viele Unternehmen vor finanzielle Herausforderungen stellt.
Eine der wichtigsten Strategien zur Kostensenkung liegt in der optimalen Anpassung der Lebensdauer von Access Tokens. Cognito setzt standardmäßig eine Token-Laufzeit von 60 Minuten, was zu häufigen Tokenanfragen führt. Eine Erhöhung der Token-Lebensdauer auf das Maximum von 24 Stunden reduziert die Anzahl der Tokenanforderungen drastisch und damit auch die monatlichen Kosten für den Dienst. Aber diese Maßnahme bringt auch Risiken mit sich. Längere Token-Lebensdauern vergrößern das Risiko von Missbrauch, da ein gestohlenes Token länger gültig bleibt.
Zudem ist in AWS Cognito keine Möglichkeit vorgesehen, einzelne Access Tokens zu widerrufen. Das bedeutet, dass ein einmal ausgestelltes Token bis zu seinem Ablauf genutzt werden kann, was gerade im Kontext von erweiterten Gültigkeitszeiten Sicherheitsbedenken aufwirft. Neben der Verlängerung der Token-Laufzeit empfiehlt sich die Implementierung von Caching-Mechanismen, um die Zahl der direkten Anfragen an den Cognito Token-Endpunkt zu reduzieren. Das Caching kann sowohl serverseitig als auch clientseitig realisiert werden. Auf der Serverseite bietet sich beispielsweise die Proxy-Funktionalität des AWS API Gateway an, das mit aktivierter Zwischenspeicherung als Cache für Tokens fungieren kann.
Dieser Ansatz verhindert, dass für jede Anfrage an einen Dienst gleich ein neuer Token von Cognito angefordert werden muss. Die Einrichtung erfordert allerdings manuelle Konfiguration und zusätzliche Kosten für die API Gateway Cache-Ressourcen, die etwa 14 US-Dollar pro Monat betragen. Der Vorteil ist, dass bei hoher Anfragerate die Gesamtzahl der Tokenanfragen und damit die Kosten gesenkt werden. Auf der Clientseite kann ebenfalls Caching genutzt werden, um die Anzahl der Tokenanforderungen an den Server weiter zu reduzieren. Hierbei sind die jeweiligen organisatorischen Rahmenbedingungen und Kontrollmöglichkeiten entscheidend.
In Umgebungen, in denen der Client großen Einfluss auf die Anwendungsentwicklung hat, bringen Implementierungen wie Redis, ElastiCache oder DynamoDB Vorteile. Darüber hinaus können auch Ansätze zur lokalen Zwischenspeicherung von Daten helfen, die Notwendigkeit für häufige API-Anfragen zu verringern und so indirekt ebenfalls Kosten senken. Eine zentrale Aufgabe bei der Identifikation von Einsparpotenzialen ist zunächst die genaue Erfassung und Analyse des Tokenverbrauchs. AWS stellt hierfür Metriken in CloudWatch bereit, die etwa die Anzahl erfolgreicher Tokenaktualisierungen ausweisen. Diese Daten ermöglichen es Unternehmen, eine belastbare Kostenanalyse durchzuführen und zu kalkulieren, ob der Aufwand für Optimierungen wirtschaftlich sinnvoll ist.
Besonders in größeren Organisationen mit vielen AWS-Konten kann es eine Herausforderung sein, diese Daten vollständig zu erfassen. Eine Option ist der Einsatz von AWS Config Advanced Queries, um systematisch alle User Pool App Clients aufzuspüren, die den client_credentials OAuth-Flow nutzen und damit für die neue Abrechnung relevant sind. Diese Abfragen helfen auch, die Anzahl der App Clients zu ermitteln, welche potenziell Kosten verursachen. Für viele Kunden bedeutet die neue Cognito Preisgestaltung also, dass bisher kostenlose M2M-Authentifizierungen zu einem signifikanten Kostenfaktor werden können. Gerade Serviceprovider, die zahlreiche Microservices mit vielen Clients bedienen, sehen sich schnell mit fünfstelligen US-Dollar-Beträgen pro Monat konfrontiert.