Rôles, utilisateurs et politiques IAM — comment appliquer le moindre privilège dans le cloud ?
Réponse courte
Un utilisateur est une identité à longue durée de vie avec des identifiants permanents ; un rôle est une identité sans identifiants permanents que tout principal de confiance peut assumer pour obtenir des jetons à courte durée de vie ; une politique est le document JSON qui accorde des permissions, attaché à l'un ou l'autre. Le moindre privilège consiste à préférer les rôles aux utilisateurs, à restreindre les politiques à des actions et ressources précises, et à n'accorder que ce dont une tâche a besoin — puis à réviser et élaguer au fil du temps.
Cette question sépare ceux qui utilisent le cloud de ceux qui le sécurisent. Les trois concepts sont distincts, et les confondre mène directement à des environnements aux permissions excessives.
Les trois briques de base
- Utilisateur. Une identité à longue durée de vie, généralement pour un humain, avec des identifiants permanents (mot de passe, clés d'accès). Les clés permanentes sont une responsabilité — elles fuitent dans les dépôts et les journaux de CI.
- Rôle. Une identité sans identifiants permanents. Un principal de confiance (une instance EC2, une Lambda, un autre compte, un utilisateur fédéré) assume le rôle via STS et reçoit des jetons à courte durée de vie, à rotation automatique. C'est le modèle privilégié pour les charges de travail et l'accès inter-comptes car il n'y a aucun secret statique à voler.
- Politique. Le document JSON qui accorde ou refuse réellement des permissions —
Effect,Action,Resourceet unConditionoptionnel. Les politiques s'attachent aux utilisateurs, rôles ou groupes. Un rôle ou un utilisateur sans politique ne peut rien faire.
Appliquer le moindre privilège
Le moindre privilège signifie que chaque identité ne détient que les permissions qu'un travail précis exige, et rien de plus :
- Préférez les rôles aux utilisateurs pour tout ce qui n'est pas humain, afin qu'il n'y ait pas de clés statiques.
- Restreignez actions et ressources. Remplacez
s3:*sur*par les actions précises sur des ARN précis. Ajoutez des clausesCondition(IP source, MFA, tags) là où elles conviennent. - Surveillez les chemins d'élévation. Des permissions comme
iam:PassRole,iam:CreatePolicyVersionou l'attachement de politiques admin permettent à une identité à faible privilège de devenir admin — le moindre privilège doit couvrir les actions IAM elles-mêmes. - Révisez et élaguez. Utilisez les analyseurs d'accès et les données de dernière utilisation pour retirer les permissions inutilisées au fil du temps.
Ce que recherchent les recruteurs
Des définitions nettes, un biais clair en faveur des rôles et des identifiants à courte durée de vie, et la conscience que les permissions IAM peuvent elles-mêmes être un vecteur d'élévation.
Questions de suivi probables
- Quand utiliseriez-vous un rôle plutôt qu'un utilisateur IAM pour une application ?
- Comment restreignez-vous une politique d'un wildcard vers le moindre privilège en pratique ?
- Qu'est-ce que l'élévation de privilèges via IAM, par ex. une permission iam:PassRole ou de modification de politique ?