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

Habilitación de la prevención de ransomware

Función

Para habilitar la protección contra ransomware, asegúrese de que CBR esté disponible en la región. La prevención de ransomware funciona con CBR.

Método de invocación

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

URI

POST /v5/{project_id}/ransomware/protection/open

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID de proyecto

Mínimo: 1

Máximo: 256

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

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

Tabla 4 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

operating_system

String

Sistemas operativos del servidor a proteger. Las opciones son las siguientes:

  • Windows

  • Linux

Mínimo: 0

Máximo: 64

ransom_protection_status

String

Si la protección contra ransomware está habilitada. Su valor puede ser:

  • closed

  • opened Si este parámetro está habilitado, se debe especificar protection_policy_id o create_protection_policy.

Mínimo: 0

Máximo: 64

protection_policy_id

No

String

ID de la política de protección contra ransomware. Si selecciona una política existente, este parámetro es obligatorio.

Mínimo: 0

Máximo: 64

create_protection_policy

No

Objeto ProtectionProxyInfoRequestInfo

Crear una política de protección. Para una nueva política de protección, deje en blanco protection_policy_id y especifique create_protection_policy.

backup_protection_status

String

Si se debe realizar una copia de respaldo de los datos en el servidor. Su valor puede ser:

  • closed

  • opened Si la copia de respaldo del servidor está habilitada, backup_cycle es obligatorio.

Mínimo: 0

Máximo: 64

backup_resources

No

Objeto BackupResources

Este parámetro es obligatorio cuando la función de copia de respaldo está habilitada. Si este parámetro está vacío, el almacén vinculado a HSS_projectid es compatible.

backup_policy_id

No

String

ID de políticas de copias de respaldo

Mínimo: 0

Máximo: 64

backup_cycle

No

UpdateBackupPolicyRequestInfo1 object

Política de copia de respaldo.

agent_id_list

Array of strings

ID de los agentes en los que está habilitada la protección

Mínimo: 0

Máximo: 64

Longitud de matriz: 0 - 24

host_id_list

Array of strings

Los ID de servidores en los que está habilitada la protección

Mínimo: 0

Máximo: 64

Longitud de matriz: 0 - 24

Tabla 5 ProtectionProxyInfoRequestInfo

Parámetro

Obligatorio

Tipo

Descripción

policy_id

No

String

ID de política. Este parámetro es opcional para una nueva política.

Mínimo: 0

Máximo: 64

policy_name

No

String

Nombre de la política. Este parámetro es obligatorio al crear una política de protección.

Mínimo: 0

Máximo: 64

protection_mode

No

String

Acción de protección. Este parámetro es obligatorio al crear una política de protección. Las opciones son las siguientes:

  • alarm_and_isolation: reportar una alarma y aislar.

  • alarm_only: solo reportar alarmas.

Mínimo: 0

Máximo: 64

bait_protection_status

No

String

Si se debe habilitar la protección honeypot. Este parámetro es obligatorio al crear una política de protección. Las opciones son las siguientes. De forma predeterminada, la protección Honeypot está habilitada.

  • opened

  • closed

Mínimo: 0

Máximo: 64

protection_directory

No

String

Directorio protegido. Este parámetro es obligatorio al crear una política de protección.

Mínimo: 0

Máximo: 64

protection_type

No

String

Tipo de protección. Este parámetro es obligatorio al crear una política de protección.

Mínimo: 0

Máximo: 64

exclude_directory

No

String

Directorio excluido (opcional)

Mínimo: 0

Máximo: 64

runtime_detection_status

No

String

(Opcional) Si se deben realizar verificaciones en tiempo de ejecución. Las opciones son las siguientes. Actualmente, solo se puede deshabilitar. Este campo está reservado.

  • opened

  • closed

Mínimo: 0

Máximo: 64

operating_system

No

String

Sistema operativo. Este parámetro es obligatorio al crear una política de protección. Su valor puede ser:

  • Windows

  • Linux

Mínimo: 0

Máximo: 64

process_whitelist

No

Array of TrustProcessInfo objects

Lista blanca de procesos

Longitud de matriz: 0 - 20

Tabla 6 TrustProcessInfo

Parámetro

Obligatorio

Tipo

Descripción

path

No

String

Indica la ruta del proceso.

Mínimo: 0

Máximo: 128

hash

No

String

Proceso hash

Mínimo: 0

Máximo: 128

Tabla 7 BackupResources

Parámetro

Obligatorio

Tipo

Descripción

vault_id

No

String

Seleccione el ID del almacén que desea vincular. El valor no puede estar vacío.

Mínimo: 0

Máximo: 64

resource_list

No

Array of ResourceInfo objects

Lista de servidores para los que se debe habilitar la función de copia de respaldo

Longitud de matriz: 0 - 20

Tabla 8 ResourceInfo

Parámetro

Obligatorio

Tipo

Descripción

host_id

No

String

ID del servidor

Mínimo: 0

Máximo: 128

history_backup_status

No

String

La habilitación del estado de la copia de respaldo depende del error_message o del estado de los servidores disponibles. Si error_message está vacío, la copia de respaldo no está habilitada y el valor de este campo se cierra. Si error_message no está vacío, se abre el valor de este campo.

Mínimo: 0

Máximo: 128

Tabla 9 UpdateBackupPolicyRequestInfo1

Parámetro

Obligatorio

Tipo

Descripción

enabled

No

Boolean

Si la política está habilitada. El valor predeterminado es true.

policy_id

No

String

ID de política. Este parámetro es obligatorio si la protección de respaldo está habilitada.

Mínimo: 1

Máximo: 256

operation_definition

No

OperationDefinitionRequestInfo object

Parámetro de programación.

trigger

No

BackupTriggerRequestInfo1 object

Regla de programación de tiempo para la política.

Tabla 10 OperationDefinitionRequestInfo

Parámetro

Obligatorio

Tipo

Descripción

day_backups

No

Integer

Cantidad máxima de copias de respaldo diarios retenidos. La última copia de respaldo de cada día se guarda a largo plazo. Este parámetro no se ve afectado por el número máximo de copias de respaldo retenidas. El valor oscila entre 0 y 100. Si se especifica este parámetro, se debe configurar la zona horaria. Valor mínimo: 0. Valor máximo: 100

Mínimo: 0

Máximo: 100

max_backups

No

Integer

Número máximo de copias de respaldo automatizadas que se pueden conservar para un objeto. El valor puede ser -1 u oscilar entre 0 y 99999. Si el valor se establece en -1, las copias de respaldo no se borrarán aunque se supere el límite de cantidad de copias de respaldo retenidas configurado. Si este parámetro y retention_duration_days se dejan en blanco al mismo tiempo, las copias de respaldo se conservarán de forma permanente. Valor mínimo: 1. Valor máximo: 99999. Valor predeterminado: -1

Mínimo: -1

Máximo: 99999

month_backups

No

Integer

Cantidad máxima de copias de respaldo mensuales retenidos. La última copia de respaldo de cada mes se guarda a largo plazo. Este parámetro no se ve afectado por el número máximo de copias de respaldo retenidas. El valor oscila entre 0 y 100. Si se especifica este parámetro, se debe configurar la zona horaria. Valor mínimo: 0. Valor máximo: 100

Mínimo: 0

Máximo: 100

retention_duration_days

No

Integer

Duración de la retención de una copia de respaldo, en días. El valor máximo es 99999. Si el valor se establece en -1, las copias de respaldo no se borrarán aunque se supere la duración de retención configurada. Si este parámetro y max_backups se dejan en blanco al mismo tiempo, las copias de respaldo se conservarán permanentemente. Valor mínimo: 1. Valor máximo: 99999. Valor predeterminado: -1

Mínimo: -1

Máximo: 99999

timezone

No

String

Zona horaria donde se encuentra el usuario, por ejemplo, UTC+08:00. Establezca este parámetro solo después de haber configurado cualquiera de los parámetros day_backups, week_backups, month_backups, and year_backups.

Mínimo: 0

Máximo: 256

week_backups

No

Integer

Cantidad máxima de copias de respaldo semanales retenidos. La última copia de respaldo de cada semana se guarda a largo plazo. Este parámetro puede ser efectivo junto con el número máximo de copias de respaldo retenidas especificado por max_backups. El valor oscila entre 0 y 100. Si se especifica este parámetro, se debe configurar la zona horaria.

Mínimo: 0

Máximo: 100

year_backups

No

Integer

Cantidad máxima de copias de respaldo anuales retenidos. La última copia de respaldo de cada año se guarda a largo plazo. Este parámetro puede ser efectivo junto con el número máximo de copias de respaldo retenidas especificado por max_backups. El valor oscila entre 0 y 100. Si se especifica este parámetro, se debe configurar la zona horaria. Valor mínimo: 0. Valor máximo: 100

Mínimo: 0

Máximo: 100

Tabla 11 BackupTriggerRequestInfo1

Parámetro

Obligatorio

Tipo

Descripción

properties

No

Objeto BackupTriggerPropertiesRequestInfo1

Regla de tiempo para la ejecución de políticas. Este parámetro es obligatorio si la función de copia de respaldo está habilitada con protección contra ransomware.

Tabla 12 BackupTriggerPropertiesRequestInfo1

Parámetro

Obligatorio

Tipo

Descripción

pattern

No

Array of strings

Regla de programación. Este parámetro es obligatorio si la función de copia de respaldo está habilitada con protección contra ransomware. Se puede configurar un máximo de 24 reglas. La regla de programación cumple con iCalendar RFC 2445, pero solo admite los parámetros FREQ, BYDAY, BYHOUR, BYMINUTE e INTERVAL. FREQ solo se puede configurar como WEEKLY o DAILY. BYDAY se puede configurar como MO, TU, WE, TH, FR, SA o SU (siete días de la semana). BYHOUR oscila entre 0 y 23 horas. BYMINUTE oscila entre 0 minutos y 59 minutos. El intervalo de programación no debe ser inferior a 1 hora. Se permite un máximo de 24 puntos de tiempo en un día. Por ejemplo, si la hora de programación es 14:00 de lunes a domingo, establezca la regla de programación de la siguiente manera: FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00. Para comenzar la programación a las 14:00 todos los días, la regla es la siguiente: FREQ=DAILY;INTERVAL=1;BYHOUR=14;BYMINUTE=00'.

Mínimo: 1

Máximo: 256

Longitud de matriz: 0 - 24

Parámetros de respuesta

Ninguna

Solicitudes de ejemplo

Habilita la protección contra ransomware para el servidor. El tipo de sistema operativo es Linux, el ID del servidor de destino es 71a15ecc-049f-4cca-bd28-5e90aca1817f y el ID del agente del servidor de destino es c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8. La copia de respaldo del servidor está deshabilitada.

POST https://{endpoint}/v5/{project_id}/ransomware/protection/open

{
  "ransom_protection_status" : "opened",
  "backup_protection_status" : "closed",
  "operating_system" : "Linux",
  "protection_policy_id" : "",
  "agent_id_list" : [ "c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8" ],
  "host_id_list" : [ "71a15ecc-049f-4cca-bd28-5e90aca1817f" ],
  "create_protection_policy" : {
    "bait_protection_status" : "opened",
    "exclude_directory" : "",
    "protection_mode" : "alarm_only",
    "policy_name" : "test111",
    "protection_directory" : "/etc/test",
    "protection_type" : "docx"
  }
}

Ejemplo de respuestas

Ninguna

Código de ejemplo del SDK

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

Java

Enable ransomware protection for the server. The OS type is Linux, the target server ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f, and the agent ID of the target server is c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8. Server backup is disabled.

 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
58
59
60
61
62
63
64
65
66
67
68
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.*;

import java.util.List;
import java.util.ArrayList;

