Come posso evitare di ricevere un errore PackedPolicyToolarge quando assumo un ruolo IAM tramite AWS STS?

4 minuti di lettura
0

Voglio assumere un ruolo AWS Identity and Access Management (IAM) tramite AWS Security Token Service (STS) senza generare un errore PackedPolicyTooLarge.

Breve descrizione

Quando assumi un ruolo IAM tramite STS, potresti ricevere un messaggio di errore PackedPolicyTooLarge con una delle spiegazioni seguenti:

  • La dimensione compressa dei tag di sessione consuma l'n% dello spazio assegnato.
  • La policy impacchettata consuma il n% dello spazio assegnato, utilizza una politica più piccola.
    Nota: n rappresenta la percentuale di spazio utilizzato in PackedPolicySize.

STS consente di inserire i seguenti tipi di tag di sessione:

  • Policy di sessione inline
  • Policy gestita Amazon Resource Names (ARN)
  • Le policy gestite dai clienti possono essere create quando si assume un ruolo IAM.

STS archivia i dati relativi ai tag, alle policy e agli ARN all'interno del token di sessione AWS. Tutti questi dati vengono conteggiati ai fini del limite PackedPolicySize.

**Nota:**Le policy gestite dai clienti devono essere nello stesso account AWS del ruolo IAM che stai assumendo.

Se impostati, i tag di sessione, le policy di sessione inline e gli ARN delle policy gestite aumentano le dimensioni di un token di sessione AWS. Esiste tuttavia un limite dimensionale finito dei token, che viene applicato indipendentemente dal numero di tag di sessione e dalle quote delle policy di sessione utilizzate. Il superamento del limite finito genera un errore.

Le policy di sessione inline e i tag di sessione sono serializzati e compressi nel token di sessione. Ciò rende difficile determinare la quantità di PackedPolicySize utilizzata prima di effettuare una chiamata AssumeRole a STS.

Nota: I log di AWS CloudTrail per AssumeRole, AssumeRoleWithSAML e AssumeRoleWithWebIdentity danno accesso a PackedPolicySize. Inoltre, come parte della risposta, l'API di AWS restituisce la percentuale di PackedPolicySize utilizzata nella richiesta.

Risoluzione

Riduci la lunghezza della policy di sessione inline o dei tag di sessione (chiavi e valori) che trasmetti a STS quando assumi un ruolo. Le sezioni seguenti indicano in quali modi è possibile limitare i dati per i tag di sessione e le policy di sessione inline.

Tag di sessione

  • Abbreviare o abbreviare le chiavi o i valori dei tag di sessione. I tag di sessione vengono normalmente utilizzati per il controllo degli accessi basato su attributi (ABAC). Per fare un uso efficace dello spazio di policy disponibile per ABAC, inserisci nei tag di sessione solo le informazioni necessarie per autorizzare le decisioni.
  • Per i tag di sessione per scopi non ABAC, come le informazioni di audit, sostituisci i record nei tag di sessione con riferimenti a un sistema di record esterno.
  • Usa lettere solo maiuscole o solo minuscole per tutte le chiavi e i valori dei tag. I token di sessione AWS memorizzano chiavi e valori di tag compressi, e gli algoritmi di compressione funzionano meglio quando sono utilizzate lettere univocamente maiuscole o minuscole.
  • Se inserisci informazioni sull'identità all'interno dei tag di sessione, è consigliabile spostarle in SourceIdentity, che ha una quota separata.

Policy di sessione inline

  • Rimuovi gli ID istruzione (Sid) dalle policy di sessione. Sid è un elemento opzionale nelle istruzioni delle policy di sessione.
  • Usa caratteri jolly per abbreviare le azioni IAM e gli ARN delle risorse, ove appropriato.
  • Trasmetti gli ARN delle policy gestite anziché un documento di policy. L’ARN della policy gestita è solo un riferimento a una policy e occupa meno spazio all'interno del token. Puoi trasmettere sia policy gestite che policy di sessione.
  • Per creare policy che concedono l'accesso solo in modo condizionale, utilizza i tag di sessione con policy gestite o policy inline associate al ruolo.
AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa