Manejo de eventos de alarma
Función
Esta API se utiliza para gestionar eventos de alarma.
Método de invocación
Para obtener más información, consulte Invocación a las API.
URI
POST /v5/{project_id}/event/operate
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
ID de proyecto Mínimo: 20 Máximo: 64 |
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. Mínimo: 0 Máximo: 64 |
container_name |
No |
String |
Nombre de instancia de contenedor |
container_id |
No |
String |
ID de contenedor |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
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 |
Sí |
String |
ID de región Mínimo: 0 Máximo: 128 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
operate_type |
Sí |
String |
Método de solución. Su valor puede ser:
|
handler |
No |
String |
Observaciones. Esta API solo está disponible para alarmas gestionadas. |
operate_event_list |
Sí |
Array of OperateEventRequestInfo objects |
Lista de eventos operados Longitud de matriz: 0 - 100 |
event_white_rule_list |
No |
Array of EventWhiteRuleListRequestInfo objects |
Lista blanca de alarmas definidas por el usuario Longitud de matriz: 0 - 100 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
event_class_id |
Sí |
String |
Categoría del evento. Su valor puede ser:
|
event_id |
Sí |
String |
ID del evento |
event_type |
Sí |
Integer |
Tipo de evento. Su valor puede ser:
|
occur_time |
Sí |
Integer |
Tiempo de ocurrencia, exacto a milisegundos. |
operate_detail_list |
Sí |
Array of EventDetailRequestInfo objects |
Lista de detalles de operaciones. Si operate_type se establece en add_to_alarm_whitelist o remove_from_alarm_whitelist, la palabra clave y el hash son obligatorios. Si operate_type se establece en add_to_login_whitelist o remove_from_login_whitelist, los parámetros login_ip, private_ip y login_user_name son obligatorios. Si operate_type se establece en isolate_and_kill o do_not_isolate_or_kill, los parámetros agent_id, file_hash, file_path y process_pid son obligatorios. En otros casos, los parámetros son opcionales. Longitud de matriz: 0 - 100 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
agent_id |
No |
String |
ID de agente |
process_pid |
No |
Integer |
ID de proceso |
file_hash |
No |
String |
Hash de archivo |
file_path |
No |
String |
Ruta del archivo |
file_attr |
No |
String |
Atributo de archivo |
keyword |
No |
String |
Palabra clave de evento de alarma, que se utiliza solo para la lista blanca de alarmas. |
hash |
No |
String |
Hash de evento de alarma, que se utiliza solo para la lista blanca de alarmas. |
private_ip |
No |
String |
Dirección IP privada del servidor |
login_ip |
No |
String |
Dirección IP de origen de inicio de sesión |
login_user_name |
No |
String |
Nombre de usuario de inicio de sesión |
container_id |
No |
String |
ID de contenedor Mínimo: 64 Máximo: 64 |
container_name |
No |
String |
Nombre de contenedor Mínimo: 1 Máximo: 128 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
event_type |
Sí |
Integer |
Tipo de evento. Su valor puede ser:
|
field_key |
Sí |
String |
Campos de lista blanca. Las opciones son las siguientes:
Mínimo: 1 Máximo: 20 |
field_value |
Sí |
String |
Valor del campo de lista blanca Mínimo: 1 Máximo: 128 |
judge_type |
Sí |
String |
Comodín. Las opciones son las siguientes:
Mínimo: 1 Máximo: 10 |
Parámetros de respuesta
Ninguna
Solicitudes de ejemplo
Procesar manualmente las alarmas de intrusión cuyo tipo de evento de alarma sea Rootkit y cuyo ID de evento de alarma sea 2a71e1e2-60f4-4d56-b314-2038fdc39de6.
POST https://{endpoint}/v5/{project_id}/event/operate?enterprise_project_id=xxx { "operate_type" : "mark_as_handled", "handler" : "test", "operate_event_list" : [ { "event_class_id" : "rootkit_0001", "event_id" : "2a71e1e2-60f4-4d56-b314-2038fdc39de6", "occur_time" : 1672046760353, "event_type" : 1010, "operate_detail_list" : [ { "agent_id" : "c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8", "file_hash" : "e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d", "file_path" : "/usr/test", "process_pid" : 3123, "file_attr" : 33261, "keyword" : "file_path=/usr/test", "hash" : "e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d", "login_ip" : "127.0.0.1", "private_ip" : "127.0.0.2", "login_user_name" : "root", "container_id" : "containerid", "container_name" : "/test" } ] } ] }
Ejemplo de respuestas
Ninguna
Código de ejemplo del SDK
El código de ejemplo del SDK es el siguiente.
Java
Procesar manualmente las alarmas de intrusión cuyo tipo de evento de alarma sea Rootkit y cuyo ID de evento de alarma sea 2a71e1e2-60f4-4d56-b314-2038fdc39de6.
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 69 70 71 72 73 74 75 76 77 78 79 80 |
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 ChangeEventSolution { 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(); ChangeEventRequest request = new ChangeEventRequest(); request.withEnterpriseProjectId("<enterprise_project_id>"); request.withContainerName("<container_name>"); request.withContainerId("<container_id>"); ChangeEventRequestInfo body = new ChangeEventRequestInfo(); List<EventDetailRequestInfo> listOperateEventListOperateDetailList = new ArrayList<>(); listOperateEventListOperateDetailList.add( new EventDetailRequestInfo() .withAgentId("c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8") .withProcessPid(3123) .withFileHash("e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d") .withFilePath("/usr/test") .withFileAttr("33261") .withKeyword("file_path=/usr/test") .withHash("e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d") .withPrivateIp("127.0.0.2") .withLoginIp("127.0.0.1") .withLoginUserName("root") .withContainerId("containerid") .withContainerName("/test") ); List<OperateEventRequestInfo> listbodyOperateEventList = new ArrayList<>(); listbodyOperateEventList.add( new OperateEventRequestInfo() .withEventClassId("rootkit_0001") .withEventId("2a71e1e2-60f4-4d56-b314-2038fdc39de6") .withEventType(1010) .withOccurTime(1672046760353L) .withOperateDetailList(listOperateEventListOperateDetailList) ); body.withOperateEventList(listbodyOperateEventList); body.withHandler("test"); body.withOperateType("mark_as_handled"); request.withBody(body); try { ChangeEventResponse response = client.changeEvent(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
Procesar manualmente las alarmas de intrusión cuyo tipo de evento de alarma sea Rootkit y cuyo ID de evento de alarma sea 2a71e1e2-60f4-4d56-b314-2038fdc39de6.
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 |
# 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 = ChangeEventRequest() request.enterprise_project_id = "<enterprise_project_id>" request.container_name = "<container_name>" request.container_id = "<container_id>" listOperateDetailListOperateEventList = [ EventDetailRequestInfo( agent_id="c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8", process_pid=3123, file_hash="e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d", file_path="/usr/test", file_attr="33261", keyword="file_path=/usr/test", hash="e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d", private_ip="127.0.0.2", login_ip="127.0.0.1", login_user_name="root", container_id="containerid", container_name="/test" ) ] listOperateEventListbody = [ OperateEventRequestInfo( event_class_id="rootkit_0001", event_id="2a71e1e2-60f4-4d56-b314-2038fdc39de6", event_type=1010, occur_time=1672046760353, operate_detail_list=listOperateDetailListOperateEventList ) ] request.body = ChangeEventRequestInfo( operate_event_list=listOperateEventListbody, handler="test", operate_type="mark_as_handled" ) response = client.change_event(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
Procesar manualmente las alarmas de intrusión cuyo tipo de evento de alarma sea Rootkit y cuyo ID de evento de alarma sea 2a71e1e2-60f4-4d56-b314-2038fdc39de6.
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
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.ChangeEventRequest{} enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest containerNameRequest:= "<container_name>" request.ContainerName = &containerNameRequest containerIdRequest:= "<container_id>" request.ContainerId = &containerIdRequest agentIdOperateDetailList:= "c9bed5397db449ebdfba15e85fcfc36accee125c68954daf5cab0528bab59bd8" processPidOperateDetailList:= int32(3123) fileHashOperateDetailList:= "e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d" filePathOperateDetailList:= "/usr/test" fileAttrOperateDetailList:= "33261" keywordOperateDetailList:= "file_path=/usr/test" hashOperateDetailList:= "e8b50f0b91e3dce0885ccc5902846b139d28108a0a7976c9b8d43154c5dbc44d" privateIpOperateDetailList:= "127.0.0.2" loginIpOperateDetailList:= "127.0.0.1" loginUserNameOperateDetailList:= "root" containerIdOperateDetailList:= "containerid" containerNameOperateDetailList:= "/test" var listOperateDetailListOperateEventList = []model.EventDetailRequestInfo{ { AgentId: &agentIdOperateDetailList, ProcessPid: &processPidOperateDetailList, FileHash: &fileHashOperateDetailList, FilePath: &filePathOperateDetailList, FileAttr: &fileAttrOperateDetailList, Keyword: &keywordOperateDetailList, Hash: &hashOperateDetailList, PrivateIp: &privateIpOperateDetailList, LoginIp: &loginIpOperateDetailList, LoginUserName: &loginUserNameOperateDetailList, ContainerId: &containerIdOperateDetailList, ContainerName: &containerNameOperateDetailList, }, } var listOperateEventListbody = []model.OperateEventRequestInfo{ { EventClassId: "rootkit_0001", EventId: "2a71e1e2-60f4-4d56-b314-2038fdc39de6", EventType: int32(1010), OccurTime: int64(1672046760353), OperateDetailList: listOperateDetailListOperateEventList, }, } handlerChangeEventRequestInfo:= "test" request.Body = &model.ChangeEventRequestInfo{ OperateEventList: listOperateEventListbody, Handler: &handlerChangeEventRequestInfo, OperateType: "mark_as_handled", } response, err := client.ChangeEvent(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 |
Con éxito |
400 |
Parámetro no válido. |
401 |
Error de autenticación. |
403 |
Permiso insuficiente. |
404 |
Recurso no encontrado. |
500 |
Error del sistema. |
Códigos de error
Consulte Códigos de error.