Wie behebe ich den Fehler „PackedPolicyTooLarge“, wenn ich eine IAM-Rolle über AWS STS übernehme?
Ich habe versucht, eine Rolle in AWS Identity and Access Management (IAM) über den AWS Security Token Service (AWS STS) zu übernehmen und habe den Fehler „PackedPolicyTooLarge“ erhalten.
Kurzbeschreibung
Wenn du über AWS STS eine IAM-Rolle übernimmst, erhältst du möglicherweise die Fehlermeldung PackedPolicyTooLarge mit einem der folgenden Details:
-
Packed size of session tags consumes n% of allotted space.
-
Packed policy consumes n% of allotted space, please use smaller policy.
Hinweis: Die Variable n steht für den Prozentsatz des genutzten Speicherplatzes im Limit PackedPolicySize.
In STS kannst du die folgenden Arten von Parametern übergeben, wenn du die IAM-Rolle übernimmst:
- Richtlinien für Inline-Sitzungen
- Verwaltete Richtlinie Amazon-Ressourcennamen (ARNs)
- Sitzungstags
STS speichert die Daten zu den Sitzungstags, Inline-Richtlinien und ARNs von verwalteten Richtlinien innerhalb des AWS-Sitzungstokens. Alle diese Daten werden auf das Limit für die PackedPolicySize angerechnet.
Hinweis: Vom Kunden verwaltete Richtlinien müssen sich in demselben AWS-Konto befinden wie die IAM-Rolle, die du übernimmst.
Wenn du Sitzungstags, Inline-Sitzungsrichtlinien und ARNs für verwaltete Richtlinien übergibst, erhöhst du die Größe eines Sitzungstokens. Es gilt jedoch ein Limit für die Token-Größe, unabhängig von der Anzahl der Kontingente für Sitzungstags und Sitzungsrichtlinien, die du verwendest. Der Fehler „PackedPolicyTooLarge“ tritt auf, weil du das Limit überschritten hast.
Inline-Sitzungsrichtlinien und Sitzungstags werden serialisiert und im Sitzungstoken komprimiert. Infolgedessen kannst du möglicherweise nicht bestimmen, wie viel der PackedPolicySize verwendet wird, bevor du den API-Aufruf AssumeRole an STS tätigst. Außerdem gibt es für das komprimierte Binärformat ein separates Größenlimit. Deine Anfrage kann aufgrund dieses Limits fehlschlagen, selbst wenn dein Klartext die anderen Anforderungen erfüllt.
Hinweis: Die AWS CloudTrail-Protokolle für AssumeRole, AssumeRoleWithSAML und AssumeRoleWithWebIdentity zeigen die PackedPolicySize an. Außerdem gibt die AWS-API als Teil der Antwort den Prozentsatz der PackedPolicySize zurück, der in der Anfrage verwendet wird.
Lösung
Reduziere die Länge der Inline-Sitzungsrichtlinie oder der Sitzungstags (Schlüssel und Werte), die du an STS übergibst, wenn du eine Rolle übernimmst. In den folgenden Abschnitten findest du Möglichkeiten, die Daten für Sitzungstags und Inline-Sitzungsrichtlinien einzuschränken.
Sitzungstags
- Verkürze die Schlüssel oder Werte der Sitzungstags. Sitzungstags werden normalerweise für die attributbasierte Zugriffskontrolle (ABAC) verwendet. Um deinen Richtlinien-Speicherplatz für ABAC effektiv zu nutzen, füge in Sitzungstags nur die Informationen ein, die für die Autorisierung von Entscheidungen erforderlich sind.
- Ersetze bei Sitzungstags für Zwecke, die nicht mit ABAC in Verbindung stehen, wie z. B. Prüfungsinformationen, die Datensätze in den Sitzungstags durch Verweise auf ein externes Aufzeichnungssystem.
- Verwende für alle Tag-Schlüssel und -Werte eine konsistente Groß- und Kleinschreibung. Sitzungstoken speichern komprimierte Tag-Schlüssel und -Werte, und Komprimierungsalgorithmen funktionieren am besten, wenn du eine einheitliche Groß- und Kleinschreibung verwendest.
- Wenn du Identitätsinformationen in Sitzungstags ablegst, empfiehlt es sich, diese in eine SourceIdentity zu verschieben, für die ein separates Kontingent gilt.
Richtlinien für Inline-Sitzungen
- Entferne Statement-ID (Sid)-Elemente aus den Sitzungsrichtlinien. Sid ist ein optionales Element in den Sitzungsrichtlinien.
- Verwende, wo dies angebracht ist, Platzhalterzeichen, um IAM-Aktionen und Ressourcen-ARNs zu verkürzen.
- Übergib verwaltete Richtlinien-ARNs anstelle eines Richtliniendokuments. Der ARN der verwalteten Richtlinie ist ein Verweis auf eine Richtlinie, und diese Aktion beansprucht weniger Platz innerhalb des Tokens. Du kannst sowohl verwaltete Richtlinien als auch eine Sitzungsrichtlinie übergeben.
- Um Richtlinien zu erstellen, die nur bedingten Zugriff gewähren, verwende Sitzungstags mit verwalteten Richtlinien oder Inline-Richtlinien, die an die Rolle angehängt sind.
Weitere Informationen
Wie behebe ich den AWS STS AssumeRoleWithWebIdentity API-Aufruffehler „InvalidIdentityToken“?
Wie kann ich API-Drosselungs- oder „Rate exceeded“-Fehler bei IAM und AWS STS beheben?
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr