Vue générale
Présentation
Une Infrastructure de Gestion d'Identité et d'Accès (Identity & Access Management) a deux principales responsabilités : la prise en charge de la phase d'identification et d'authentification d'un utilisateur et la phase d'autorisation d'accès à une ressource par un utilisateur. Un utilisateur peut être une personne physique ou le compte d'une machine (appelé aussi compte de service). La première catégorie correspondra à un compte utilisateur, tandis que la seconde catégorie correspondra à un compte machine.
Les commanditaires disposent d'une infrastructure IAM dédiée assurant un parfait isolement des ressources.
Fonctionnement
Le système d'IAM (Identity and Access Management) est utilisé pour gérer l'identité des utilisateurs et des comptes de service . Les aspects suivants seront pris en considération :
- Identification d'un utilisateur ou d'un compte de service
- Pour la génération des mots de passe, critères de robustesse pour le mot de passe tels que la longueur et la composition
- Définition d'une authentification à deux facteurs pour les personnes physiques
- Blocage du compte (utilisateur ou de service) au bout de trois tentatives non abouties d’authentification.
Un système IAM est le plus souvent représenté par deux fonctions : authN et authZ.
La stratégie d'authentification authN vise à établir des règles pour s'assurer de l'identité d'un utilisateur et d'un compte de service qui sollicite un accès à un service.
Le dispositif de gestion et de contrôle des accès aux ressources authZ gère les autorisations liées aux utilisateurs et aux comptes de service. Ce composant doit être performant et capable de répondre à des fortes sollicitations. Dans l'infrastructure IAM, cette fonction est gérée indépendamment de la gestion des identités.
Le système de permissions de l'IAM permet la mise en œuvre de differents modèles de gestion des droits tels que :
- Modèle RBAC (Role-Based Access Control) : Il attribue à chaque utilisateur un ou plusieurs rôles, chacun disposant d'une ou plusieurs permissions. Cela permet une allocation rapide des permissions à un utilisateur ou à un compte de service. Un rôle est un ensemble de permissions. Les autorisations déterminent les opérations autorisées sur une ressource. Lorsque vous attribuez un rôle à un utilisateur ou à un compte de service, vous lui accordez toutes les permissions contenues dans ce rôle.
- Modèle ACL (Access Control List) : Il définit un droit unitaire d'un utilisateur sur une ressource spécifique, comme une URL ou un fichier. C'est le niveau le plus fin des permissions, correspondant à une permission granulaire.
Entre ces deux modèles, il est aussi possible d'attribuer une permission tel que décrite dans un rôle, à un utilisateur. L'utilisateur aura le droit d'exécuter une action sur l'ensemble des ressources encadrées par la permission.
Il y a donc trois modalités d'attribution de permission :
- Par assignation d'un rôle à un utilisateur
- Par assignation d'une permission à un utilisateur
- Par assignation d'un droit spécifique à un utilisateur pour une ressource spécifique (ACL).