Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda> Identity and Access Management> Referencia de la API> API> Gestión de claves de acceso> Obtención de una clave de acceso temporal y SecurityToken a través de una agencia
Actualización más reciente 2022-11-08 GMT+08:00

Obtención de una clave de acceso temporal y SecurityToken a través de una agencia

Función

Esta API se utiliza para obtener una clave de acceso temporal y securityToken mediante una agencia.

El sistema emite una clave de acceso temporal y un token de seguridad a los usuarios de IAM, y puede ser válido durante 15 minutos a 24 horas. La clave de acceso temporal y securityToken siguen el principio de privilegio mínimo. Se debe usar una clave de acceso temporal junto con un securityToken, y el campo x-security-token se debe incluir en el encabezado de solicitud. Para obtener más información, consulte ¿Cómo uso un AK/SK temporal para firmar solicitudes?

Se puede llamar a la API utilizando tanto el punto final global como los puntos de conexión específicos de la región. Para los puntos finales de IAM, consulte Regions y puntos de conexión.

URI

POST /v3.0/OS-CREDENTIAL/securitytokens

Parámetros de solicitud

Tabla 1 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Rellene application/json;charset=utf8 en este campo.

X-Auth-Token

String

Token con permisos de operador de agente.

Tabla 2 Parámetros en el cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

auth

Object

Información de autenticación.

Tabla 3 auth

Parámetro

Obligatorio

Tipo

Descripción

identity

Object

Parámetros de autenticación.

Tabla 4 auth.identity

Parámetro

Obligatorio

Tipo

Descripción

methods

Array of strings

Método de autenticación. Establezca este parámetro en ["assume_role"].

assume_role

Object

Detalles sobre la cuenta de delegación y la agencia.

policy

No

Object

Permisos OBS que se asignarán a la clave de acceso temporal y securityToken.

Los permisos finales de la clave de acceso temporal y securityToken son todos los permisos asignados a la agencia especificada y definidos en este parámetro.

Para obtener más información acerca de la sintaxis y el formato de las políticas de IAM, consulte Políticas.

Tabla 5 auth.identity.assume_role

Parámetro

Obligatorio

Tipo

Descripción

agency_name

String

Nombre de la agencia. Para obtener detalles sobre cómo obtener el nombre de la agencia, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y agencia.

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 securityToken. El valor varía de 15 minutos a 24 horas. El valor predeterminado es 15 minutos.

session_user

No

Object

Información de usuario de empresa de la parte delegada.

Tabla 6 auth.identity.assume_role.session_user

Parámetro

Obligatorio

Tipo

Descripción

name

No

String

Nombre de usuario de empresa de la parte delegada.

El nombre debe constar de 1 a 32 caracteres, conteniendo solo letras (sensible a mayúsculas), dígitos, espacios, guiones (-) y guiones bajos (.) y puntos (.) y debe comenzar con un dígito.

Tabla 7 auth.identity.policy

Parámetro

Obligatorio

Tipo

Descripción

Version

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.

Statement

Array of objects

Sentencia de la política. Una política puede contener un máximo de ocho sentencias.

Tabla 8 auth.identity.policy.Statement

Parámetro

Obligatorio

Tipo

Descripción

Action

Array of strings

Permiso de operación específico en un recurso. Se permite un máximo de 100 acciones.

NOTA:
  • El formato de valor es Service name:Resource type:Operation, por ejemplo, vpc:ports:create.
  • Nombre del servicio: indica el nombre del producto, como ecs, evs, or vpc. Solo se permiten letras minúsculas. Los tipos de recursos y las operaciones no distinguen entre mayúsculas y minúsculas. Puede utilizar un asterisco (*) para representar todas las operaciones.

Effect

String

Efectos de la autorización. El valor puede ser Allow o Deny. Si las instrucciones Permitir y Deny se encuentran en una política, la autenticación comienza desde las sentencias Deny.

Opciones:

  • Allow
  • Deny

Condition

No

Map<String,Map<String,Array<String>>>

Condiciones para que el permiso entre en vigor. Se permite un máximo de 10 condiciones. Para obtener más información sobre los parámetros de condició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. La matriz puede contener un máximo de 10 cadenas de recursos, y cada cadena no puede exceder de 128 caracteres.

NOTA:
  • Formato: Service name:Region:Account ID:Resource type:Resource path. Se admiten caracteres carácter comodín (*). Por ejemplo, obs:*:*:bucket:* significa todos los buckets OBS.
  • El segmento de región puede ser * o una región accesible para el usuario. El recurso especificado debe pertenecer al servicio correspondiente que realmente existe.

Parámetros de respuesta

Tabla 9 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

credential

Object

Resultado de autenticación.

Tabla 10 credential

Parámetro

Tipo

Descripción

expires_at

String

Tiempo de caducidad de la clave de acceso y securityToken. La respuesta es hora UTC.

access

String

AK.

secret

String

SK.

securitytoken

String

Clave de acceso obtenida en texto cifrado.

Solicitud de ejemplo

  • Solicitud con el parámetro session_user
    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 el parámetro de 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 el parámetro session_user o policy
    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 securityToken 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

Authentication failed.

403

Acceso denegado.

500

Error de servidor interno.

Códigos de error

Ninguno