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 un token de seguridad a través de un token
Actualización más reciente 2024-08-01 GMT+08:00

Obtención de una clave de acceso temporal y un token de seguridad a través de un token

Función

Esta API se utiliza para obtener una clave de acceso temporal y un token de seguridad a través de un token. 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. Las claves de acceso temporal y los tokens de seguridad se otorgan con el menor privilegio.

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.

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?

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 de usuario de IAM, token de usuario federado o token de delegación.

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. El valor de este campo es ["token"].

token

No

Object

Período de validez de una clave de acceso temporal y un token de seguridad.

policy

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 la intersección de los permisos asignados al token de usuario especificado 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.

Tabla 5 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.

Tabla 6 auth.identity.policy.Statement

Parámetro

Obligatorio

Tipo

Descripción

Action

Array of strings

Permisos de operación específicos en un recurso. Para obtener más información sobre las acciones admitidas, consulte "Permisos y acciones admitidas" en la Referencia de API de servicios en la nube.

NOTA:
  • El formato de valor es Service name:Resource type:Operation, por ejemplo, vpc:ports:create.
  • Service name: indica el nombre del producto, como ecs, evs, o vpc. Solo se permiten letras minúsculas. Los tipos de recursos y las operaciones no distinguen entre mayúsculas y minúsculas. You can use an asterisk (*) to represent all operations.

Effect

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:

  • Allow
  • Deny

Condition

No

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

Condiciones para que el permiso entre en vigor. Para obtener más información, consulte Sintaxis de la política.

NOTA:

En el siguiente ejemplo de solicitud, la política solo está en vigor cuando DomainName está establecido en DomainNameExample.

 "Condition": {
              "StringEquals": {
                "g:DomainName": [
                  "DomainNameExample"
                ]
              }
            }

Resource

No

Array of strings

Recurso en la nube.

NOTA:
  • Formato: Service name:Region:Domain ID:Resource type:Resource path. Se admiten caracteres comodín (*). Por ejemplo, obs:*:*:bucket:* significa todos los buckets OBS. Para obtener más información sobre los servicios en la nube que admiten la autorización a nivel de recursos, consulte Servicios en la nube admitidos por IAM.
  • 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.
  • El nombre del servicio, la región, el ID de dominio y el tipo de recurso pueden tener de 1 a 50 caracteres, incluidos letras, dígitos, guiones bajos (_), guiones (-) y asteriscos (*). La ruta de recursos puede tener de 1 a 1200 caracteres, excluidos puntos y coma (;), barras verticales (|), tildes (~), comillas a contracorriente (`), corchetes ({}), corchetes cuadrados ([]), y corchetes angulares (<>).
Tabla 7 auth.identity.token

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

Token. Este parámetro es obligatorio si no se especifica X-Auth-Token en el encabezado de la solicitud.

duration_seconds

No

Integer

Período de validez (en segundos) de una clave de acceso temporal y un token de seguridad.

El valor varía de 15 minutos a 24 horas. El valor predeterminado es 15 minutos.

Parámetros de respuesta

Tabla 8 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

credential

Object

Resultado de autenticación.

Tabla 9 credential

Parámetro

Tipo

Descripción

expires_at

String

Tiempo de caducidad de la clave de acceso y el token de seguridad. 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 token (especificando el período de validez de una clave de acceso temporal y un token de seguridad)
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "token"
                ],
                "token": {
                    "id": "MIIEIgYJKoZIhvc...",
                    "duration_seconds": "900"
                }
            }
        }
    }
  • Solicitud con el encabezado X-Auth-Token pero sin el parámetro token
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "token"
                ]
            }
        }
    }
  • 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 al token de usuario especificado y definidos en este parámetro.
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
      "auth": {
        "identity": {
          "methods": [
            "token"
          ],
          "policy": {
            "Version": "1.1",
            "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                  "obs:object:GetObject"
                ],
                "Resource": [
                  "OBS:*:*:object:*"
                ],
                "Condition": {
                  "StringEquals": {
                    "g:DomainName": [
                      "DomainNameExample"                    //Example condition value. Replace it with the actual value.
                    ]
                  }
                }
              }
            ]
          },
          "token": {
            "duration_seconds": 900
          }
        }
      }
    }

Ejemplo de respuesta

Código de estado: 201

La solicitud se ha realizado correctamente.

{
    "credential": {
        "access": "NZFAT5VNWEJDGZ4PZ...",
        "expires_at": "2020-01-08T03:50:07.574000Z",
        "secret": "riEoWsy3qO0BvgwfkoLVgCUvzgpjBBcvdq...",
        "securitytoken": "gQpjbi1ub3J0aC00jD4Ej..."
    }
}

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