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-04-08 GMT+08:00

Consulta de información de vulnerabilidad de imagen

Función

Esta API se utiliza para consultar información de vulnerabilidades de imágenes.

Método de invocación

Para obtener más información, consulte Invocación a las API.

URI

GET /v5/{project_id}/image/{image_id}/vulnerabilities

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto del tenant

Mínimo: 1

Máximo: 256

image_id

String

ID de imagen

Mínimo: 0

Máximo: 128

Tabla 2 Parámetros de consulta

Parámetro

Obligatorio

Tipo

Descripción

enterprise_project_id

No

String

ID de proyecto empresarial. Para consultar todos los proyectos empresariales, establezca este parámetro en all_granted_eps.

Valor predeterminado: 0

Mínimo: 1

Máximo: 256

image_type

String

Tipo de imagen. Las opciones son las siguientes:

  • private_image: repositorio de imágenes privadas

  • shared_image: repositorio de imágenes compartidas

Mínimo: 1

Máximo: 32

offset

No

Integer

Desfase, que especifica la posición inicial del registro que se va a devolver. El valor debe ser un número no menor que 0. El valor predeterminado es 0.

Mínimo: 0

Máximo: 2000000

Valor predeterminado: 0

limit

No

Integer

Número de registros mostrados en cada página.

Mínimo: 10

Máximo: 200

Valor predeterminado: 10

instance_id

No

String

ID de instancia de repositorio de empresa. Esta API no es necesaria para la edición compartida de SWR.

Mínimo: 0

Máximo: 128

namespace

String

Nombre de la organización

Mínimo: 0

Máximo: 64

image_name

String

Nombre de imagen

Mínimo: 0

Máximo: 128

tag_name

String

Etiqueta de imagen

Mínimo: 0

Máximo: 64

repair_necessity

No

String

Nivel de riesgo. Las opciones son las siguientes:

  • immediate_repair: alto riesgo

  • delay_repair: riesgo medio

  • not_needed_repair: bajo riesgo

Mínimo: 0

Máximo: 32

vul_id

No

String

ID de vulnerabilidad (se admite búsqueda difusa)

Mínimo: 0

Máximo: 64

app_name

No

String

Software

Mínimo: 0

Máximo: 64

type

No

String

Tipo de vulnerabilidad. Las opciones son las siguientes: -linux_vul: vulnerabilidad de Linux -app_vul: vulnerabilidad de aplicación

Mínimo: 0

Máximo: 32

Parámetros de solicitud

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

Mínimo: 1

Máximo: 32768

region

String

ID de región

Mínimo: 0

Máximo: 128

Parámetros de respuesta

Código de estado: 200

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

total_num

Integer

Número total de vulnerabilidades de imagen

Mínimo: 0

Máximo: 2147483547

data_list

Array of ImageVulInfo objects

Lista de vulnerabilidades de imagen

Longitud de la matriz: 0 - 10241

Tabla 5 ImageVulInfo

Parámetro

Tipo

Descripción

vul_id

String

ID de vulnerabilidad

Mínimo: 0

Máximo: 128

repair_necessity

String

Nivel de emergencia. Sus valores y significados son los siguientes:

  • immediate_repair: alto riesgo

  • delay_repair: riesgo medio

  • not_needed_repair: bajo riesgo

Mínimo: 0

Máximo: 128

description

String

Descripción de la vulnerabilidad

Mínimo: 0

Máximo: 128

position

String

Imagen en la que existe una vulnerabilidad

Mínimo: 0

Máximo: 128

app_name

String

Nombre del software de la vulnerabilidad

Mínimo: 0

Máximo: 128

app_path

String

Ruta del software de la aplicación (Este campo solo está disponible para las vulnerabilidades de la aplicación).

Mínimo: 1

Máximo: 512

version

String

Versión de software

Mínimo: 0

Máximo: 128

solution

String

Solución

Mínimo: 0

Máximo: 256

url

String

