Endossez un rôle RAM pour obtenir temporairement les autorisations associées à ce rôle afin d'accéder aux ressources Alibaba Cloud. Vous pouvez endosser un rôle RAM depuis la console, en utilisant l'interface CLI Alibaba Cloud ou en appelant les opérations API du service Security Token Service (STS).
Qu'est-ce que l'endossement 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é endossement 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 endossé. Le rôle RAM endossé peut appartenir au même compte Alibaba Cloud que l'utilisateur RAM connecté, ou à un autre compte (endossement de rôle intercomptes).
Fonctionnement
L'exemple suivant illustre le fonctionnement de l'endossement de rôle. Dans cet exemple, l'utilisateur RAM Alice endosse le rôle RAM prod-role et accède à OSS en tant que ce rôle.
Demande d'endossement du rôle RAM. L'utilisateur RAM Alice demande des informations d'identification temporaires (un jeton STS) pour le rôle RAM
prod-roleauprès du service Security Token Service (STS) d'Alibaba Cloud. Le service RAM vérifie l'identité d'Alice (par exemple, à l'aide d'une paire AccessKey), si Alice dispose de l'autorisation d'endosser le rôle (sts:AssumeRole), et si la politique d'approbation deprod-roleautorise Alice à l'endosser (siPrincipalcorrespond à 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 RAM
prod-role. Ces requêtes sont évaluées selon les politiques d'accès du rôle RAMprod-role(par exemple,oss:*). Les informations d'identification d'origine d'Alice restent valides ; seules les requêtes effectuées avec le jeton STS utilisent les autorisations du rôle.
Méthodes d'endossement de rôle
Vous pouvez endosser un rôle RAM de plusieurs manières :
Changement d'identité dans la console — Après s'être connecté à la console Alibaba Cloud Management Console en tant qu'utilisateur RAM, l'utilisateur 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'endossement de rôle, telles queAssumeRoleWithSAML) 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à endossé le rôle RAM.
Association du rôle aux 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'endossement 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 endosser un rôle RAM
Choisissez une méthode adaptée à votre scénario. Pour connaître toutes les méthodes d'endossement de rôle disponibles, consultez la section Méthodes d'endossement 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'endosser 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 d'approbation autorise l'identité d'origine à endosser le rôle. Par exemple, le mot-clé
Principaldans la politique d'approbation correspond à l'identité d'origine.Autorisations de l'identité d'origine — L'identité d'origine dispose de l'autorisation d'endosser le rôle cible. Attachez la stratégie système
AliyunSTSAssumeRoleAccessou une stratégie personnalisée contenant l'opérationsts:AssumeRoleà l'identité d'origine. La stratégie systèmeAliyunSTSAssumeRoleAccesspermet à un utilisateur RAM d'endosser tous les rôles RAM. Pour plus d'informations sur l'autorisation, consultez la section Grant permissions to a RAM user.Connexion via SSO basé 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'endosser 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'endossement 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.
Endosser 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 endosser un rôle RAM en changeant d'identité.
Procédure1. Connectez-vous à la console RAM en tant qu'utilisateur RAM ou via un SSO basé sur les rôles.
Placez le pointeur sur la photo de profil dans le coin supérieur droit et cliquez sur Switch Identity.
-
Sur la page Switch Role, saisissez les informations du rôle RAM que vous souhaitez endosser.
a. enterprise alias / default domain name / Alibaba Cloud account ID : Saisissez l'un des éléments suivants : 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 endosser. Demandez-le à votre administrateur ou consultez-le sur la page Identity Management > Roles de la console RAM.
-
Cliquez sur Submit.
Une fois l'identité changée, vous utilisez la console en tant que rôle RAM. La zone de la photo 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 une étiquette RAM role qui identifie le type d'identité actuel. En bas, les boutons Back to Logon Identity et Sign Out sont disponibles.
(Facultatif) Pour revenir à l'identité de connexion d'origine, placez le pointeur sur la photo 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é sur les rôles (première fois) | Non affiché | <RoleName>/<RoleSessionName> |
| Changement d'identité après connexion SSO basé sur les rôles | <SSO role name>/<RoleSessionName> |
<Switched role name>/<RoleSessionName> |
Descriptions des champs
RoleName: Le nom du rôle actuellement endossé.RoleSessionName: Le nom de session. Il s'agit du nom d'utilisateur RAM lors de la connexion d'un utilisateur RAM. 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.comIdentité actuelle :
alice-testrole/tom@example.com
Endosser un rôle RAM en appelant des opérations API
Vous pouvez appeler les opérations de STS pour endosser un rôle RAM et obtenir le jeton STS du rôle endossé. 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 endossé.
Opérations d'endossement de rôle
Le tableau suivant décrit les opérations d'endossement de rôle de STS. Choisissez une opération en fonction des informations d'identification ou de la méthode de fédération d'identités de l'appelant.
| API | Description |
| AssumeRole | Obtient le jeton STS pour endosser un rôle RAM. Applicable aux scénarios d'endossement de rôle utilisant des informations d'identification telles qu'une paire AccessKey ou un jeton STS. |
| AssumeRoleWithSAML | Obtient le jeton STS en utilisant une assertion SAML. Applicable aux scénarios de SSO basé sur les rôles SAML. |
| AssumeRoleWithOIDC | Obtient le jeton STS en utilisant un jeton OpenID Connect (OIDC). Applicable aux scénarios de SSO basé 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 endosser. 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 endossé au sein de la session de rôle actuelle.
Autorisations requises
Les autorisations requises varient selon l'opération utilisée pour l'endossement 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èmeAliyunSTSAssumeRoleAccessà 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 d'approbation du rôle RAM cible. Il n'est pas nécessaire d'attribuer séparément une stratégie 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'endossement de rôle afin d'endosser 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 endossé.
Endosser un rôle RAM en utilisant l'interface CLI Alibaba Cloud
L'exemple suivant montre comment utiliser l'interface CLI Alibaba Cloud pour endosser le rôle RAM admin-role et effectuer des tâches de gestion en tant que ce rôle.
-
Configurez les informations d'identification 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'endossement de rôle.aliyun configure --profile RamRoleArnProfile --mode RamRoleArn -
Comme invité, saisissez l'AccessKey ID, l'AccessKey Secret, l'ARN du rôle que vous souhaitez endosser, 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 Secondsconserve la valeur par défaut de 900 secondes (15 minutes) indiquée dans l'invite CLI. Cette valeur diffère de la valeur par défaut (3 600 secondes) du paramètreDurationSecondsdes opérationsAssumeRole*. -
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 endossé
admin-role, et non l'utilisateur RAM propriétaire de la paire AccessKey.Chaînage de rôlesaliyun ram ListUsers --profile RamRoleArnProfile
aliyun sts GetCallerIdentity --profile RamRoleArnProfile. La réponse contient l'ARN du rôle endossé.Pour endosser un autre rôle RAM en tant que rôle endossé, consultez
.
En cas d'échec de l'endossement 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 n'approuve que des principaux spécifiques tels qu'un utilisateur RAM spécifique, l'endossement de rôle peut échouer.
Si l'endossement 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 d'approbation du rôle cible.
Endossement de rôle intercomptes
L'endossement de rôle intercomptes vous permet d'utiliser une identité (un utilisateur RAM ou un rôle RAM) sous un compte Alibaba Cloud pour endosser un rôle RAM sous un autre compte Alibaba Cloud, et ainsi accéder aux ressources de ce compte.
L'endossement de rôle intercomptes nécessite les conditions suivantes :
Le rôle cible doit approuver le compte source, ou un utilisateur RAM ou un rôle RAM sous le compte source. Cela est défini par le mot-clé
Principaldans la politique d'approbation 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) endosse un rôle, puis continue d'endosser d'autres rôles en tant que ce rôle. Le chaînage de rôles s'appuie sur le mécanisme standard d'endossement de rôle décrit dans cette rubrique.
Pour permettre au Rôle A de continuer à endosser le Rôle B, le Rôle A doit disposer de l'autorisation d'opération sts:AssumeRole et le Rôle B doit approuver le Rôle A.
L'exemple suivant utilise l'interface CLI Alibaba Cloud pour illustrer le chaînage de rôles :
Suivez l'exemple de la section Use the CLI to assume a RAM role pour configurer l'interface CLI Alibaba Cloud et endosser le rôle
admin-role(le rôle source).Ajoutez la stratégie système
AliyunSTSAssumeRoleAccessau rôleadmin-role.-
Créez le rôle RAM cible, par exemple nommé
target-role. Modifiez la politique d'approbation du rôle cible et spécifiez l'identité commeadmin-roledans le mot-cléPrincipal:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<ACCOUNT_ID>:role/admin-role" ] } } ], "Version": "1" } -
Utilisez le mode ChainableProfile pour configurer l'interface CLI Alibaba Cloud.
aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn -
Comme invité, saisissez le nom du profil source, l'ARN du rôle que vous souhaitez continuer à endosser 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. -
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.enable auditing of role assumption
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 la 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 endossé avec succès un rôle. La durée de la 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 endosser à 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 endosser 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/jeton OIDC | Déterminée par l'IdP (généralement 1 heure) | Déterminée par l'IdP | Uniquement pour les scénarios de SSO basé 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 endosser 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 restreindre un utilisateur à l'endossement de rôles RAM spécifiques uniquement
La stratégie système AliyunSTSAssumeRoleAccess permet d'endosser tous les rôles RAM. Pour restreindre l'endossement de rôle à des rôles RAM spécifiques, configurez une stratégie d'accès personnalisée pour l'identité d'origine et modifiez la politique d'approbation 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 endosser un rôle RAM
Non. Un compte Alibaba Cloud (compte racine) ne peut pas basculer vers un rôle RAM dans la console, ni endosser un rôle RAM en appelant l'opération AssumeRole.
Que faire si les informations d'identification temporaires obtenues via l'endossement de rôle sont divulguées
Si les informations d'identification temporaires que vous avez obtenues via l'endossement de rôle sont divulguées, 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.