Binding a Signature Key
Function
A signature key takes effect only after being bound to an API.
When requesting the backend service, APIG uses the signature key to cryptographically sign requests. The backend service verifies the signature to identify request sources.
This API is used to bind a signature key to one or more published APIs. You can bind different signature keys to an API in different environments, but can bind only one signature key to the API in each environment.
Calling Method
For details, see Calling APIs.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
apig:api:bindSignatureKey
Write
instance *
g:ResourceTag/<tag-key>
apig:apis:bindSigns
- apig:instance:get
- apig:api:get
- apig:signatureKey:list
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | Yes | String | Project ID. For details about how to obtain it, see Obtaining a Project ID. |
| instance_id | Yes | String | Gateway ID, which can be obtained from the gateway information on the APIG console. |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| X-Auth-Token | Yes | String | User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| sign_id | Yes | String | Signature key ID. |
| publish_ids | Yes | Array of strings | API publication record ID. |
Response Parameters
Status code: 201
| Parameter | Type | Description |
|---|---|---|
| bindings | Array of SignApiBindingInfo objects | APIs bound to the signature key. |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_msg | String | Error message. |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_msg | String | Error message. |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_msg | String | Error message. |
Status code: 404
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_msg | String | Error message. |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_msg | String | Error message. |
Example Requests
Binding a signature key to a published API
{
"sign_id" : "0b0e8f456b8742218af75f945307173c",
"publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ]
} Example Responses
Status code: 201
Created
{
"bindings" : [ {
"api_id" : "5f918d104dc84480a75166ba99efff21",
"sign_secret" : "dc0************2b3",
"group_name" : "api_group_001",
"sign_id" : "0b0e8f456b8742218af75f945307173c",
"sign_key" : "a071a20d460a4f639a636c3d7e3d8163",
"binding_time" : "2020-08-03T04:00:11.638167852Z",
"env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
"env_name" : "RELEASE",
"sign_name" : "signature_demo",
"api_type" : 1,
"api_name" : "Api_http",
"id" : "25082bd52f74442bb1d273993d567938",
"api_remark" : "Web backend API"
} ]
} Status code: 400
Bad Request
{
"error_code" : "APIG.2012",
"error_msg" : "Invalid parameter value,parameterName:sign_id. Please refer to the support documentation"
} Status code: 401
Unauthorized
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
} Status code: 403
Forbidden
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
} Status code: 404
Not Found
{
"error_code" : "APIG.3017",
"error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist"
} Status code: 500
Internal Server Error
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
} Status Codes
| Status Code | Description |
|---|---|
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot