Un rôle RAM est une identité dépourvue d'identifiants permanents, qu'une entité de confiance peut endosser pour obtenir un accès temporaire aux ressources Alibaba Cloud.
Qu'est-ce qu'un rôle RAM ?
Un rôle RAM est un type d'identité RAM auquel sont associées des politiques. Contrairement à un utilisateur RAM, un rôle n'est pas lié à une personne ou à une application spécifique : toute entité de confiance peut l'endosser. Les rôles ne disposent pas d'identifiants permanents tels que des mots de passe ou des paires AccessKey. Lorsqu'une entité endosse un rôle, le Security Token Service (STS) génère des identifiants de sécurité temporaires, valables uniquement pour la durée de cette session.
Chaque rôle RAM constitue une ressource au sein de votre compte et possède un Alibaba Cloud Resource Name (ARN) unique : acs:ram::<account-id>:role/<role-name>. Cet ARN sert à référencer le rôle dans les politiques ou les appels API. Pour consulter l'ARN d'un rôle, reportez-vous à la rubrique Afficher un rôle RAM.
Les rôles RAM et les utilisateurs RAM sont gérés via des menus distincts de la console :
Rôles RAM : Dans le volet de navigation de gauche, choisissez Identity Management > Roles.
Utilisateurs RAM : Dans le volet de navigation de gauche, choisissez Identity Management > Users.
Vous pouvez également distinguer les types d'identité grâce au format de l'ARN : un ARN contenant :role/ identifie un rôle RAM (par exemple, acs:ram::123456789012:role/adminrole), tandis qu'un ARN contenant :user/ identifie un utilisateur RAM (par exemple, acs:ram::123456789012:user/user1).
Si vous ne trouvez pas l'identité recherchée dans la liste des rôles, cherchez dans la liste des utilisateurs, et inversement.
Pourquoi utiliser des rôles RAM ?
Les rôles RAM renforcent la sécurité et l'efficacité de l'accès :
Privilèges élevés temporaires : Accordez des autorisations élevées à une entité pour une tâche spécifique, sans avoir à maintenir des identifiants à privilèges élevés de manière permanente.
Accès aux ressources intercomptes : Autorisez des entités d'un compte à accéder aux ressources d'un autre compte, ce qui permet une gestion centralisée sans dupliquer les identités.
Accès sécurisé pour les services et applications : Les applications exécutées sur une instance Elastic Compute Service (ECS) ou d'autres services endossent un rôle via
AssumeRolepour obtenir des identifiants temporaires, éliminant ainsi la nécessité d'intégrer des paires AccessKey en dur dans le code de l'application.
Concepts clés
Assimilez ces concepts avant de commencer à travailler avec les rôles RAM.
Entité
Une entité est une identité capable d'endosser un rôle. La politique d'approbation du rôle définit quelles entités sont considérées comme fiables. On distingue trois types d'entités :
|
Type |
Description |
Cas d'utilisation courants |
|
Compte Alibaba Cloud |
Toute identité au sein du compte (le compte lui-même, les utilisateurs RAM ou d'autres rôles RAM) peut endosser le rôle. Le compte peut être le propriétaire du rôle ou un compte différent. |
Un utilisateur RAM change d'identité dans la console ou appelle |
|
Service Alibaba Cloud |
Un service cloud spécifié peut endosser le rôle. On parle alors de rôle de service. |
Déléguez un service cloud pour qu'il agisse en votre nom. Par exemple, associez un rôle RAM d'instance à une instance ECS afin que ses applications puissent accéder à un compartiment Object Storage Service (OSS). De nombreux services cloud utilisent également un rôle lié au service (un rôle prédéfini lié au service) pour activer leurs fonctionnalités. |
|
Fournisseur d'identité (IdP) |
Les utilisateurs provenant d'un IdP spécifié (compatible avec SAML 2.0 ou OIDC) peuvent endosser le rôle. Cela permet la fédération d'identités. |
Les utilisateurs de votre IdP d'entreprise peuvent utiliser l'authentification unique (SSO) basée sur les rôles pour se connecter à la console Alibaba Cloud. Les utilisateurs fédérés peuvent appeler les opérations |
Lorsqu'un compte Alibaba Cloud est l'entité approuvée, toute identité au sein de ce compte peut endosser le rôle par défaut. Pour restreindre l'accès à des utilisateurs ou des rôles RAM spécifiques, consultez la rubrique Modifier la politique d'approbation d'un rôle RAM.
Endossement de rôle
L'endossement d'un rôle RAM permet à une entité approuvée d'acquérir temporairement les autorisations associées à ce rôle. Le STS délivre des identifiants de sécurité temporaires et initie une session de rôle, durant laquelle les autorisations de l'identité d'origine sont suspendues. Le rôle peut appartenir au même compte ou à un compte différent (endossement intercomptes).
Vous pouvez endosser un rôle en changeant d'identité dans la console ou en appelant des opérations API telles que AssumeRole ou AssumeRoleWithSAML / AssumeRoleWithOIDC.
Politique d'approbation
Une politique d'approbation est un document JSON obligatoire associé à un rôle RAM. Elle définit quelles entités (comptes, utilisateurs, rôles ou services) sont autorisées à endosser le rôle. Il s'agit d'une politique basée sur la ressource, où la ressource est le rôle lui-même.
Fonctions principales :
Définit qui peut endosser le rôle : L'élément
Principalspécifie les entités approuvées.Contrôle les conditions d'endossement : Ajoutez des éléments
Conditionpour restreindre les circonstances dans lesquelles le rôle peut être endossé, par exemple en exigeant une authentification multifacteur (MFA) ou une adresse IP source spécifique.Fonctionne conjointement avec les politiques d'accès : La politique d'approbation définit qui peut endosser le rôle, tandis que les politiques d'accès définissent ce que le rôle est autorisé à faire une fois endossé.
Exemple :
Cette politique d'approbation autorise toute identité du compte 123456789012**** à endosser le rôle :
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::123456789012****:root"
]
}
}
],
"Version": "1"
}
Session de rôle
Lorsqu'une entité endosse un rôle, elle initie une session de rôle. Les identifiants temporaires du STS sont liés à cette session, et toutes les actions effectuées avec ces identifiants sont attribuées à la session.
Une session de rôle comprend :
Nom de session (RoleSessionName) : Identifiant de session fourni par l'utilisateur, qui apparaît dans les journaux ActionTrail. Il vous permet de retracer les actions jusqu'à l'entité ayant endossé le rôle.
Durée de session : Cycle de vie fixe ; les identifiants expirent à la fin de la session.
Transmettez une politique de session inline lors de l'endossement d'un rôle afin de réduire la portée des autorisations pour une session spécifique. Les autorisations effectives correspondent à l'intersection des politiques d'accès du rôle et de la politique de session. Pour plus d'informations, consultez le paramètre Policy dans la référence de l'API AssumeRole.
Chaînage de rôles
Le chaînage de rôles se produit lorsqu'un rôle est utilisé pour en endosser un autre. Par exemple, un utilisateur RAM endosse le rôle A, puis utilise son jeton STS pour endosser le rôle B. Les rôles peuvent appartenir au même compte ou à des comptes différents.
Ce schéma est courant dans les environnements multi-comptes. Par exemple, un développeur se fédère dans un compte central de rebond (rôle A), puis endosse un rôle privilégié (rôle B) dans un compte de production pour effectuer une tâche spécifique.
Enchaînez les rôles à l'aide de la CLI Alibaba Cloud, des SDK ou de la console. Consultez la rubrique Utiliser le chaînage de rôles.
Différences entre les rôles RAM et les utilisateurs RAM
Les rôles et les utilisateurs sont tous deux des identités RAM, mais ils répondent à des objectifs différents.
|
Élément de comparaison |
Utilisateur RAM |
Rôle RAM |
|
Utilisation |
Représente une personne ou une application spécifique et est utilisé directement |
Représente un ensemble d'autorisations et doit être endossé par une entité |
|
Identifiants |
Dispose d'identifiants permanents (mot de passe et/ou paire AccessKey) |
Ne dispose pas d'identifiants permanents. Des identifiants temporaires (jetons STS) sont générés lors de l'endossement |
|
Validité des identifiants |
Permanente (jusqu'à modification ou suppression manuelle) |
Temporaire ; expiration après une durée configurable |
|
Politique d'approbation |
Aucune |
Nécessite une politique d'approbation pour définir qui peut endosser le rôle |
Un rôle RAM n'est pas un conteneur d'utilisateurs
Un rôle RAM ne possède pas de liste de membres. Lorsque vous ouvrez la page de détails d'un rôle RAM, vous ne voyez pas de liste d'utilisateurs.
Un utilisateur RAM endosse un rôle de la manière suivante :
Configurez une entité approuvée dans l'onglet Trust Policy de la page de détails du rôle.
L'utilisateur RAM appelle l'opération STS
AssumeRolepour obtenir des identifiants temporaires.L'utilisateur RAM utilise les identifiants temporaires pour accéder aux ressources en tant que rôle.
Cette approche diffère de celle d'un groupe d'utilisateurs. Un groupe d'utilisateurs dispose d'un onglet Group Member Management permettant d'ajouter et de visualiser directement les membres, ce qui n'est pas le cas d'un rôle RAM.
Pour connaître les limites applicables aux rôles RAM, consultez la rubrique Limites.
Cas d'utilisation
-
Octroi de privilèges élevés temporaires
Un développeur disposant d'autorisations limitées au quotidien endosse un rôle doté de privilèges administratifs pour effectuer une opération sensible, telle que la modification d'une base de données de production. Une fois la tâche accomplie, les privilèges reviennent à l'ensemble limité, appliquant ainsi le principe du moindre privilège.
Consultez la rubrique Méthodes pour endosser un rôle RAM.
-
Délégation d'accès entre comptes
Une organisation dispose de comptes Alibaba Cloud distincts pour le développement (compte A) et la production (compte B). Pour permettre à un pipeline CI/CD s'exécutant dans le compte A de déployer une application sur ECS dans le compte B, vous pouvez :
Créer un rôle dans le compte B qui fait confiance au compte A.
Accorder au rôle de service CI/CD du compte A l'autorisation d'endosser ce rôle dans le compte B.
Le pipeline CI/CD endosse le rôle dans le compte B pour obtenir les identifiants nécessaires au déploiement de l'application.
Consultez la rubrique Accès aux ressources intercomptes.
-
Octroi d'accès aux services Alibaba Cloud
Une application exécutée sur une instance ECS doit lire des données depuis un compartiment OSS. Au lieu d'intégrer une paire AccessKey, créez un rôle de service disposant d'autorisations de lecture et associez-le à l'instance. L'application utilise les identifiants temporaires fournis automatiquement pour accéder à OSS.
Pour plus d'informations, consultez la rubrique Rôles RAM d'instance.
-
Fourniture d'accès aux utilisateurs fédérés
Votre entreprise utilise un IdP externe (tel que Microsoft Entra ID ou Okta). Configurez la fédération d'identités avec SAML 2.0 ou OIDC et créez un rôle RAM qui fait confiance à l'IdP. Les utilisateurs authentifiés endossent le rôle pour accéder à Alibaba Cloud, ce qui permet une gestion centralisée des utilisateurs sans créer d'utilisateurs RAM individuels.
Consultez les rubriques Présentation de l'authentification unique basée sur les rôles avec SAML et Présentation de l'authentification unique basée sur les rôles avec OIDC.