Manipulação de eventos de alarme
Função
Essa API é usada para manipular eventos de alarme.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
POST /v5/{project_id}/event/operate
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto Mínimo: 20 Máximo: 64 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
enterprise_project_id |
Não |
String |
ID do projeto empresarial. Para consultar todos os projetos empresariais, defina este parâmetro como all_granted_eps. Mínimo: 0 Máximo: 64 |
container_name |
Não |
String |
Nome da instância do container |
container_id |
Não |
String |
ID do container |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token. Mínimo: 1 Máximo: 32768 |
region |
Sim |
String |
ID da região Mínimo: 0 Máximo: 128 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
operate_type |
Sim |
String |
Método de manipulação. Seu valor pode ser:
|
handler |
Não |
String |
Observações. Esta API está disponível apenas para alarmes manipulados. |
operate_event_list |
Sim |
Array of OperateEventRequestInfo objects |
Lista de eventos operados Comprimento da matriz: 0–100 |
event_white_rule_list |
Não |
Array of EventWhiteRuleListRequestInfo objects |
Lista branca de alarme definida pelo usuário Comprimento da matriz: 0–100 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
event_class_id |
Sim |
String |
Categoria do evento. Seu valor pode ser:
|
event_id |
Sim |
String |
ID do evento |
event_type |
Sim |
Integer |
Tipo de evento. Seu valor pode ser:
|
occur_time |
Sim |
Integer |
Tempo de ocorrência, com precisão de milissegundos. |
operate_detail_list |
Sim |
Array of EventDetailRequestInfo objects |
Lista de detalhes da operação. Se operate_type estiver definido como add_to_alarm_whitelist ou remove_from_alarm_whitelist, a palavra-chave e o hash serão obrigatórios. Se operate_type for definido como add_to_login_whitelist ou remove_from_login_whitelist, os parâmetros login_ip, private_ip e login_user_name serão obrigatórios. Se operate_type for definido como isolate_and_kill ou do_not_isolate_or_kill, os parâmetros agent_id, file_hash, file_path e process_pid serão obrigatórios. Em outros casos, os parâmetros são opcionais. Comprimento da matriz: 0–100 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
agent_id |
Não |
String |
ID do agente |
process_pid |
Não |
Integer |
ID do processo |
file_hash |
Não |
String |
Hash de arquivo |
file_path |
Não |
String |
Caminho do arquivo |
file_attr |
Não |
String |
Atributo de arquivo |
keyword |
Não |
String |
Palavra-chave de evento de alarme, que é usada somente para a lista branca de alarmes. |
hash |
Não |
String |
Hash de evento de alarme, que é usado apenas para a lista branca de alarme. |
private_ip |
Não |
String |
Endereço IP privado de servidor |
login_ip |
Não |
String |
Endereço IP de origem de logon |
login_user_name |
Não |
String |
Nome de usuário de logon |
container_id |
Não |
String |
ID do container Mínimo: 64 Máximo: 64 |
container_name |
Não |
String |
Nome do container Mínimo: 1 Máximo: 128 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
event_type |
Sim |
Integer |
Tipo de evento. Seu valor pode ser:
|
field_key |
Sim |
String |
Campos da lista branca. As opções são as seguintes:
Mínimo: 1 Máximo: 20 |
field_value |
Sim |
String |
Valor do campo da lista branca Mínimo: 1 Máximo: 128 |
judge_type |
Sim |
String |
Curinga. As opções são as seguintes:
Mínimo: 1 Máximo: 10 |
Parâmetros de resposta
Nenhum
Exemplo de solicitações
Manipular manualmente os alarmes de intrusão cujo tipo de evento de alarme é Rootkit e o ID do evento de alarme é 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" } ] } ] }
Exemplo de respostas
Nenhum
Código de amostra do SDK
O código de amostra do SDK é o seguinte.
Java
Manipular manualmente os alarmes de intrusão cujo tipo de evento de alarme é Rootkit e o ID do evento de alarme é 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
Manipular manualmente os alarmes de intrusão cujo tipo de evento de alarme é Rootkit e o ID do evento de alarme é 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
Manipular manualmente os alarmes de intrusão cujo tipo de evento de alarme é Rootkit e o ID do evento de alarme é 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) } } |
Mais
Para obter o código de amostra do SDK de mais linguagens de programação, consulte a guia Código de amostra no API Explorer. O código de amostra do SDK pode ser gerado automaticamente.
Códigos de status
Código de status |
Descrição |
---|---|
200 |
Bem-sucedido |
400 |
Parâmetro inválido. |
401 |
Falha na autenticação. |
403 |
Permissão insuficiente. |
404 |
Recurso não encontrado. |
500 |
Erro de sistema. |
Códigos de erro
Consulte Códigos de erro.