Dirección del parche

Mínimo: 0

Máximo: 128

Solicitudes de ejemplo

Consultar la información de vulnerabilidad de la imagen privada cuyo espacio de nombres es scc_hss_container, el nombre de la imagen es apptest y la versión de la imagen es V1.

GET https://{endpoint}/v5/{project_id}/image/{image_id}/vulnerabilities?limit=10&offset=0&namespace=scc_hss_container&tag_name=v1&image_name=apptest&image_type=private_image&type=linux_vul&enterprise_project_id=all_granted_eps

Ejemplo de respuestas

Código de estado: 200

Lista de vulnerabilidades de imagen

{
  "total_num" : 1,
  "data_list" : [ {
    "app_name" : "xz-lib",
    "description" : "online",
    "position" : "sha256:74ddd0ec08fa43dXXXX",
    "repair_necessity" : "delay_repair",
    "solution" : "To upgrade the affected software",
    "url" : "https://access.redhat.com/errata/RHSAXXX",
    "version" : "5.2.4-3.el8",
    "vul_id" : "RHSA-2022:49XX"
  } ]
}

Código de ejemplo del SDK

El código de ejemplo del SDK es el siguiente.

Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.hss.v5.region.HssRegion;
import com.huaweicloud.sdk.hss.v5.*;
import com.huaweicloud.sdk.hss.v5.model.*;


public class ListImageVulnerabilitiesSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        ListImageVulnerabilitiesRequest request = new ListImageVulnerabilitiesRequest();
        request.withEnterpriseProjectId("<enterprise_project_id>");
        request.withImageType("<image_type>");
        request.withOffset(<offset>);
        request.withLimit(<limit>);
        request.withInstanceId("<instance_id>");
        request.withNamespace("<namespace>");
        request.withImageName("<image_name>");
        request.withTagName("<tag_name>");
        request.withRepairNecessity("<repair_necessity>");
        request.withVulId("<vul_id>");
        request.withAppName("<app_name>");
        request.withType("<type>");
        try {
            ListImageVulnerabilitiesResponse response = client.listImageVulnerabilities(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkhss.v5.region.hss_region import HssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkhss.v5 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = HssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(HssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListImageVulnerabilitiesRequest()
        request.enterprise_project_id = "<enterprise_project_id>"
        request.image_type = "<image_type>"
        request.offset = <offset>
        request.limit = <limit>
        request.instance_id = "<instance_id>"
        request.namespace = "<namespace>"
        request.image_name = "<image_name>"
        request.tag_name = "<tag_name>"
        request.repair_necessity = "<repair_necessity>"
        request.vul_id = "<vul_id>"
        request.app_name = "<app_name>"
        request.type = "<type>"
        response = client.list_image_vulnerabilities(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := hss.NewHssClient(
        hss.HssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListImageVulnerabilitiesRequest{}
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	request.ImageType = "<image_type>"
	offsetRequest:= int32(<offset>)
	request.Offset = &offsetRequest
	limitRequest:= int32(<limit>)
	request.Limit = &limitRequest
	instanceIdRequest:= "<instance_id>"
	request.InstanceId = &instanceIdRequest
	request.Namespace = "<namespace>"
	request.ImageName = "<image_name>"
	request.TagName = "<tag_name>"
	repairNecessityRequest:= "<repair_necessity>"
	request.RepairNecessity = &repairNecessityRequest
	vulIdRequest:= "<vul_id>"
	request.VulId = &vulIdRequest
	appNameRequest:= "<app_name>"
	request.AppName = &appNameRequest
	typeRequest:= "<type>"
	request.Type = &typeRequest
	response, err := client.ListImageVulnerabilities(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

Más información

Para obtener un código de ejemplo del SDK de más lenguajes de programación, consulte la pestaña Código de ejemplo en API Explorer. El código de ejemplo del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

200

Lista de vulnerabilidades de imagen

Códigos de error

Consulte Códigos de error.