Wie kann ich vermeiden, dass ein PackedPolicyTooLarge-Fehler angezeigt wird, wenn ich über AWS STS eine IAM-Rolle übernehme?

Lesedauer: 3 Minute
0

Ich möchte über den AWS Security Token Service (STS) eine AWS Identity and Access Management (IAM)-Rolle übernehmen, ohne einen PackedPolicyTooLarge-Fehler zu generieren.

Kurzbeschreibung

Wenn Sie über STS eine IAM-Rolle übernehmen, erhalten Sie möglicherweise eine PackedPolicyTooLarge-Fehlermeldung mit einer der folgenden Angaben:

  • Die gepackte Größe der Sitzungstags beansprucht n % des zugewiesenen Speicherplatzes.
  • Die gepackte Richtlinie beansprucht n % des zugewiesenen Speicherplatzes. Bitte verwenden Sie eine kleinere Richtlinie.
    Hinweis: n steht für den Prozentsatz des in der PackedPolicySize verwendeten Speicherplatzes.

Mit STS können Sie die folgenden Arten von Sitzungstags übergeben:

  • Richtlinien für Inline-Sitzungen
  • Verwaltete Richtlinie Amazon-Ressourcennamen (ARNs)
  • Vom Kunden verwaltete Richtlinien-ARNs, wenn Sie eine IAM-Rolle übernehmen.

STS speichert die Daten zu den Tags, Richtlinien und ARNs im AWS-Sitzungstoken. All diese Daten werden auf das PackedPolicySize-Limit angerechnet.

Hinweis: Vom Kunden verwaltete Richtlinien müssen sich in demselben AWS-Konto befinden wie die IAM-Rolle, die Sie übernehmen.

Wenn sie festgelegt sind, erhöhen Sitzungstags, Inline-Sitzungsrichtlinien und ARNs für verwaltete Richtlinien die Größe eines AWS-Sitzungstokens. Es gibt jedoch eine endliche Token-Größenbeschränkung, die unabhängig von der Anzahl der verwendeten Sitzungstags und Sitzungsrichtlinien-Kontingente gilt. Bei Überschreitung der endlichen Beschränkung wird ein Fehler generiert.

Inline-Sitzungsrichtlinien und Sitzungstags werden serialisiert und im Sitzungstoken komprimiert. Dies macht es schwierig, festzustellen, wie viel der PackedPolicySize verwendet wird, bevor ein AssumeRole-Aufruf an STS durchgeführt wird.

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

Reduzieren Sie die Länge der Inline-Sitzungsrichtlinie oder der Sitzungstags (Schlüssel und Werte), die Sie an STS übergeben, wenn Sie eine Rolle übernehmen. In den folgenden Abschnitten finden Sie Möglichkeiten, die Daten für Sitzungstags und Inline-Sitzungsrichtlinien einzuschränken.

Sitzungstags

  • Verkürzen Sie die Schlüssel oder Werte der Sitzungstags. Sitzungstags werden normalerweise für die attributebasierte Zugriffskontrolle (ABAC) verwendet. Um Ihren Richtlinien-Speicherplatz für ABAC effektiv zu nutzen, fügen Sie Sitzungstags nur diejenigen Informationen ein, die für die Autorisierung von Entscheidungen erforderlich sind.
  • Ersetzen Sie 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.
  • Verwenden Sie für alle Tag-Schlüssel und -Werte eine konsistente Groß- und Kleinschreibung. AWS-Sitzungstoken speichern komprimierte Tag-Schlüssel und -Werte, und Komprimierungsalgorithmen funktionieren am besten, wenn Sie eine konsistente Groß- und Kleinschreibung verwenden.
  • Wenn Sie Identitätsinformationen innerhalb von Sitzungstags platzieren, empfiehlt es sich, sie in SourceIdentity zu verschieben, für das ein separates Kontingent gilt.

Richtlinien für Inline-Sitzungen

  • Entfernen Sie Statement-ID (Sid)-Elemente aus den Sitzungsrichtlinien. Sid ist ein optionales Element in den Sitzungsrichtlinien.
  • Verwenden Sie gegebenenfalls Platzhalterzeichen, um IAM-Aktionen und Ressourcen-ARNs zu verkürzen.
  • Übergeben Sie verwaltete Richtlinien-ARNs anstelle eines Richtliniendokuments. Der ARN der verwalteten Richtlinie ist lediglich ein Verweis auf eine Richtlinie und beansprucht weniger Speicherplatz innerhalb des Tokens. Sie können sowohl verwaltete Richtlinien als auch eine Sitzungsrichtlinie übergeben.
  • Um Richtlinien zu erstellen, die Zugriff nur unter bestimmten Bedingungen gewähren, verwenden Sie Sitzungstags mit verwalteten Richtlinien oder Inline-Richtlinien, die der Rolle zugeordnet sind.
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren