Tous les produits
Search
Centre de documentation

Resource Access Management:Assume a RAM role

Dernière mise à jour :Aug 27, 2026

Assumez un rôle RAM pour obtenir temporairement les autorisations associées à ce rôle afin d'accéder aux ressources Alibaba Cloud. Vous pouvez assumer un rôle RAM depuis la console, en utilisant l'interface de ligne de commande (CLI) Alibaba Cloud ou en appelant les opérations API du service Security Token Service (STS).

Qu'est-ce que l'assomption de rôle

Contrairement à un utilisateur RAM, un rôle RAM ne permet pas de se connecter directement à la console. Vous devez d'abord vous connecter à la console en tant qu'utilisateur RAM ou via une authentification unique (SSO), puis basculer vers le rôle RAM cible. Ce processus est appelé assomption de rôle.

Lorsque vous changez d'identité dans la console, les autorisations de l'identité d'origine sont temporairement suspendues et vous opérez avec les autorisations du rôle RAM assumé. Le rôle RAM assumé peut appartenir au même compte Alibaba Cloud que l'utilisateur RAM connecté, ou à un autre compte (assomption de rôle intercomptes).

Fonctionnement

L'exemple suivant illustre le fonctionnement de l'assomption de rôle. Dans cet exemple, l'utilisateur RAM Alice assume le rôle RAM prod-role et accède à OSS en tant que ce rôle :

image
  • Demande d'assomption du rôle RAM. L'utilisateur RAM Alice demande des identifiants temporaires (un jeton STS) pour le rôle RAM prod-role auprès du service Security Token Service (STS) d'Alibaba Cloud. RAM vérifie l'identité d'Alice (par exemple, à l'aide d'une paire AccessKey), si Alice dispose de l'autorisation d'assumer le rôle (sts:AssumeRole), et si la politique de confiance de prod-role autorise Alice à l'assumer (si Principal correspond à Alice).

  • Obtention du jeton STS. Une fois la vérification réussie, Alice reçoit le jeton STS renvoyé par STS.

  • Accès aux ressources cloud en tant que rôle. Alice utilise le jeton STS pour accéder aux ressources cloud telles qu'OSS en tant que rôle prod-role. Ces demandes sont évaluées selon les politiques d'accès du rôle prod-role (par exemple, oss:*). Les identifiants d'origine d'Alice restent valides ; seules les demandes effectuées avec le jeton STS utilisent les autorisations du rôle.

Méthodes d'assomption de rôle

Vous pouvez assumer un rôle RAM de plusieurs manières :

  • Changement d'identité dans la console — Après qu'un utilisateur RAM s'est connecté à la console Alibaba Cloud, il utilise la fonctionnalité Switch Identity pour basculer vers le rôle cible. Cette méthode est décrite en détail dans cette rubrique.

  • Appel d'opérations API — Les administrateurs ou les développeurs utilisent l'interface CLI Alibaba Cloud, le SDK ou OpenAPI pour appeler l'opération AssumeRole (ou d'autres opérations d'assomption de rôle, telles que AssumeRoleWithSAML) afin d'obtenir le jeton STS. Cette méthode est décrite en détail dans cette rubrique.

  • SSO basé sur les rôles — Les utilisateurs se connectent à la console via le SSO basé sur les rôles (basé sur le protocole SAML 2.0) en utilisant le fournisseur d'identité (IdP) de leur entreprise. Une fois la connexion à la console terminée, l'utilisateur a déjà assumé le rôle RAM.

  • Association du rôle à des ressources Alibaba Cloud — Associez le rôle à des ressources Alibaba Cloud spécifiques (telles qu'une instance ECS, Function Compute ou un pod ACK/ACS), puis utilisez les fonctionnalités intégrées de la plateforme Alibaba Cloud pour effectuer l'assomption de rôle. Pour plus d'informations, consultez la section Applications on Alibaba Cloud accessing Alibaba Cloud resources. Les deux derniers scénarios ne sont pas décrits en détail dans cette rubrique. Pour obtenir des instructions d'utilisation, reportez-vous aux documents référencés ci-dessus.

Comment assumer un rôle RAM

Choisissez une méthode adaptée à votre scénario. Pour connaître toutes les méthodes d'assomption de rôle disponibles, consultez la section Méthodes d'assomption de rôle.

  • Opérations manuelles dans la console — Basculez vers le rôle RAM dans la console pour effectuer des opérations de manière interactive.

  • Automatisation pour les programmes ou services — Appelez les opérations de STS pour obtenir le jeton STS, puis utilisez ce jeton pour accéder programmatiquement aux ressources Alibaba Cloud.

  • Opérations interactives en ligne de commande — Utilisez l'interface CLI Alibaba Cloud pour effectuer des opérations en tant que rôle RAM.

Prérequis

Avant d'assumer un rôle RAM, assurez-vous que les conditions suivantes sont remplies :

  • Rôle RAM cible — Le rôle RAM cible est disponible et sa politique de confiance autorise l'identité d'origine à assumer le rôle. Par exemple, le mot-clé Principal dans la politique de confiance correspond à l'identité d'origine.

  • Autorisations de l'identité d'origine — L'identité d'origine dispose de l'autorisation d'assumer le rôle cible. Attachez la stratégie système AliyunSTSAssumeRoleAccess ou une stratégie personnalisée contenant l'opération sts:AssumeRole à l'identité d'origine. La stratégie système AliyunSTSAssumeRoleAccess permet à un utilisateur RAM d'assumer tous les rôles RAM. Pour plus d'informations sur l'autorisation, consultez la section Grant permissions to a RAM user.

  • Connexion SSO basée sur les rôles — Si vous vous connectez via un SSO basé sur les rôles, vous êtes déjà connecté en tant que rôle RAM. Pour basculer vers un autre rôle, assurez-vous que le rôle actuel dispose de l'autorisation d'assumer le rôle cible. Par exemple, si l'identité après la connexion SSO basée sur les rôles est le Rôle A et que vous souhaitez basculer vers le Rôle B, le Rôle A doit disposer d'une politique d'accès autorisant l'assomption du Rôle B.

  • Paire AccessKey (API et CLI uniquement) — Une paire AccessKey d'un utilisateur RAM est préparée pour l'authentification programmatique. Pour connaître les étapes détaillées, consultez la section Create and use an AccessKey pair for programmatic access.

Assumer un rôle RAM dans la console

Après vous être connecté à la console en tant qu'utilisateur RAM ou via un SSO basé sur les rôles, vous pouvez assumer un rôle RAM en changeant d'identité.

Procédure 1. Connectez-vous à la console RAM en tant qu'utilisateur RAM ou via un SSO basé sur les rôles.

  1. Survolez l'image de profil dans le coin supérieur droit et cliquez sur Switch Identity.

    Switch Identity

  2. Sur la page Switch Role, saisissez les informations du rôle RAM que vous souhaitez assumer.

    a. enterprise alias / default domain name / Alibaba Cloud account ID : Saisissez l'une des informations suivantes : l'alias d'entreprise (alias de compte) du compte propriétaire du rôle RAM, le nom de domaine par défaut ou l'ID de compte Alibaba Cloud du compte propriétaire du rôle. Pour effectuer un basculement intercomptes, saisissez l'ID de compte Alibaba Cloud du compte cible.

    b. Role name : Le nom du rôle RAM que vous souhaitez assumer. Demandez-le à votre administrateur ou consultez-le sur la page Identity Management > Roles de la console RAM.

  3. Cliquez sur Submit.

    Une fois l'identité changée, vous utilisez la console en tant que rôle RAM. La zone de l'image de profil dans le coin supérieur droit de la console affiche l'identité actuelle et l'identité de connexion (l'identité d'origine). Le panneau inclut un libellé RAM role qui identifie le type d'identité actuel. En bas, les boutons Back to Logon Identity et Sign Out sont disponibles.

  4. (Facultatif) Pour revenir à l'identité de connexion d'origine, survolez l'image de profil dans le coin supérieur droit de la console et cliquez sur Back to Logon Identity. Après le basculement, les autorisations du rôle RAM deviennent invalides et les autorisations de l'identité d'origine sont restaurées. Le tableau suivant décrit les formats d'affichage de l'identité de connexion et de l'identité actuelle :

Scénario de connexion Identité de connexion Identité actuelle
Connexion utilisateur RAM <RAM username> <RoleName>/<RAM username>
Connexion SSO basée sur les rôles (première fois) Non affiché <RoleName>/<RoleSessionName>
Changement d'identité après une connexion SSO basée sur les rôles <SSO role name>/<RoleSessionName> <Switched role name>/<RoleSessionName>

Descriptions des champs

  • RoleName : Le nom du rôle actuellement assumé.

  • RoleSessionName : Le nom de session. Il s'agit du nom d'utilisateur RAM lorsqu'un utilisateur RAM se connecte. Lors d'une connexion SSO basée sur les rôles, il est fourni par l'IdP et reste inchangé après le changement d'identité.

Exemple

L'utilisateur Tom (UPN : tom@example.com, où UPN signifie User Principal Name) se connecte à la console via un SSO basé sur les rôles en tant que rôle test-saml-role1, puis bascule vers le rôle alice-testrole. Supposons que le RoleSessionName soit l'UPN de l'utilisateur. L'identité de connexion et l'identité actuelle sont les suivantes :

  • Identité de connexion : test-saml-role1/tom@example.com

  • Identité actuelle : alice-testrole/tom@example.com

Assumer un rôle RAM en appelant des opérations API

Vous pouvez appeler les opérations de STS pour assumer un rôle RAM et obtenir le jeton STS du rôle assumé. Lorsqu'un programme ou un service accède aux ressources Alibaba Cloud avec le jeton STS, il peut effectuer des opérations dans la limite des autorisations du rôle assumé.

Opérations d'assomption de rôle

Le tableau suivant décrit les opérations d'assomption de rôle de STS. Choisissez une opération en fonction des identifiants ou de la méthode de fédération d'identité de l'appelant.

API Description
AssumeRole Obtient le jeton STS pour assumer un rôle RAM. Applicable aux scénarios d'assomption de rôle utilisant des identifiants tels qu'une paire AccessKey ou un jeton STS.
AssumeRoleWithSAML Obtient le jeton STS à l'aide d'une assertion SAML. Applicable aux scénarios SSO basés sur les rôles SAML.
AssumeRoleWithOIDC Obtient le jeton STS à l'aide d'un jeton OpenID Connect (OIDC). Applicable aux scénarios SSO basés sur les rôles OIDC.

Lorsque vous appelez les opérations ci-dessus, vous devez utiliser le paramètre RoleArn pour spécifier le rôle RAM que vous souhaitez assumer. Le format ARN est acs:ram::<Alibaba Cloud account ID>:role/<role name>.

Vous pouvez également transmettre le paramètre Policy (politique de session) pour restreindre davantage les autorisations du rôle assumé au sein de la session de rôle actuelle.

Autorisations requises

Les autorisations requises varient selon l'opération utilisée pour l'assomption de rôle :

  • Si vous utilisez l'opération AssumeRole, l'appelant doit disposer de l'autorisation d'opération sts:AssumeRole. Par exemple, vous pouvez attacher la stratégie système AliyunSTSAssumeRoleAccess à l'appelant.

  • Si vous utilisez l'opération AssumeRoleWithSAML ou AssumeRoleWithOIDC, vous devez uniquement configurer correctement l'IdP SAML ou OIDC de confiance dans la politique de confiance du rôle RAM cible. Il n'est pas nécessaire d'attribuer séparément une politique d'accès RAM à l'identité externe. Vous pouvez utiliser le kit de développement logiciel (SDK) Alibaba Cloud pour appeler les opérations d'assomption de rôle afin d'assumer un rôle RAM. Pour obtenir des exemples de code, consultez la documentation SDK correspondante, telle que Use an AccessKey pair and a RamRoleArn to get an STS token (Python SDK).

Pour vérifier que le jeton STS fonctionne, utilisez-le pour appeler l'opération GetCallerIdentity de STS. La réponse contient l'ARN du rôle assumé.

Assumer un rôle RAM à l'aide de l'interface CLI Alibaba Cloud

L'exemple suivant montre comment utiliser l'interface CLI Alibaba Cloud pour assumer le rôle RAM admin-role et effectuer des tâches de gestion en tant que ce rôle.

  1. Configurez les identifiants d'identité pour l'interface CLI Alibaba Cloud. Cet exemple utilise le mode RamRoleArn, qui utilise la paire AccessKey d'un utilisateur RAM comme méthode d'authentification pour effectuer l'assomption de rôle.

    aliyun configure --profile RamRoleArnProfile --mode RamRoleArn
  2. Suivez les instructions pour saisir l'AccessKey ID, l'AccessKey Secret, l'ARN du rôle que vous souhaitez assumer, le nom de session de rôle et d'autres informations. Pour plus d'informations sur les paramètres et l'utilisation, consultez la section Configure credentials for Alibaba Cloud CLI.

    Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode... Access Key Id []: <yourAccessKeyID> Access Key Secret []: <yourAccessKeySecret> Sts Region []: cn-shanghai Ram Role Arn []: acs:ram::012345678910****:role/admin-role Role Session Name []: user-name External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[RamRoleArnProfile] ...Done.Expired Seconds conserve la valeur par défaut de 900 secondes (15 minutes) affichée dans l'invite de la CLI. Cette valeur diffère de la valeur par défaut (3 600 secondes) du paramètre DurationSeconds des opérations AssumeRole*.

  3. Une fois l'authentification terminée, exécutez les commandes requises avec le profil. L'identité utilisée pour exécuter les commandes est le rôle RAM assumé admin-role, et non l'utilisateur RAM propriétaire de la paire AccessKey.Chaînage de rôles

    aliyun ram ListUsers --profile RamRoleArnProfile aliyun sts GetCallerIdentity --profile RamRoleArnProfile. La réponse contient l'ARN du rôle assumé.

    Pour assumer un autre rôle RAM en tant que rôle assumé, consultez

    .

En cas d'échec de l'assomption de rôle

Si l'administrateur configure des règles de condition spéciales pour le rôle RAM cible, telles que sts:ExternalId ou sts:SourceIdentity, ou si le rôle cible ne fait confiance qu'à des principaux spécifiques tels qu'un utilisateur RAM particulier, l'assomption de rôle peut échouer.

Si l'assomption de rôle échoue ou si un appel API renvoie une erreur liée aux autorisations, vérifiez les politiques d'accès accordées à l'identité d'origine et la politique de confiance du rôle cible.

Assomption de rôle intercomptes

L'assomption de rôle intercomptes vous permet d'utiliser une identité (un utilisateur RAM ou un rôle RAM) sous un compte Alibaba Cloud pour assumer un rôle RAM sous un autre compte Alibaba Cloud, et ainsi accéder aux ressources de ce compte.

L'assomption de rôle intercomptes nécessite les conditions suivantes :

  • Le rôle cible doit faire confiance au compte source, ou à un utilisateur RAM ou un rôle RAM sous le compte source. Cela est défini par le mot-clé Principal dans la politique de confiance du rôle cible.

  • L'identité d'origine doit disposer de l'autorisation d'opération sts:AssumeRole. Pour plus d'informations, consultez la section Perform cross-account role assumption.

Chaînage de rôles

Le chaînage de rôles est le processus par lequel une identité RAM (ou une identité SSO basée sur les rôles) assume un rôle, puis continue d'assumer d'autres rôles en tant que ce rôle. Le chaînage de rôles s'appuie sur le mécanisme standard d'assomption de rôle décrit dans cette rubrique.

Pour permettre au Rôle A de continuer à assumer le Rôle B, le Rôle A doit disposer de l'autorisation d'opération sts:AssumeRole et le Rôle B doit faire confiance au Rôle A.

L'exemple suivant utilise l'interface CLI Alibaba Cloud pour illustrer l'utilisation du chaînage de rôles :

  1. Suivez l'exemple de la section Use the CLI to assume a RAM role pour configurer l'interface CLI Alibaba Cloud et assumer le rôle admin-role (le rôle source).

  2. Ajoutez la stratégie système AliyunSTSAssumeRoleAccess au rôle admin-role.

  3. Créez le rôle RAM cible, par exemple nommé target-role. Modifiez la politique de confiance du rôle cible et spécifiez l'identité comme admin-role dans le mot-clé Principal :

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::<ACCOUNT_ID>:role/admin-role"
            ]
          }
        }
      ],
      "Version": "1"
    }
  4. Utilisez le mode ChainableProfile pour configurer l'interface CLI Alibaba Cloud.

    aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn
  5. Suivez les instructions pour saisir le nom du profil source, l'ARN du rôle que vous souhaitez continuer à assumer et d'autres informations.

    Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode...
    Source Profile []: RamRoleArnProfile
    Sts Region []: cn-shanghai
    Ram Role Arn []: acs:ram::012345678910****:role/target-role
    Role Session Name []: user-name
    External ID []: abcd1234
    Expired Seconds [900]: 900
    Default Region Id []: cn-shanghai
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] zh: en
    Saving profile[ChainableProfile] ...Done.
  6. Une fois l'authentification terminée, exécutez la commande suivante pour afficher les informations d'identité de l'appelant actuel. La réponse contient l'ARN du rôle cible.activer l'audit de l'assomption de rôle

    aliyun sts GetCallerIdentity --profile ChainableProfile

    Dans les scénarios de chaînage de rôles, le suivi de l'identité de l'appelant de rôle initial via les journaux d'audit devient difficile. En tant que bonne pratique,

    .

Durée de session de rôle

Une session de rôle est une session d'accès limitée dans le temps établie après qu'un principal, tel qu'un utilisateur RAM ou une autre entité de confiance, a réussi à assumer un rôle. La durée de session de rôle contrôle la période pendant laquelle vous pouvez effectuer des opérations en tant que rôle. Une fois la session expirée, vous devez assumer à nouveau le rôle pour obtenir une nouvelle session.

Console

Facteur déterminant Valeur par défaut Plage valide Description
Durée maximale de session 1 heure 1 à 12 heures Peut être configurée individuellement pour chaque rôle.
Expiration de la session de connexion 6 heures 1 à 24 heures Paramètre global qui affecte tous les utilisateurs RAM et rôles RAM.

La durée de session effective est la plus courte des deux facteurs ci-dessus. Par exemple, si l'expiration de la session de connexion est définie sur 8 heures et que la durée maximale de session du Rôle A est définie sur 1 heure, après avoir basculé vers le Rôle A, la durée de session est de 1 heure. Une fois la session expirée, changez à nouveau d'identité pour assumer le rôle.

OpenAPI

Facteur déterminant Valeur par défaut Plage valide Description
Durée maximale de session 1 heure 1 à 12 heures Peut être configurée individuellement pour chaque rôle.
Paramètre DurationSeconds 3 600 secondes (1 heure) 900 secondes (15 minutes) à la durée maximale de session Spécifié lors de l'appel des opérations AssumeRole*.
Validité de la réponse SAML / du jeton OIDC Déterminée par l'IdP (généralement 1 heure) Déterminée par l'IdP Uniquement pour les scénarios SSO basés sur les rôles, lorsque vous obtenez un jeton STS via l'opération AssumeRoleWithSAML ou AssumeRoleWithOIDC.

