Obtient un jeton Security Token Service (STS) pour endosser un rôle Resource Access Management (RAM).
Description de l'opération
Prérequis
Vous ne pouvez pas utiliser un compte Alibaba Cloud pour appeler cette opération. L'auteur de la requête de cette opération ne peut être qu'un utilisateur RAM ou un rôle RAM. Assurez-vous que la stratégie AliyunSTSAssumeRoleAccess est jointe à l'auteur de la requête. Une fois cette stratégie jointe à l'auteur de la requête, ce dernier dispose des autorisations de gestion sur STS.
Si vous ne joignez pas la stratégie AliyunSTSAssumeRoleAccess à l'auteur de la requête, le message d'erreur suivant est renvoyé :
You are not authorized to do this action. You should be authorized by RAM.
Vous pouvez vous référer aux informations suivantes pour résoudre l'erreur :
Cause de l'erreur : la stratégie requise pour endosser un rôle RAM n'est pas jointe à l'auteur de la requête. Pour résoudre ce problème, joignez la stratégie AliyunSTSAssumeRoleAccess ou une stratégie personnalisée à l'auteur de la requête. Pour plus d'informations, consultez Puis-je spécifier le rôle RAM qu'un utilisateur RAM peut endosser ? et Accorder des autorisations à un utilisateur RAM.
Cause de l'erreur : l'auteur de la requête n'est pas autorisé à endosser le rôle RAM. Pour résoudre ce problème, ajoutez l'auteur de la requête à l'élément Principal dans la stratégie de confiance du rôle RAM. Pour plus d'informations, consultez Modifier la stratégie de confiance d'un rôle RAM.
Bonnes pratiques
Un jeton STS est valide pendant une certaine période après son émission, et le nombre de jetons STS pouvant être émis dans un intervalle donné est également limité. Par conséquent, nous vous recommandons de configurer une durée de validité appropriée pour un jeton STS et de réutiliser ce jeton pendant cette période. Cela évite que l'émission fréquente de jetons STS n'affecte négativement vos services en cas d'envoi d'un grand nombre de requêtes. Pour plus d'informations sur cette limite, consultez Le nombre de requêtes d'API STS est-il limité ? Vous pouvez configurer le paramètre DurationSeconds pour spécifier une durée de validité pour un jeton STS.
Lorsque vous chargez ou téléchargez des objets Object Storage Service (OSS) sur des appareils mobiles, un grand nombre de requêtes d'API STS sont envoyées. Dans ce cas, la réutilisation d'un jeton STS peut ne pas répondre à vos exigences métier. Pour éviter que la limite des requêtes d'API STS n'affecte l'accès à OSS, vous pouvez ajouter une signature à l'URL d'un objet OSS. Pour plus d'informations, consultez Ajouter des signatures aux URL et Obtenir des informations de signature auprès du serveur et charger des données vers OSS.
Testez maintenant
Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.
Test
Autorisation RAM
|
sts:AssumeRole |
get |
*Role
|
|
|
Paramètres de requête
|
Paramètre |
Type |
Requis |
Description |
Exemple |
| DurationSeconds |
integer |
Non |
La durée de validité du jeton STS. Unité : secondes. Valeur minimale : 900. Valeur maximale : la valeur du paramètre MaxSessionDuration. Valeur par défaut : 3600. Vous pouvez appeler l'opération CreateRole ou UpdateRole pour configurer le paramètre MaxSessionDuration. Pour plus d'informations, consultez CreateRole et UpdateRole. |
3600 |
| Policy |
string |
Non |
La stratégie qui spécifie les autorisations du jeton STS renvoyé. Cela vous permet de mettre en œuvre un contrôle d'accès plus granulaire.
La valeur doit comporter de 1 à 2 048 caractères. Pour plus d'informations sur les éléments de stratégie et les exemples de stratégies, consultez Éléments de stratégie et Vue d'ensemble des exemples de stratégies. |
{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
| RoleArn |
string |
Oui |
L'Alibaba Cloud Resource Name (ARN) du rôle RAM. L'entité de confiance du rôle RAM est un compte Alibaba Cloud. Pour plus d'informations, consultez Créer un rôle RAM pour un compte Alibaba Cloud de confiance et CreateRole. Format : Vous pouvez consulter les ARN des rôles RAM en utilisant la console RAM ou en appelant des opérations d'API.
|
acs:ram::123456789012****:role/adminrole |
| RoleSessionName |
string |
Oui |
Le nom de la session de rôle. La valeur est définie par l'utilisateur. Dans la plupart des cas, vous pouvez définir ce paramètre sur l'identité de l'utilisateur qui appelle l'opération. Par exemple, vous pouvez spécifier un nom d'utilisateur. Vous pouvez spécifier RoleSessionName pour identifier les appelants d'API qui endossent le même rôle RAM dans les journaux ActionTrail. Cela vous permet de suivre les utilisateurs qui effectuent les opérations. Le nom doit comporter de 2 à 64 caractères et peut contenir des lettres, des chiffres et les caractères spéciaux suivants : |
alice |
| ExternalId |
string |
Non |
L'identifiant externe du rôle RAM. La valeur de ce paramètre est fournie par une partie externe et est utilisée pour éviter le problème de confusion de mandataire. Pour plus d'informations, consultez Utiliser des identifiants externes pour éviter le problème de confusion de mandataire. L'identifiant doit comporter de 2 à 1 224 caractères et peut contenir des lettres, des chiffres et les caractères spéciaux suivants : |
abcd1234 |
| SourceIdentity |
string |
Non |
Les informations d'identité source. Lorsqu'un utilisateur endosse un rôle, l'identité source de l'utilisateur peut être spécifiée comme identité initiale d'une session. L'identité source spécifiée persiste tout au long de la session de rôle et ne peut pas être modifiée. Cela garantit la traçabilité et la sécurité des opérations. La valeur doit comporter de 2 à 64 caractères et peut contenir des lettres, des chiffres et les caractères spéciaux suivants : |
Alice |
Pour plus d'informations sur les paramètres de requête courants, consultez Paramètres courants.
Éléments de réponse
|
Élément |
Type |
Description |
Exemple |
|
object |
Les paramètres de réponse. |
||
| RequestId |
string |
L'identifiant de la requête. |
6894B13B-6D71-4EF5-88FA-F32781734A7F |
| AssumedRoleUser |
object |
L'identité temporaire que vous utilisez pour endosser le rôle RAM. |
|
| AssumedRoleId |
string |
L'identifiant de l'identité temporaire que vous utilisez pour endosser le rôle RAM. |
34458433936495****:alice |
| Arn |
string |
L'ARN de l'identité temporaire que vous utilisez pour endosser le rôle RAM. |
acs:ram::123456789012****:role/adminrole/alice |
| Credentials |
object |
Les informations d'identification STS. |
|
| SecurityToken |
string |
Le jeton STS. Remarque
Alibaba Cloud STS n'impose pas de limites sur la longueur des jetons STS. Nous vous recommandons de ne pas spécifier de longueur maximale pour les jetons STS. |
******** |
| Expiration |
string |
L'heure d'expiration du jeton STS. L'heure est affichée en UTC. |
2015-04-09T11:52:19Z |
| AccessKeySecret |
string |
Le secret AccessKey. |
wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** |
| AccessKeyId |
string |
L'identifiant AccessKey. |
STS.L4aBSCSJVMuKg5U1**** |
| SourceIdentity |
string |
Les informations d'identité source. Lorsqu'un utilisateur endosse un rôle, l'identité source de l'utilisateur peut être spécifiée comme identité initiale d'une session. L'identité source spécifiée persiste tout au long de la session de rôle et ne peut pas être modifiée. Cela garantit la traçabilité et la sécurité des opérations. Si le paramètre SourceIdentity n'a pas été spécifié dans la requête, ce champ est omis de la réponse. |
Alice |
Exemples
JSON format
{
"RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F",
"AssumedRoleUser": {
"AssumedRoleId": "34458433936495****:alice",
"Arn": "acs:ram::123456789012****:role/adminrole/alice"
},
"Credentials": {
"SecurityToken": "********",
"Expiration": "2015-04-09T11:52:19Z",
"AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
"AccessKeyId": "STS.L4aBSCSJVMuKg5U1****"
},
"SourceIdentity": "Alice"
}
Codes d'erreur
|
Code de statut HTTP |
Code d'erreur |
Message d'erreur |
Description |
|---|---|---|---|
| 400 | InvalidParameter.DurationSeconds | The Min/Max value of DurationSeconds is 15min/1hr. | DurationSeconds parameter is illegal, DurationSeconds minimum value is 15 minutes, maximum value is 1 hour |
| 400 | InvalidParameter.ExternalId | The parameter ExternalId is wrongly formed. | Parameters |
| 400 | InvalidParameter.RoleArn | The parameter RoleArn is wrongly formed. | Parameters |
| 400 | InvalidParameter.RoleSessionName | The parameter RoleSessionName is wrongly formed. | |
| 400 | InvalidParameter.SerialNumber | The parameter SerialNumber is wrongly formed. | |
| 400 | InvalidParameter.TokenCode | The parameter TokenCode is wrongly formed. | |
| 400 | InvalidParameter.PolicyGrammar | The parameter Policy has not passed grammar check. | Parameter Policy syntax format check failed |
| 400 | InvalidParameter.PolicySize | The size of Policy must be smaller than 2048 bytes. | The policy parameter is invalid. The policy length must be less than 2048 bytes. |
| 400 | InvalidParameter.ContentType | The ContentType request header must be either "application/json" or "application/x-www-form-urlencoded". | |
| 500 | InternalError | STS Server Internal Error happened, please send the RequestId to us. | |
| 403 | NoPermission | You are not authorized to do this action. You should be authorized by RAM. | |
| 403 | AuthenticationFail.ApiUsername | The specified api username is not legal. | |
| 403 | AuthenticationFail.ApiPassword | The specified api password is not legal. | |
| 404 | EntityNotExist.Role | The specified Role not exists . |
Consultez Codes d'erreur pour la liste complète.
Notes de version
Consultez Notes de version pour la liste complète.