Un rôle RAM est une identité sans identifiants permanents. Une entité de confiance l'endosse 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 attachées des politiques. Contrairement à un utilisateur RAM, un rôle n'est lié ni à une personne ni à une application spécifique : toute entité de confiance peut l'endosser. Les rôles ne disposent d'aucun identifiant permanent, tel qu'un mot de passe ou une paire 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 est une ressource de votre compte dotée d'un Alibaba Cloud Resource Name (ARN) unique : acs:ram::<account-id>:role/<role-name>. Utilisez cet ARN pour référencer le rôle dans les politiques ou les appels API. Pour trouver l'ARN d'un rôle, consultez la rubrique Afficher un rôle RAM.
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 à une entité des autorisations élevées pour une tâche spécifique, sans maintenir d'identifiants hautement privilégiés sur le long terme.
Accès aux ressources inter-comptes : permettez aux entités d'un compte d'accéder aux ressources d'un autre compte. Cette approche favorise 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. Cela élimine la nécessité d'intégrer des paires AccessKey directement dans le code de l'application.
Concepts clés
Avant d'utiliser des rôles RAM, assurez-vous de bien comprendre les concepts suivants.
Entité
Une entité est une identité capable d'endosser un rôle. La politique d'approbation du rôle définit les entités de confiance. 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, des 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 tiers. |
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, attachez un rôle RAM d'instance à une instance ECS afin que ses applications puissent accéder à un bucket Object Storage Service (OSS). De nombreux services cloud utilisent également un rôle lié au service (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 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 utilisent l'authentification unique (SSO) basée sur les rôles pour se connecter à la console Alibaba Cloud. Les utilisateurs fédérés appellent les opérations |
Lorsqu'un compte Alibaba Cloud est l'entité de confiance, toute identité de ce compte peut par défaut endosser le rôle. Pour restreindre l'accès à des utilisateurs ou rôles RAM spécifiques, modifiez la politique d'approbation d'un rôle RAM.
Endossement de rôle
L'endossement d'un rôle RAM permet à une entité de confiance d'acquérir temporairement les autorisations associées au rôle. STS délivre des identifiants de sécurité temporaires et initie une session de rôle. Durant cette session, les autorisations de l'identité d'origine sont suspendues. Le rôle peut appartenir au même compte ou à un compte différent (endossement inter-comptes).
Pour endosser un rôle, changez d'identité dans la console ou appelez des opérations API telles que AssumeRole ou AssumeRoleWithSAML / AssumeRoleWithOIDC.
Politique d'approbation
Une politique d'approbation est un document JSON obligatoire attaché à un rôle RAM. Elle définit les entités (comptes, utilisateurs, rôles ou services) autorisées à l'endosser. 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 de confiance.Contrôle les conditions d'endossement : ajoutez des éléments
Conditionpour restreindre les circonstances d'endossement, par exemple en exigeant l'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 les actions autorisées une fois le rôle endossé.
Exemple :
Cette politique d'approbation permet à toute identité du compte 123456789012**** d'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 STS sont liés à cette session et toutes les actions effectuées avec ces identifiants lui sont attribuées.
Une session de rôle comprend :
Nom de session (RoleSessionName) : identifiant de session fourni par l'utilisateur. Il apparaît dans les journaux ActionTrail, ce qui 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 pour réduire la portée des autorisations. 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 se trouver dans le même compte ou dans des comptes différents.
Ce schéma est courant dans les environnements multi-comptes. Par exemple, un développeur se connecte via la fédération à 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.
Utilisez la CLI Alibaba Cloud, les SDK ou la console pour chaîner les rôles. 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 s'utilise 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) |
Aucun identifiant permanent. Des identifiants temporaires (jetons STS) sont générés lors de l'endossement |
|
Validité des identifiants |
Longue durée (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 |
Pour connaître les limitations relatives aux rôles RAM, consultez la rubrique Limitations.
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, procédez comme suit :
Créez un rôle dans le compte B qui fait confiance au compte A.
Accordez au rôle de service CI/CD dans le 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 inter-comptes.
-
Octroi d'accès aux services Alibaba Cloud
Une application s'exécutant sur une instance ECS doit lire des données depuis un bucket OSS. Au lieu d'intégrer une paire AccessKey, créez un rôle de service avec des autorisations de lecture et attachez-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, permettant ainsi une gestion centralisée des utilisateurs sans créer d'utilisateurs RAM individuels.
Consultez les rubriques Vue d'ensemble de l'authentification unique basée sur les rôles avec SAML et Vue d'ensemble de l'authentification unique basée sur les rôles avec OIDC.