public class StartProtectionSolution {

    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();
        StartProtectionRequest request = new StartProtectionRequest();
        request.withEnterpriseProjectId("<enterprise_project_id>");
        ProtectionInfoRequestInfo body = new ProtectionInfoRequestInfo();
        List<String> listbodyHostIdList = new ArrayList<>();
        listbodyHostIdList.add("71a15ecc-049f-4cca-bd28-5e90aca1817f");
        List<String> listbodyAgentIdList = new ArrayList<>();
        listbodyAgentIdList.add("c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8");
        ProtectionProxyInfoRequestInfo createProtectionPolicybody = new ProtectionProxyInfoRequestInfo();
        createProtectionPolicybody.withPolicyName("test111")
            .withProtectionMode("alarm_only")
            .withBaitProtectionStatus("opened")
            .withProtectionDirectory("/etc/test")
            .withProtectionType("docx")
            .withExcludeDirectory("");
        body.withHostIdList(listbodyHostIdList);
        body.withAgentIdList(listbodyAgentIdList);
        body.withBackupProtectionStatus("closed");
        body.withCreateProtectionPolicy(createProtectionPolicybody);
        body.withProtectionPolicyId("");
        body.withRansomProtectionStatus("opened");
        body.withOperatingSystem("Linux");
        request.withBody(body);
        try {
            StartProtectionResponse response = client.startProtection(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

Enable ransomware protection for the server. The OS type is Linux, the target server ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f, and the agent ID of the target server is c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8. Server backup is disabled.

 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
# 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 = StartProtectionRequest()
        request.enterprise_project_id = "<enterprise_project_id>"
        listHostIdListbody = [
            "71a15ecc-049f-4cca-bd28-5e90aca1817f"
        ]
        listAgentIdListbody = [
            "c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8"
        ]
        createProtectionPolicybody = ProtectionProxyInfoRequestInfo(
            policy_name="test111",
            protection_mode="alarm_only",
            bait_protection_status="opened",
            protection_directory="/etc/test",
            protection_type="docx",
            exclude_directory=""
        )
        request.body = ProtectionInfoRequestInfo(
            host_id_list=listHostIdListbody,
            agent_id_list=listAgentIdListbody,
            backup_protection_status="closed",
            create_protection_policy=createProtectionPolicybody,
            protection_policy_id="",
            ransom_protection_status="opened",
            operating_system="Linux"
        )
        response = client.start_protection(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

Enable ransomware protection for the server. The OS type is Linux, the target server ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f, and the agent ID of the target server is c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8. Server backup is disabled.

 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
58
59
60
61
62
63
64
65
66
67
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.StartProtectionRequest{}
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	var listHostIdListbody = []string{
        "71a15ecc-049f-4cca-bd28-5e90aca1817f",
    }
	var listAgentIdListbody = []string{
        "c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8",
    }
	policyNameCreateProtectionPolicy:= "test111"
	protectionModeCreateProtectionPolicy:= "alarm_only"
	baitProtectionStatusCreateProtectionPolicy:= "opened"
	protectionDirectoryCreateProtectionPolicy:= "/etc/test"
	protectionTypeCreateProtectionPolicy:= "docx"
	excludeDirectoryCreateProtectionPolicy:= ""
	createProtectionPolicybody := &model.ProtectionProxyInfoRequestInfo{
		PolicyName: &policyNameCreateProtectionPolicy,
		ProtectionMode: &protectionModeCreateProtectionPolicy,
		BaitProtectionStatus: &baitProtectionStatusCreateProtectionPolicy,
		ProtectionDirectory: &protectionDirectoryCreateProtectionPolicy,
		ProtectionType: &protectionTypeCreateProtectionPolicy,
		ExcludeDirectory: &excludeDirectoryCreateProtectionPolicy,
	}
	protectionPolicyIdProtectionInfoRequestInfo:= ""
	request.Body = &model.ProtectionInfoRequestInfo{
		HostIdList: listHostIdListbody,
		AgentIdList: listAgentIdListbody,
		BackupProtectionStatus: "closed",
		CreateProtectionPolicy: createProtectionPolicybody,
		ProtectionPolicyId: &protectionPolicyIdProtectionInfoRequestInfo,
		RansomProtectionStatus: "opened",
		OperatingSystem: "Linux",
	}
	response, err := client.StartProtection(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

Protección contra ransomware habilitada.

Códigos de error

Consulte Códigos de error.