La durée de session effective est la plus courte des facteurs ci-dessus. Une fois la session expirée, appelez à nouveau les opérations AssumeRole* pour assumer le rôle.

Pour savoir comment configurer la durée maximale de session et l'expiration de la session de connexion, consultez les sections Configure the maximum session duration of a RAM role et Configure the logon session expiration.

FAQ

Comment limiter un utilisateur à l'assomption de seuls rôles RAM spécifiques

La stratégie système AliyunSTSAssumeRoleAccess permet d'assumer tous les rôles RAM. Pour limiter l'assomption de rôle à des rôles RAM spécifiques, configurez une politique d'accès personnalisée pour l'identité d'origine et modifiez la politique de confiance du rôle cible. Pour plus d'informations, consultez la section How do I restrict a specific RAM user from assuming a specific RAM role.

Un compte Alibaba Cloud peut-il assumer un rôle RAM

Non. Un compte Alibaba Cloud (compte racine) ne peut pas basculer vers un rôle RAM dans la console, ni assumer un rôle RAM en appelant l'opération AssumeRole.

Que faire si les identifiants temporaires obtenus via l'assomption de rôle sont divulgués

Si les identifiants temporaires que vous avez obtenus via l'assomption de rôle sont divulgués, vous pouvez révoquer tous les jetons STS qui ont été émis. Pour plus d'informations, consultez la section What do I do if an STS token is leaked.

Références