Obtiene un token de Security Token Service (STS) para asumir un rol de Resource Access Management (RAM).
Descripción de la operación
Requisitos previos
No puede utilizar una cuenta de Alibaba Cloud para llamar a esta operación. El solicitante de esta operación solo puede ser un usuario de RAM o un rol de RAM. Asegúrese de que la política AliyunSTSAssumeRoleAccess esté adjunta al solicitante. Una vez que esta política se adjunta al solicitante, este tiene los permisos de administración sobre STS.
Si no adjunta la política AliyunSTSAssumeRoleAccess al solicitante, se devuelve el siguiente mensaje de error:
You are not authorized to do this action. You should be authorized by RAM.
Puede consultar la siguiente información para solucionar el error:
Causa del error: La política necesaria para asumir un rol de RAM no está adjunta al solicitante. Para resolver este problema, adjunte la política AliyunSTSAssumeRoleAccess o una política personalizada al solicitante. Para obtener más información, consulte ¿Puedo especificar el rol de RAM que puede asumir un usuario de RAM? y Conceder permisos a un usuario de RAM.
Causa del error: El solicitante no está autorizado para asumir el rol de RAM. Para resolver este problema, agregue el solicitante al elemento Principal en la política de confianza del rol de RAM. Para obtener más información, consulte Editar la política de confianza de un rol de RAM.
Mejores prácticas
Un token de STS es válido durante un período de tiempo después de su emisión, y el número de tokens de STS que se pueden emitir dentro de un intervalo también está limitado. Por lo tanto, se recomienda configurar un período de validez adecuado para un token de STS y reutilizar el token dentro de este período. Esto evita que la emisión frecuente de tokens de STS afecte negativamente a sus servicios si se envía un gran número de solicitudes. Para obtener más información sobre el límite, consulte ¿Está limitado el número de solicitudes de API de STS? Puede configurar el parámetro DurationSeconds para especificar un período de validez para un token de STS.
Cuando carga o descarga objetos de Object Storage Service (OSS) en dispositivos móviles, se envía un gran número de solicitudes de API de STS. En este caso, la reutilización de un token de STS podría no satisfacer sus requisitos empresariales. Para evitar que el límite de solicitudes de API de STS afecte el acceso a OSS, puede agregar una firma a la URL de un objeto de OSS. Para obtener más información, consulte Agregar firmas a las URL y Obtener información de firma del servidor y cargar datos en OSS.
Pruébelo ahora
Test
Autorización de RAM
|
Action |
Nivel de acceso |
Tipo de recurso |
Clave de condición |
Acción dependiente |
|
sts:AssumeRole |
get |
*Role
|
|
|
Parámetros de la solicitud
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
| DurationSeconds |
integer |
No |
El período de validez del token de STS. Unidad: segundos. Valor mínimo: 900. Valor máximo: el valor del parámetro Puede llamar a la operación CreateRole o UpdateRole para configurar el parámetro |
3600 |
| Policy |
string |
No |
La política que especifica los permisos del token de STS devuelto. Esto le permite implementar un control de acceso más detallado.
El valor debe tener una longitud de 1 a 2,048 caracteres. Para obtener más información sobre los elementos de política y ejemplos de políticas, consulte Elementos de política y Resumen de ejemplos de políticas. |
{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
| RoleArn |
string |
Sí |
El nombre de recurso de Alibaba Cloud (ARN) del rol de RAM. La entidad de confianza del rol de RAM es una cuenta de Alibaba Cloud. Para obtener más información, consulte Crear un rol de RAM para una cuenta de Alibaba Cloud de confianza y CreateRole. Formato: Puede ver los ARN de los roles de RAM mediante la consola de RAM o llamando a operaciones de API.
|
acs:ram::123456789012****:role/adminrole |
| RoleSessionName |
string |
Sí |
El nombre de la sesión de rol. El valor es definido por el usuario. En la mayoría de los casos, puede establecer este parámetro en la identidad del usuario que llama a la operación. Por ejemplo, puede especificar un nombre de usuario. Puede especificar El nombre debe tener una longitud de 2 a 64 caracteres y puede contener letras, dígitos y los siguientes caracteres especiales: |
alice |
| ExternalId |
string |
No |
El ID externo del rol de RAM. El valor de este parámetro lo proporciona una parte externa y se utiliza para evitar el problema de delegado confundido. Para obtener más información, consulte Usar ID externos para evitar el problema de delegado confundido. El ID debe tener una longitud de 2 a 1,224 caracteres y puede contener letras, dígitos y los siguientes caracteres especiales: |
abcd1234 |
| SourceIdentity |
string |
No |
La información de identidad de origen. Cuando un usuario asume un rol, la identidad de origen del usuario se puede especificar como la identidad inicial de una sesión. La identidad de origen especificada persiste durante toda la sesión de rol y no se puede cambiar. Esto garantiza la trazabilidad y la seguridad de las operaciones. El valor debe tener una longitud de 2 a 64 caracteres y puede contener letras, dígitos y los siguientes caracteres especiales: |
Alice |
Para obtener más información sobre los parámetros de solicitud comunes, consulte Parámetros comunes.
Elementos de la respuesta
|
Elemento |
Tipo |
Descripción |
Ejemplo |
|
object |
Los parámetros de respuesta. |
||
| RequestId |
string |
El ID de la solicitud. |
6894B13B-6D71-4EF5-88FA-F32781734A7F |
| AssumedRoleUser |
object |
La identidad temporal que utiliza para asumir el rol de RAM. |
|
| AssumedRoleId |
string |
El ID de la identidad temporal que utiliza para asumir el rol de RAM. |
34458433936495****:alice |
| Arn |
string |
El ARN de la identidad temporal que utiliza para asumir el rol de RAM. |
acs:ram::123456789012****:role/adminrole/alice |
| Credentials |
object |
Las credenciales de STS. |
|
| SecurityToken |
string |
El token de STS. Nota
Alibaba Cloud STS no impone límites en la longitud de los tokens de STS. Se recomienda no especificar una longitud máxima para los tokens de STS. |
******** |
| Expiration |
string |
La hora en la que caduca el token de STS. La hora se muestra en UTC. |
2015-04-09T11:52:19Z |
| AccessKeySecret |
string |
La clave secreta de AccessKey. |
wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** |
| AccessKeyId |
string |
El ID de AccessKey. |
STS.L4aBSCSJVMuKg5U1**** |
| SourceIdentity |
string |
La información de identidad de origen. Cuando un usuario asume un rol, la identidad de origen del usuario se puede especificar como la identidad inicial de una sesión. La identidad de origen especificada persiste durante toda la sesión de rol y no se puede cambiar. Esto garantiza la trazabilidad y la seguridad de las operaciones. Si el parámetro SourceIdentity no se especificó en la solicitud, este campo se omite en la respuesta. |
Alice |
Ejemplos
Respuesta exitosa
JSON Formato
{
"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"
}
Códigos de error
|
Código de estado HTTP |
Código de error |
Mensaje de error |
Descripción |
|---|---|---|---|
| 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 . |
Consulte Códigos de error para ver la lista completa.
Notas de la versión
Consulte Notas de la versión para ver la lista completa.