Obtención de una clave de acceso temporal y un token de seguridad a través de una delegación
Función
Esta API se utiliza para obtener una clave de acceso temporal y un token de seguridad mediante una delegación.
Las claves de acceso temporal y los tokens de seguridad son emitidos por el sistema a los usuarios de IAM, y pueden ser válidos durante 15 minutos a 24 horas. La clave de acceso temporal y el token de seguridad siguen el principio de privilegio mínimo. Se debe usar una clave de acceso temporal junto con un token de seguridad, y el campo x-security-token debe incluirse en el encabezado de solicitud. Para obtener más información, consulte ¿Cómo uso un AK/SK temporal para firmar solicitudes?
Se puede invocar a la API utilizando tanto el punto de conexión global como los puntos de conexión específicos de la región. Para los puntos de conexión de IAM, consulte Regiones y puntos de conexión.
URI
POST /v3.0/OS-CREDENTIAL/securitytokens
Parámetros de solicitud
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| Content-Type | Sí | String | Rellene application/json;charset=utf8 en este campo. |
| X-Auth-Token | Sí | String | Token con permisos de operador de agente. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| Sí | Object | Información de autenticación. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| methods | Sí | Array of strings | Método de autenticación. Establezca este parámetro en ["assume_role"]. |
| Sí | Object | Detalles sobre la cuenta de delegación y la delegación. | |
| No | Object | Permisos que se asignarán a la clave de acceso temporal y al token de seguridad (actualmente la política solo se aplica a OBS). Los permisos finales de la clave de acceso temporal y el token de seguridad son todos los permisos asignados a la delegación especificada y definidos en este parámetro. Para obtener más información sobre el formato y la sintaxis de las políticas de IAM, consulte Políticas. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| agency_name | Sí | String | Nombre de la delegación. Para obtener detalles sobre cómo obtener el nombre de la delegación, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación. |
| domain_id | No | String | ID de cuenta de la parte delegada. Se debe establecer el domain_id o domain_name. Se recomienda especificar domain_id. |
| domain_name | No | String | Nombre de la cuenta de la parte delegada. Se debe establecer el domain_id o domain_name. Se recomienda especificar domain_id. |
| duration_seconds | No | Integer | Período de validez (en segundos) del AK/SK y el token de seguridad. El valor varía de 15 minutos a 24 horas. El valor predeterminado es 15 minutos. |
| No | Object | Información de usuario de empresa de la parte delegada. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | No | String | Nombre de usuario de empresa de la parte delegada. El nombre debe constar de 5 a 64 caracteres, conteniendo solo letras (sensible a mayúsculas y minúsculas), dígitos, espacios, guiones (-), guiones bajos (_), y puntos (.) y debe comenzar con una letra. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| Version | Sí | String | Versión de política. Al crear una política personalizada, establezca este parámetro en 1.1. NOTA: 1.1: Política. Una política define los permisos necesarios para realizar operaciones en un recurso de nube específico bajo ciertas condiciones. |
| Sí | Array of objects | Sentencia de la política. Una política puede contener un máximo de ocho sentencias. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| Action | Sí | Array of strings | Permisos de operación específicos en un recurso. Para obtener más información sobre las acciones admitidas, consulta "Permisos y acciones admitidas" en la Referencia de API de servicios en la nube. NOTA:
|
| Effect | Sí | String | Efectos del permiso. El valor puede ser Allow o Deny. Si las sentencias Allow y Deny se encuentran en una política, la autenticación comienza desde las sentencias Deny. Opciones:
|
| Condition | No | Map<String,Map<String,Array<String>>> | Condiciones para que el permiso entre en vigor. Para obtener más información, consulte Creación de una política personalizada. NOTA: Tome la condición en la solicitud de ejemplo como un ejemplo, los valores de la clave de condición (obs:prefix) y cadena (public) deben ser iguales (StringEquals). "Condition": {
"StringEquals": {
"obs:prefix": [
"public"
]
}
} |
| Resource | No | Array of strings | Recurso en la nube. NOTA:
|
Parámetros de respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| Object | Resultado de autenticación. |
Solicitud de ejemplo
- Solicitud con session_user especificado (que contiene el nombre de usuario de empresa de la parte delegada)
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens{ "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600, "session_user": { "name": "SessionUserName" } } } } } - Solicitud con policy establecida para controlar los permisos asignados a la clave de acceso temporal y al token de seguridad obtenidos (actualmente, la política se aplica solo a OBS). Los permisos finales de la clave de acceso temporal y el token de seguridad son la intersección de los permisos asignados a la delegación especificada y definidos en policy.
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens{ "auth": { "identity": { "methods": [ "assume_role" ], "policy": { "Version": "1.1", "Statement": [{ "Effect": "allow", "Action": [ "obs:object:*" ], "Resource": ["obs:*:*:object:*"], "Condition": { "StringEquals": { "obs:prefix": ["public"] } } }] }, "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600 } } } }
- Solicitud sin session_user y policy especificadas
POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens{ "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600 } } } }
Ejemplo de respuesta
Código de estado: 201
La solicitud se ha realizado correctamente.
Las respuestas a todas las solicitudes anteriores son las mismas independientemente de si se especifica session_user o no. Si se especifica session_user, el token de seguridad contiene la información de usuario de empresa correspondiente.
{
"credential": {
"access": "E6DX0TF2ZREQ4Z...",
"expires_at": "2020-01-08T02:56:19.587000Z",
"secret": "w9ePum0qdfac39ErLD0UdjofYkqort6Iw....",
"securitytoken": "gQpjbi1ub3J0aC0..."
}
} Códigos de estado
| Código de estado | Descripción |
|---|---|
| 201 | La solicitud se ha realizado correctamente. |
| 400 | Parámetros no válidos. |
| 401 | Error de autenticación. |
| 403 | Acceso denegado. |
| 500 | Error de servidor interno. |
Códigos de error
Ninguno