Comment puis-je éviter de recevoir une erreur PackedPolicyTooLarge lorsque j'assume un rôle IAM via AWS STS ?

Lecture de 4 minute(s)
0

Je souhaite assumer un rôle AWS Identity and Access Management (IAM) via AWS Security Token Service (STS) sans générer d'erreur PackedPolicyTooLarge.

Brève description

Lorsque vous assumez un rôle IAM via STS, vous pouvez recevoir un message d'erreur PackedPolicyToolLarge contenant l'un des détails suivants :

  • La taille compressée des balises de session consomme n % de l'espace alloué.
  • La politique compressée consomme n % de l'espace alloué, veuillez utiliser une politique plus petite.
    Remarque : n représente le pourcentage d'espace utilisé dans le PackedPolicySize.

STS vous permet de transmettre les types de balises de session suivants :

  • Politiques relatives aux sessions en ligne
  • Politique gérée Amazon Resource Names (ARN)
  • Les ARN des politiques gérées par le client lorsque vous assumez un rôle IAM.

STS stocke les données relatives aux balises, aux politiques et aux ARN dans le jeton de session AWS. Toutes ces données sont prises en compte dans la limite de PackedPolicySize.

Remarque : Les politiques gérées par le client doivent figurer dans le même compte AWS que le rôle IAM que vous assumez.

Lorsqu'elles sont définies, les balises de session, les politiques de session en ligne et les ARN de politiques gérées augmentent la taille d'un jeton de session AWS. Toutefois, une limite de taille de jeton limitée s'applique, quel que soit le nombre de balises de session et les quotas de politique de session utilisés. Le dépassement de la limite finie génère une erreur.

Les politiques de session en ligne et les balises de session sont sérialisées et compressées dans le jeton de session. Il est donc difficile de déterminer la quantité de PackedPolicySize utilisée avant d'effectuer un appel AssumeRole à STS.

Remarque : Les journaux AWS CloudTrail pour AssumeRole, AssumeRoleWithSAML et AssumeRole WithWebIdentity indiquent PackedPolicySize. De plus, dans le cadre de la réponse, l'API AWS renvoie le pourcentage du paramètre PackedPolicySize utilisé dans la demande.

Résolution

Réduisez la longueur de la politique de session intégrée ou des balises de session (clés et valeurs) que vous transmettez à STS lorsque vous assumez un rôle. Les sections suivantes fournissent des moyens de limiter les données pour les balises de session et les politiques de session intégrées.

Tags de session

  • Abréger ou raccourcir les clés ou les valeurs des balises de session. Les balises de session sont normalement utilisées pour le contrôle d'accès basé sur les attributs (ABAC). Pour utiliser efficacement votre espace de politique pour ABAC, insérez dans les balises de session uniquement les informations requises pour autoriser les décisions.
  • Pour les balises de session destinées à des fins autres que celles de l'ABAC, telles que les informations d'audit, remplacez les enregistrements dans les balises de session par des références à un système d'enregistrement externe.
  • Utilisez des formes cohérentes, telles que des minuscules, pour toutes les clés et valeurs de balise. Les jetons de session AWS stockent des clés et des valeurs de balises compressées, et les algorithmes de compression fonctionnent mieux lorsque vous utilisez une forme de caractères cohérente.
  • Si vous placez des informations d'identité dans des balises de session, il est recommandé de les déplacer vers SourceIdentity qui dispose d'un quota distinct.

Politiques relatives aux sessions en ligne

  • Supprimez les éléments d'ID de déclaration (Sid) des politiques de session. Sid est un élément facultatif dans les déclarations de politique de session.
  • Utilisez des caractères génériques pour raccourcir les actions IAM et les ARN des ressources, le cas échéant.
  • Transmettez des ARN de politique gérés au lieu d'un document de politique. L'ARN de la politique gérée n'est qu'une référence à une politique et occupe moins d'espace à l'intérieur du jeton. Vous pouvez transmettre à la fois des politiques gérées et une politique de session.
  • Pour créer des politiques qui n'accordent un accès que de manière conditionnelle, utilisez des balises de session avec des politiques gérées ou des politiques intégrées associées au rôle.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an