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.
Actualización más reciente 2025-12-22 GMT+08:00

Creación de una clave de firma

Función

Es una buena práctica proporcionar un mecanismo de protección para que las API garanticen la seguridad del acceso. Por ejemplo, autenticar fuentes de solicitud de API y denegar el acceso de fuentes no autorizadas.

Una clave de firma es un mecanismo de protección en el caso.

Cree una clave de firma y vincúlela a una API. Al solicitar la API, APIG utiliza la clave de firma para cifrar datos de parámetros de solicitud y generar una firma. El servicio de backend de la API verifica las solicitudes mediante la firma. Se denegarán las solicitudes no autorizadas para proteger la API contra ataques de fuentes desconocidas.

Método de invocación

Para obtener más información, véase invocación de API.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/signs

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener más información sobre cómo obtenerlo, véase Obtención de un ID de proyecto.

instance_id

String

ID de gateway, que se puede obtener de la información de gateway en la consola de APIG.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Token de usuario. Se puede obtener invocando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token.

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre de clave de firma. Puede contener letras, dígitos y guiones bajos (_) y debe comenzar con una letra.

Mínimo: 3

Máximo: 64

sign_type

No

String

Tipo de clave de firma:

  • hmac

    -basic

    -public_key

    -aes

Para utilizar una clave de firma básica, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway.

Para usar una clave de firma de public_key, asegúrese de que la función public_key se haya configurado para su gateway. Para obtener más información, consulte "Apéndice" > "Características compatibles". Si su gateway no admite esta función, póngase en contacto con el soporte técnico para habilitarla.

Para utilizar una clave de firma AES, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway.

sign_key

No

String

Clave de firma.

  • hmac: El valor contiene de 8 a 32 caracteres, incluidas letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • basic: El valor contiene de 4 a 32 caracteres, incluidos letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra. Si no se especifica, se genera automáticamente una clave.

  • public_key: El valor contiene de 8 a 512 caracteres, incluidos letras, dígitos y caracteres especiales (_-+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

  • aes: El valor contiene 16 caracteres si se utiliza el algoritmo aes-128-cfb o 32 caracteres si se utiliza el algoritmo aes-256-cfb. Se permiten letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

sign_secret

No

String

Secreto de firma.

  • hmac: El valor contiene de 16 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • basic: El valor contiene de 8 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • public_key: el valor contiene de 16 a 2048 caracteres, incluidos letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

  • aes: El valor contiene 16 caracteres, incluidas letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

sign_algorithm

No

String

Algoritmo de firma. Especifique un algoritmo de firma solo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo.

Parámetros de respuesta

Código de estado: 201

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

name

String

Nombre de clave de firma. Puede contener letras, dígitos y guiones bajos (_) y debe comenzar con una letra.

Mínimo: 3

Máximo: 64

sign_type

String

Tipo de clave de firma:

  • hmac

    -basic

    -public_key

    -aes

Para utilizar una clave de firma básica, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway.

Para usar una clave de firma de public_key, asegúrese de que la función public_key se haya configurado para su gateway. Para obtener más información, consulte "Apéndice" > "Características compatibles". Si su gateway no admite esta función, póngase en contacto con el soporte técnico para habilitarla.

Para utilizar una clave de firma AES, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway.

sign_key

String

Clave de firma.

  • hmac: El valor contiene de 8 a 32 caracteres, incluidas letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • basic: El valor contiene de 4 a 32 caracteres, incluidos letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra. Si no se especifica, se genera automáticamente una clave.

  • public_key: El valor contiene de 8 a 512 caracteres, incluidos letras, dígitos y caracteres especiales (_-+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

  • aes: El valor contiene 16 caracteres si se utiliza el algoritmo aes-128-cfb o 32 caracteres si se utiliza el algoritmo aes-256-cfb. Se permiten letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

sign_secret

String

Secreto de firma.

  • hmac: El valor contiene de 16 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • basic: El valor contiene de 8 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • public_key: el valor contiene de 16 a 2048 caracteres, incluidos letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

  • aes: El valor contiene 16 caracteres, incluidas letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

sign_algorithm

String

Algoritmo de firma. Especifique un algoritmo de firma solo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo.

update_time

String

Tiempo de actualización.

create_time

String

Tiempo de creación.

id

String

ID de clave de firma.

Código de estado: 400

Tabla 5 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 401

Tabla 6 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 403

Tabla 7 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 404

Tabla 8 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Descripción de error.

Código de estado: 412

Tabla 9 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Descripción de error.

Código de estado: 500

Tabla 10 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Ejemplo de las solicitudes

Cree una clave de firma con una clave personalizada y un secreto.

{
  "name" : "signature_demo",
  "sign_key" : "signkeysignkey",
  "sign_secret" : "sig************ret"
}

Ejemplo de respuestas

Código de estado: 201

Creado

{
  "sign_secret" : "sig************ret",
  "update_time" : "2020-08-03T03:39:38.119032888Z",
  "create_time" : "2020-08-03T03:39:38.119032659Z",
  "name" : "signature_demo",
  "id" : "0b0e8f456b8742218af75f945307173c",
  "sign_key" : "signkeysignkey",
  "sign_type" : "hmac"
}

Código de estado: 400

Error en la solicitud

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation"
}

Código de estado: 401

Sin autorización

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Código de estado: 403

Prohibido

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Código de estado: 404

No se ha encontrado

{
  "error_code" : "APIG.3030",
  "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}

Código de estado: 412

PreconditionFailed

{
  "error_code" : "APIG.3548",
  "error_msg" : "sign_type=public_key not supported by instance 6a29d4e9-69a0-412a-aabe-9898ec0903b0"
}

Código de estado: 500

Error del servidor interno

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Códigos de estado

Código de estado

Descripción

201

Creado

400

Error en la solicitud

401

Sin autorización

403

Prohibido

404

No se ha encontrado

412

PreconditionFailed

500

Error del servidor interno

Códigos de error

Consulte Códigos de error.