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