华为云用户手册

  • 请求示例 创建完整类型关键操作通知请求样例。 POST https://{endpoint}/v3/{project_id}/notifications { "notification_name" : "test", "filter" : { "is_support_filter" : true, "rule" : [ "code != 200", "api_version = v1.0", "trace_rating = normal", "trace_type != ApiCall", "resource_id = xxx", "resource_name = xxx" ], "condition" : "OR" }, "operation_type" : "complete", "topic_id" : "urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:test" } 创建自定义类型关键操作通知请求样例。 POST https://{endpoint}/v3/{project_id}/notifications { "notification_name" : "keyOperate_info_cfwy", "operation_type" : "customized", "filter" : { "is_support_filter" : true, "rule" : [ "code != 200", "api_version = v1.0", "trace_rating = normal", "trace_type != ApiCall", "resource_id = xxx", "resource_name = xxx" ], "condition" : "OR" }, "operations" : [ { "service_type" : " CTS ", "resource_type" : "tracker", "trace_names" : [ "createTracker", "deleteTracker" ] }, { "service_type" : "CTS", "resource_type" : "notification", "trace_names" : [ "deleteNotification", "updateNotification" ] }, { "service_type" : " AOM ", "resource_type" : "pe", "trace_names" : [ "deletePolicyGroup", "updatePolicyGroup", "createPolicyGroup" ] } ], "notify_user_list" : [ { "user_group" : "admin", "user_list" : [ "test1", "test2" ] }, { "user_group" : "CTS view", "user_list" : [ "test3", "test4" ] } ], "topic_id" : "urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:test" }
  • 响应参数 状态码: 201 表6 响应Body参数 参数 参数类型 描述 notification_name String 通知名称。 operation_type String 操作类型。和自定义。 complete:完整类型,对所有已对接 云审计 服务的所有操作发送 SMN 通知。 customized:自定义类型,对指定云服务的指定操作发送SMN通知。 枚举值: customized complete operations Array of Operations objects 操作事件列表。 notify_user_list Array of NotificationUsers objects 通知用户列表,目前最多支持对10个用户组和50个用户发起的操作进行配置。 status String 通知状态。启用和停用。 disabled:停用关键操作通知。 enabled:启用关键操作通知。 枚举值: enabled disabled topic_id String 消息通知 服务(SMN)主题的唯一的资源标识,可通过查询主题列表获取该标识。 notification_id String 通知的唯一标识ID。 notification_type String 通知类型。 -smn:消息通知服务。 -fun: 函数工作流 。 枚举值: smn fun project_id String 项目ID。 create_time Long 通知规则创建时间。 filter Filter object 关键操作通知高级筛选条件。 表7 Operations 参数 参数类型 描述 service_type String 标识云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 resource_type String 标识资源类型。 trace_names Array of strings 标识事件名称。 表8 NotificationUsers 参数 参数类型 描述 user_group String IAM 用户组。 user_list Array of strings IAM用户。 表9 Filter 参数 参数类型 描述 condition String 多条件关系。 AND(默认值) 表示所有过滤条件满足后生效。 OR 表示有任意一个条件满足时生效。 枚举值: AND(默认值) OR is_support_filter Boolean 是否打开高级筛选开关。 rule Array of strings 高级过滤条件规则,示例如下:"key != value",格式为:字段 规则 值。-字段取值范围:api_version,code,trace_rating,trace_type,resource_id,resource_name。-规则:!= 或 =。- 值:api_version正则约束:^(a-zA-Z0-9_-.){1,64}$;code:最小长度1,最大长度256;trace_rating枚举值:"normal", "warning", "incident";trace_type枚举值:"ConsoleAction", "ApiCall", "SystemAction";resource_id:最小长度1,最大长度350;resource_name:最小长度1,最大长度256 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 401 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 403 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 404 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 503 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 notification_name 是 String 标识关键操作名称。 operation_type 是 String 标识操作类型。 目前支持的操作类型有完整类型(complete)和自定义类型(customized)。 完整类型下,CTS发送通知的对象为已对接服务的所有事件,此时不用指定operations和notify_user_list字段。 自定义类型下,CTS发送通知的对象是在operations列表中指定的事件。 枚举值: complete customized operations 否 Array of Operations objects 操作事件列表。 notify_user_list 否 Array of NotificationUsers objects 通知用户列表,目前最多支持对10个用户组和50个用户发起的操作进行配置。 topic_id 否 String 消息通知服务的topic_urn或者函数工作流的func_urn。- 消息通知服务的topic_urn可以通过消息通知服务的查询主题列表API获取,示例:urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2。- 函数工作流的func_urn可以通过函数工作流的获取函数列表API获取,示例:urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test。 filter 否 Filter object 关键操作通知高级过滤条件。 表3 Operations 参数 是否必选 参数类型 描述 service_type 是 String 标识云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 resource_type 是 String 标识资源类型。 trace_names 是 Array of strings 标识事件名称。 表4 NotificationUsers 参数 是否必选 参数类型 描述 user_group 是 String IAM用户组。 user_list 是 Array of strings IAM用户。 表5 Filter 参数 是否必选 参数类型 描述 condition 是 String 多条件关系。 AND(默认值) 表示所有过滤条件满足后生效。 OR 表示有任意一个条件满足时生效。 枚举值: AND(默认值) OR is_support_filter 是 Boolean 是否打开高级筛选开关。 rule 是 Array of strings 高级过滤条件规则,示例如下:"key != value",格式为:字段 规则 值。-字段取值范围:api_version,code,trace_rating,trace_type,resource_id,resource_name。-规则:!= 或 =。- 值:api_version正则约束:^(a-zA-Z0-9_-.){1,64}$;code:最小长度1,最大长度256;trace_rating枚举值:"normal", "warning", "incident";trace_type枚举值:"ConsoleAction", "ApiCall", "SystemAction";resource_id:最小长度1,最大长度350;resource_name:最小长度1,最大长度256
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,企业管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:自定义策略中授权项定义的内容即为权限。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 权限 对应API接口 授权项(Action) 依赖的授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 查询事件列表 GET /v3/{project_id}/traces cts:trace:list - √ x 查询事件列表 GET /v2.0/{project_id}/{tracker_name}/trace cts:trace:list - √ x 查询事件列表 GET /v1.0/{project_id}/{tracker_name}/trace cts:trace:list - √ x 查询追踪器 GET /v3/{project_id}/trackers cts:tracker:list obs:bucket:GetBucketAcl obs:bucket:ListAllMyBuckets √ x 查询追踪器 GET /v1.0/{project_id}/tracker cts:tracker:list obs:bucket:GetBucketAcl obs:bucket:ListAllMyBuckets √ x 创建追踪器 POST /v3/{project_id}/tracker cts:tracker:create lts:topics:list lts:topics:create lts:groups:list lts:groups:create obs:bucket:CreateBucket obs:bucket:HeadBucket obs:bucket:GetLifecycleConfiguration obs:bucket:PutLifecycleConfiguration obs:bucket:GetBucketAcl obs:bucket:PutBucketAclkms:cmk:list √ x 创建追踪器 POST /v1.0/{project_id}/tracker cts:tracker:create lts:topics:list lts:topics:create lts:groups:list lts:groups:create obs:bucket:CreateBucket obs:bucket:HeadBucket obs:bucket:GetLifecycleConfiguration obs:bucket:PutLifecycleConfiguration obs:bucket:GetBucketAcl obs:bucket:PutBucketAclkms:cmk:list √ x 修改追踪器 PUT /v3/{project_id}/tracker cts:tracker:update lts:topics:list lts:topics:create lts:groups:list lts:groups:create obs:bucket:CreateBucket obs:bucket:HeadBucket obs:bucket:GetLifecycleConfiguration obs:bucket:PutLifecycleConfiguration obs:bucket:GetBucketAcl obs:bucket:PutBucketAcl kms:cmk:list √ x 修改追踪器 PUT /v1.0/{project_id}/tracker/{tracker_name} cts:tracker:update lts:topics:list lts:topics:create lts:groups:list lts:groups:create obs:bucket:CreateBucket obs:bucket:HeadBucket obs:bucket:GetLifecycleConfiguration obs:bucket:PutLifecycleConfiguration obs:bucket:GetBucketAcl obs:bucket:PutBucketAcl kms:cmk:list √ x 删除追踪器 DELETE /v3/{project_id}/trackers cts:tracker:delete - √ x 删除追踪器 DELETE /v1.0/{project_id}/tracker cts:tracker:delete - √ x 查询租户追踪器配额信息 GET /v3/{project_id}/quotas cts:quota:get - √ x
  • 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 56 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/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 := cts.NewCtsClient( cts.CtsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.CreateTrackerRequest{} bucketNameObsInfo:= "test-data-tracker" filePrefixNameObsInfo:= "11" isObsCreatedObsInfo:= false obsInfobody := &model.TrackerObsInfo{ BucketName: &bucketNameObsInfo, FilePrefixName: &filePrefixNameObsInfo, IsObsCreated: &isObsCreatedObsInfo, } isSupportValidateCreateTrackerRequestBody:= true kmsIdCreateTrackerRequestBody:= "13a4207c-7abe-4b68-8510-16b84c3b5504" isSupportTraceFilesEncryptionCreateTrackerRequestBody:= true isLtsEnabledCreateTrackerRequestBody:= true request.Body = &model.CreateTrackerRequestBody{ IsSupportValidate: &isSupportValidateCreateTrackerRequestBody, KmsId: &kmsIdCreateTrackerRequestBody, IsSupportTraceFilesEncryption: &isSupportTraceFilesEncryptionCreateTrackerRequestBody, ObsInfo: obsInfobody, IsLtsEnabled: &isLtsEnabledCreateTrackerRequestBody, TrackerName: "system", TrackerType: model.GetCreateTrackerRequestBodyTrackerTypeEnum().SYSTEM, } response, err := client.CreateTracker(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } 数据类追踪器创建样例。 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 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/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 := cts.NewCtsClient( cts.CtsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.CreateTrackerRequest{} var listDataEventDataBucket = []model.DataBucketDataEvent{ model.GetDataBucketDataEventEnum().READ, model.GetDataBucketDataEventEnum().WRITE, } dataBucketNameDataBucket:= "cstest0423" dataBucketbody := &model.DataBucket{ DataBucketName: &dataBucketNameDataBucket, DataEvent: &listDataEventDataBucket, } bucketNameObsInfo:= "saveTraceBucket" filePrefixNameObsInfo:= "11" isObsCreatedObsInfo:= false bucketLifecycleObsInfo:= int32(30) obsInfobody := &model.TrackerObsInfo{ BucketName: &bucketNameObsInfo, FilePrefixName: &filePrefixNameObsInfo, IsObsCreated: &isObsCreatedObsInfo, BucketLifecycle: &bucketLifecycleObsInfo, } isLtsEnabledCreateTrackerRequestBody:= true request.Body = &model.CreateTrackerRequestBody{ DataBucket: dataBucketbody, ObsInfo: obsInfobody, IsLtsEnabled: &isLtsEnabledCreateTrackerRequestBody, TrackerName: "data-tracker-name", TrackerType: model.GetCreateTrackerRequestBodyTrackerTypeEnum().DATA, } response, err := client.CreateTracker(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 响应示例 状态码: 201 请求成功。 { "id" : "2e6fa9b8-8c6e-456d-b5d3-77be972d220b", "create_time" : 1587958482923, "domain_id" : "aexxxxxxxx4d4fb4bexxxxxxx791fbf", "is_support_trace_files_encryption" : true, "kms_id" : "13a4207c-7abe-4b68-8510-16b84c3b5504", "obs_info" : { "is_obs_created" : false, "bucket_name" : "test-bucket", "is_authorized_bucket" : false, "file_prefix_name" : "11", "bucket_lifecycle" : 30 }, "project_id" : "bb1xxxxxxxxe4f498cbxxxxxxxx35634", "lts" : { "is_lts_enabled" : true, "log_group_name" : "CTS", "log_topic_name" : "system-trace" }, "is_support_validate" : true, "tracker_name" : "system", "tracker_type" : "system", "status" : "enabled" }
  • 请求示例 管理类追踪器创建样例。 POST https://{endpoint}/v3/{project_id}/tracker { "tracker_type" : "system", "tracker_name" : "system", "obs_info" : { "is_obs_created" : false, "bucket_name" : "test-data-tracker", "file_prefix_name" : "11" }, "is_lts_enabled" : true, "is_support_trace_files_encryption" : true, "kms_id" : "13a4207c-7abe-4b68-8510-16b84c3b5504", "is_support_validate" : true } 数据类追踪器创建样例。 { "tracker_type" : "data", "tracker_name" : "data-tracker-name", "obs_info" : { "is_obs_created" : false, "bucket_name" : "saveTraceBucket", "file_prefix_name" : "11", "bucket_lifecycle" : 30 }, "is_lts_enabled" : true, "data_bucket" : { "data_event" : [ "READ", "WRITE" ], "data_bucket_name" : "cstest0423" } }
  • 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 42 43 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcts.v3.region.cts_region import CtsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcts.v3 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 = os.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = CtsClient.new_builder() \ .with_credentials(credentials) \ .with_region(CtsRegion.value_of("cn-north-4")) \ .build() try: request = CreateTrackerRequest() obsInfobody = TrackerObsInfo( bucket_name="test-data-tracker", file_prefix_name="11", is_obs_created=False ) request.body = CreateTrackerRequestBody( is_support_validate=True, kms_id="13a4207c-7abe-4b68-8510-16b84c3b5504", is_support_trace_files_encryption=True, obs_info=obsInfobody, is_lts_enabled=True, tracker_name="system", tracker_type="system" ) response = client.create_tracker(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 数据类追踪器创建样例。 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 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcts.v3.region.cts_region import CtsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcts.v3 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 = os.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = CtsClient.new_builder() \ .with_credentials(credentials) \ .with_region(CtsRegion.value_of("cn-north-4")) \ .build() try: request = CreateTrackerRequest() listDataEventDataBucket = [ "READ", "WRITE" ] dataBucketbody = DataBucket( data_bucket_name="cstest0423", data_event=listDataEventDataBucket ) obsInfobody = TrackerObsInfo( bucket_name="saveTraceBucket", file_prefix_name="11", is_obs_created=False, bucket_lifecycle=30 ) request.body = CreateTrackerRequestBody( data_bucket=dataBucketbody, obs_info=obsInfobody, is_lts_enabled=True, tracker_name="data-tracker-name", tracker_type="data" ) response = client.create_tracker(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 响应参数 状态码: 201 表6 响应Body参数 参数 参数类型 描述 id String 追踪器唯一标识。 create_time Long 追踪器创建时间戳。 kms_id String 事件文件转储加密所采用的秘钥id(从KMS获取)。当"tracker_type"参数值为"system"和"is_support_trace_files_encryption"参数值为“是”时,此参数为必选项。 is_support_validate Boolean 是否打开事件文件校验。 is_organization_tracker Boolean 是否应用到我的组织。 只针对管理类追踪器。设置为true时,ORG组织下所有成员当前区域的审计日志会转储到该追踪器配置的OBS桶或者LTS日志流,但是事件列表界面不支持查看其它组织成员的审计日志。 management_event_selector ManagementEventSelector object 管理类事件选择器。 lts Lts object 事件分析 tracker_type String 标识追踪器类型。 目前支持系统追踪器类型有管理类追踪器(system)和数据类追踪器(data)。 枚举值: system data domain_id String 账号ID,参见《云审计服务API参考》“获取账号ID和项目ID”章节。 project_id String 项目ID。 tracker_name String 标识追踪器名称,当前版本默认为“system”。 status String 标识追踪器状态,包括正常(enabled),停止(disabled)和异常(error)三种状态,状态为异常时需通过明细(detail)字段说明错误来源。 枚举值: enabled disabled detail String 该参数仅在追踪器状态异常时返回,用于标识追踪器异常的原因,包括桶策略异常(bucketPolicyError),桶不存在(noBucket)和欠费或冻结(arrears)三种原因。 is_support_trace_files_encryption Boolean 事件文件转储加密功能开关。 该参数必须与kms_id参数同时使用。 当前环境仅"tracker_type"参数值为"system"时支持该功能。 obs_info ObsInfo object 事件转储桶信息。 data_bucket DataBucketQuery object 数据类事件追踪桶信息。 当"tracker_type"参数值为"data"时有效。 表7 ManagementEventSelector 参数 参数类型 描述 exclude_service Array of strings 标识不转储的云服务名称。 目前只支持设置为KMS,表示屏蔽KMS服务的createDatakey事件。 表8 Lts 参数 参数类型 描述 is_lts_enabled Boolean 是否启用日志服务检索功能。 log_group_name String 云审计服务在日志服务中创建的日志组名称。 log_topic_name String 云审计服务在日志服务中创建的日志主题名称。 表9 ObsInfo 参数 参数类型 描述 bucket_name String 标识OBS桶名称。由数字或字母开头,支持小写字母、数字、“-”、“.”,长度为3~63个字符。 file_prefix_name String 标识需要存储于OBS的日志文件前缀,0-9,a-z,A-Z,'-','.','_'长度为0~64字符。 is_obs_created Boolean 标识配置桶是否由追踪器自动创建。 is_authorized_bucket Boolean 标识配置桶是否已经授权给CTS服务账号。 bucket_lifecycle Long 标识配置桶内对象存储周期。 当"tracker_type"参数值为"data"时该参数值有效。 compress_type String 压缩类型。包括不压缩(json),压缩(gzip)两种状态。默认为gzip格式。 枚举值: gzip json is_sort_by_service Boolean 路径按云服务划分,打开后转储文件路径中将增加云服务名。默认为true。 表10 DataBucketQuery 参数 参数类型 描述 data_bucket_name String 标识OBS桶名称。由数字或字母开头,支持小写字母、数字、“-”、“.”,长度为3~63个字符。 search_enabled Boolean 追踪桶日志是否支持搜索。 data_event Array of strings 数据类追踪器追踪对象的桶名。 当启用或者停用数据类追踪器时,该参数为必选。 管理类追踪器无此参数。 追踪器一旦创建追踪桶无法修改。 READ OBS对象读取操作;WRITE OBS对象写操作。 枚举值: WRITE READ 状态码: 400 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 401 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 403 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 404 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 500 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 503 表16 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 tracker_type 是 String 标识追踪器类型。 目前支持系统追踪器类型有管理类追踪器(system)和数据类追踪器(data)。 数据类追踪器和管理类追踪器共同参数有:is_lts_enabled, obs_info, is_support_validate; 管理类追踪器参数:is_support_trace_files_encryption, kms_id; 数据类追踪器参数:tracker_name, data_bucket。 枚举值: system data tracker_name 是 String 标识追踪器名称。 当"tracker_type"参数值为"system"时该参数为默认值"system"。 当"tracker_type"参数值为"data"时该参数需要指定追踪器名称"。 is_lts_enabled 否 Boolean 是否打开事件分析。 is_organization_tracker 否 Boolean 是否应用到我的组织。 只针对管理类追踪器。设置为true时,ORG组织下所有成员当前区域的审计日志会转储到该追踪器配置的OBS桶或者LTS日志流,但是事件列表界面不支持查看其它组织成员的审计日志。 management_event_selector 否 ManagementEventSelector object 管理类事件选择器。 obs_info 否 TrackerObsInfo object 转储桶配置 is_support_trace_files_encryption 否 Boolean 事件文件转储加密功能开关。 当"tracker_type"参数值为"system"时该参数值有效。 该参数必须与kms_id参数同时使用。 kms_id 否 String 事件文件转储加密所采用的秘钥id(从KMS获取)。 当"tracker_type"参数值为"system"时该参数值有效。 当"is_support_trace_files_encryption"参数值为“是”时,此参数为必选项。 is_support_validate 否 Boolean 事件文件转储时是否打开事件文件校验。 data_bucket 否 DataBucket object 追踪桶配置信息。 当"tracker_type"参数值为"data"时该参数值有效。 表3 ManagementEventSelector 参数 是否必选 参数类型 描述 exclude_service 否 Array of strings 标识不转储的云服务名称。 目前只支持设置为KMS,表示屏蔽KMS服务的createDatakey事件。 表4 TrackerObsInfo 参数 是否必选 参数类型 描述 bucket_name 否 String 标识OBS桶名称。由数字或字母开头,支持小写字母、数字、“-”、“.”,长度为3~63个字符。 file_prefix_name 否 String 标识需要存储于OBS的日志文件前缀,0-9,a-z,A-Z,'-','.','_'长度为0~64字符。 is_obs_created 否 Boolean 是否支持新建OBS桶。 值为“true”时,表示新创建OBS桶存储事件文件; 值为“false”时,选择已存在的OBS桶存储事件文件。 bucket_lifecycle 否 Integer 标识配置桶内对象存储周期。 当"tracker_type"参数值为"data"时该参数值有效。 枚举值: 30 60 90 180 1095 compress_type 否 String 压缩类型。包括不压缩(json),压缩(gzip)两种状态。默认为gzip格式。 枚举值: gzip json is_sort_by_service 否 Boolean 路径按云服务划分,打开后转储文件路径中将增加云服务名。默认为true。 表5 DataBucket 参数 是否必选 参数类型 描述 data_bucket_name 否 String 数据类追踪器追踪对象的桶名。 当启用或者停用数据类追踪器时,该参数为必选。 管理类追踪器无此参数。 追踪器一旦创建追踪桶无法修改。 data_event 否 Array of strings 数据类追踪器追踪的操作类型。 当启用或者停用数据类追踪器时,该参数为必选。 管理类追踪器无此参数。 READ OBS对象读取操作;WRITE OBS对象写操作。 枚举值: WRITE READ
  • 调用API获取项目ID 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180xxxx", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d1xxxx", "name": "xx-region-1", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f89xxxx" }, "id": "a4a5d4098fb4474fa22cd0xxxx", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 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 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 85 86 87 88 89 90 91 92 93 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cts/v3/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 := cts.NewCtsClient( cts.CtsClientBuilder(). WithRegion(region.ValueOf("cn-north-4")). WithCredential(auth). Build()) request := &model.UpdateNotificationRequest{} var listUserListNotifyUserList = []string{ "test2", "test3", } var listUserListNotifyUserList1 = []string{ "test", "test1", } var listNotifyUserListbody = []model.NotificationUsers{ { UserGroup: "admin", UserList: listUserListNotifyUserList1, }, { UserGroup: "CTS view", UserList: listUserListNotifyUserList, }, } var listTraceNamesOperations = []string{ "deletePolicyGroup", "updatePolicyGroup", "createPolicyGroup", } var listTraceNamesOperations1 = []string{ "deleteNotification", "updateNotification", } var listTraceNamesOperations2 = []string{ "createTracker", "deleteTracker", } var listOperationsbody = []model.Operations{ { ServiceType: "CTS", ResourceType: "tracker", TraceNames: listTraceNamesOperations2, }, { ServiceType: "CTS", ResourceType: "notification", TraceNames: listTraceNamesOperations1, }, { ServiceType: "AOM", ResourceType: "pe", TraceNames: listTraceNamesOperations, }, } topicIdUpdateNotificationRequestBody:= "urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:foo" request.Body = &model.UpdateNotificationRequestBody{ NotificationId: "6d4a09bb-aa8e-40db-9e87-0d5e203823a8", TopicId: &topicIdUpdateNotificationRequestBody, Status: model.GetUpdateNotificationRequestBodyStatusEnum().ENABLED, NotifyUserList: &listNotifyUserListbody, Operations: &listOperationsbody, OperationType: model.GetUpdateNotificationRequestBodyOperationTypeEnum().CUSTOMIZED, NotificationName: "keyOperate_info_cfwy", } response, err := client.UpdateNotification(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
  • 响应示例 状态码: 200 修改关键操作通知成功。 { "notification_id" : "6d4a09bb-aa8e-40db-9e87-0d5e203823a8", "notification_name" : "keyOperate_info_cfwy", "operation_type" : "customized", "operations" : [ { "service_type" : "CTS", "resource_type" : "tracker", "trace_names" : [ "createTracker", "deleteTracker" ] }, { "service_type" : "CTS", "resource_type" : "notification", "trace_names" : [ "deleteNotification", "updateNotification" ] }, { "service_type" : "AOM", "resource_type" : "pe", "trace_names" : [ "deletePolicyGroup", "updatePolicyGroup", "createPolicyGroup" ] } ], "notify_user_list" : [ { "user_group" : "admin", "user_list" : [ "test", "test1" ] }, { "user_group" : "CTS view", "user_list" : [ "test2", "test3" ] } ], "status" : "enabled", "project_id" : "24edf66e79d04187acb99a463e610764", "notification_type" : "smn", "create_time" : 1634001495876, "topic_id" : "urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:foo" }
  • 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 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 85 86 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcts.v3.region.cts_region import CtsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcts.v3 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 = os.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = CtsClient.new_builder() \ .with_credentials(credentials) \ .with_region(CtsRegion.value_of("cn-north-4")) \ .build() try: request = UpdateNotificationRequest() listUserListNotifyUserList = [ "test2", "test3" ] listUserListNotifyUserList1 = [ "test", "test1" ] listNotifyUserListbody = [ NotificationUsers( user_group="admin", user_list=listUserListNotifyUserList1 ), NotificationUsers( user_group="CTS view", user_list=listUserListNotifyUserList ) ] listTraceNamesOperations = [ "deletePolicyGroup", "updatePolicyGroup", "createPolicyGroup" ] listTraceNamesOperations1 = [ "deleteNotification", "updateNotification" ] listTraceNamesOperations2 = [ "createTracker", "deleteTracker" ] listOperationsbody = [ Operations( service_type="CTS", resource_type="tracker", trace_names=listTraceNamesOperations2 ), Operations( service_type="CTS", resource_type="notification", trace_names=listTraceNamesOperations1 ), Operations( service_type="AOM", resource_type="pe", trace_names=listTraceNamesOperations ) ] request.body = UpdateNotificationRequestBody( notification_id="6d4a09bb-aa8e-40db-9e87-0d5e203823a8", topic_id="urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:foo", status="enabled", notify_user_list=listNotifyUserListbody, operations=listOperationsbody, operation_type="customized", notification_name="keyOperate_info_cfwy" ) response = client.update_notification(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
  • 请求示例 修改关键操作通知请求样例。 PUT https://{endpoint}/v3/{project_id}/notifications { "notification_id" : "6d4a09bb-aa8e-40db-9e87-0d5e203823a8", "notification_name" : "keyOperate_info_cfwy", "operation_type" : "customized", "operations" : [ { "service_type" : "CTS", "resource_type" : "tracker", "trace_names" : [ "createTracker", "deleteTracker" ] }, { "service_type" : "CTS", "resource_type" : "notification", "trace_names" : [ "deleteNotification", "updateNotification" ] }, { "service_type" : "AOM", "resource_type" : "pe", "trace_names" : [ "deletePolicyGroup", "updatePolicyGroup", "createPolicyGroup" ] } ], "notify_user_list" : [ { "user_group" : "admin", "user_list" : [ "test", "test1" ] }, { "user_group" : "CTS view", "user_list" : [ "test2", "test3" ] } ], "status" : "enabled", "topic_id" : "urn:smn:{regionid}:24edf66e79d04187acb99a463e610764:foo" }
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 notification_name String 标识关键操作名称。 operation_type String 标识操作类型。 目前支持的操作类型有完整类型(complete)和自定义类型(customized)。 完整类型下,CTS发送通知的对象为已对接服务的所有事件。 自定义类型下,CTS发送通知的对象是在operations列表中指定的事件。 枚举值: customized complete operations Array of Operations objects 操作事件列表。 notify_user_list Array of NotificationUsers objects 通知用户列表,目前最多支持对10个用户组和50个用户发起的操作进行配置。 status String 标识关键操作通知状态,包括正常(enabled),停止(disabled)两种状态。 枚举值: enabled disabled topic_id String 消息通知服务的topic_urn或者函数工作流的func_urn。- 消息通知服务的topic_urn可以通过消息通知服务的查询主题列表API获取,示例:urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2。- 函数工作流的func_urn可以通过函数工作流的获取函数列表API获取,示例:urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test。 notification_id String 关键操作通知的唯一标识。 notification_type String 关键操作通知类型,根据topic_id区分为消息通知服务(smn)和函数工作流(fun)。 枚举值: smn fun project_id String 项目ID。 create_time Long 关键操作通知创建时间戳。 filter Filter object 关键操作通知高级筛选条件。 表7 Operations 参数 参数类型 描述 service_type String 标识云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 resource_type String 标识资源类型。 trace_names Array of strings 标识事件名称。 表8 NotificationUsers 参数 参数类型 描述 user_group String IAM用户组。 user_list Array of strings IAM用户。 表9 Filter 参数 参数类型 描述 condition String 多条件关系。 AND(默认值) 表示所有过滤条件满足后生效。 OR 表示有任意一个条件满足时生效。 枚举值: AND(默认值) OR is_support_filter Boolean 是否打开高级筛选开关。 rule Array of strings 高级过滤条件规则,示例如下:"key != value",格式为:字段 规则 值。-字段取值范围:api_version,code,trace_rating,trace_type,resource_id,resource_name。-规则:!= 或 =。- 值:api_version正则约束:^(a-zA-Z0-9_-.){1,64}$;code:最小长度1,最大长度256;trace_rating枚举值:"normal", "warning", "incident";trace_type枚举值:"ConsoleAction", "ApiCall", "SystemAction";resource_id:最小长度1,最大长度350;resource_name:最小长度1,最大长度256 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 401 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 403 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 404 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 503 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 notification_name 是 String 标识关键操作名称。 operation_type 是 String 标识操作类型。 目前支持的操作类型有完整类型(complete)和自定义类型(customized)。 完整类型下,CTS发送通知的对象为已对接服务的所有事件。 自定义类型下,CTS发送通知的对象是在operations列表中指定的事件。 枚举值: customized complete operations 否 Array of Operations objects 操作事件列表。 notify_user_list 否 Array of NotificationUsers objects 通知用户列表,目前最多支持对10个用户组和50个用户发起的操作进行配置。 status 是 String 标识关键操作通知状态,包括正常(enabled),停止(disabled)两种状态。 枚举值: enabled disabled topic_id 否 String 消息通知服务的topic_urn或者函数工作流的func_urn,当“status”字段为enabled时,该字段必填。- 消息通知服务的topic_urn可以通过消息通知服务的查询主题列表API获取,示例:urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_topic_v2。- 函数工作流的func_urn可以通过函数工作流的获取函数列表API获取,示例:urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test。 notification_id 是 String 关键操作通知id。 filter 否 Filter object 关键操作通知高级筛选条件。 表3 Operations 参数 是否必选 参数类型 描述 service_type 是 String 标识云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 resource_type 是 String 标识资源类型。 trace_names 是 Array of strings 标识事件名称。 表4 NotificationUsers 参数 是否必选 参数类型 描述 user_group 是 String IAM用户组。 user_list 是 Array of strings IAM用户。 表5 Filter 参数 是否必选 参数类型 描述 condition 是 String 多条件关系。 AND(默认值) 表示所有过滤条件满足后生效。 OR 表示有任意一个条件满足时生效。 枚举值: AND(默认值) OR is_support_filter 是 Boolean 是否打开高级筛选开关。 rule 是 Array of strings 高级过滤条件规则,示例如下:"key != value",格式为:字段 规则 值。-字段取值范围:api_version,code,trace_rating,trace_type,resource_id,resource_name。-规则:!= 或 =。- 值:api_version正则约束:^(a-zA-Z0-9_-.){1,64}$;code:最小长度1,最大长度256;trace_rating枚举值:"normal", "warning", "incident";trace_type枚举值:"ConsoleAction", "ApiCall", "SystemAction";resource_id:最小长度1,最大长度350;resource_name:最小长度1,最大长度256
  • 响应示例 状态码: 200 请求正常。 { "meta_data" : { "count" : 2, "marker" : "e001ccb8-bc09-11e6-b2cc-2640a43cc6e8" }, "traces" : [ { "time" : 1472148708232, "user" : { "name" : "xxx", "domain" : { "name" : "xxx", "id" : "ded649d814464428ba89d04d7955c93e" } }, "response" : { "code" : "VPC.0514", "message" : "Update port fail." }, "code" : 200, "service_type" : "VPC", "resource_type" : "eip", "resource_name" : "192.144.163.1", "resource_id" : "d502809d-0d1d-41ce-9690-784282142ccc", "trace_name" : "deleteEip", "trace_rating" : "warning", "trace_type" : "ConsoleAction", "api_version" : "2.0", "record_time" : 1481066128032, "trace_id" : "e001ccb9-bc09-11e6-b00b-4b2a61338db6" }, { "time" : 1472148708232, "user" : { "name" : "xxx", "domain" : { "name" : "xxx", "id" : "ded649d814464428ba89d04d7955c93e" } }, "response" : { "code" : "VPC.0514", "message" : "Update port fail." }, "code" : 200, "service_type" : "VPC", "resource_type" : "eip", "resource_name" : "192.144.163.1", "resource_id" : "d502809d-0d1d-41ce-9690-784282142ccc", "trace_name" : "deleteEip", "trace_rating" : "warning", "trace_type" : "ConsoleAction", "api_version" : "2.0", "record_time" : 1481066128032, "trace_id" : "e001ccb8-bc09-11e6-b2cc-2640a43cc6e8" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 traces Array of Traces objects 本次查询事件列表返回事件数组。 meta_data MetaData object 本次查询事件条数和标记位。 表4 Traces 参数 参数类型 描述 resource_id String 标识事件对应的云服务资源ID。 trace_name String 标识查询事件列表对应的事件名称。由0-9,a-z,A-Z,'-','.','_',组成,长度为1~64个字符,且以首字符必须为字母。 trace_rating String 标识事件等级,目前有三种:正常(normal),警告(warning),事故(incident)。 枚举值: normal warning incident trace_type String 标识事件发生源头类型,主要包括API调用(ApiCall),Console页面调用(ConsoleAction)和系统间调用(SystemAction)。 request String 标识事件对应接口请求内容,即资源操作请求体。 response String 记录用户请求的响应,标识事件对应接口响应内容,即资源操作结果返回体。 code String 记录用户请求的响应,标识事件对应接口返回的HTTP状态码。 api_version String 标识事件对应的云服务接口版本。 message String 标识其他云服务为此条事件添加的备注信息。 record_time Long 标识云审计服务记录本次事件的时间戳。 trace_id String 标识事件的ID,由系统生成的UUID。 time Long 标识事件产生的时间戳。 user UserInfo object 标识触发事件的用户信息。 service_type String 标识查询事件列表对应的云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 resource_type String 查询事件列表对应的资源类型。 source_ip String 标识触发事件的租户IP。 resource_name String 标识事件对应的资源名称。 request_id String 记录本次请求的request id location_info String 记录本次请求出错后,问题定位所需要的辅助信息。 endpoint String 云资源的详情页面 resource_url String 云资源的详情页面的访问链接(不含endpoint) 表5 UserInfo 参数 参数类型 描述 id String 账号ID,获取方式请参见获取账号ID。 name String 账号名称。 domain BaseUser object 标识触发事件的用户domain信息。 表6 BaseUser 参数 参数类型 描述 id String 账号ID,获取方式请参见获取账号ID。 name String 账号名称。 表7 MetaData 参数 参数类型 描述 count Integer 标识本次查询事件列表返回的事件记录的总条数。 marker String 标识本次查询事件列表返回的最后一个事件ID。可以使用这个参数返回值作为分页请求参数next的值,如果marker返回为null,则表示当前请求条件下查询事件列表已经全部返回没有下一页。
  • URI GET /v2.0/{project_id}/{tracker_name}/trace 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参见获取项目ID。 tracker_name 是 String 当前版本单租户仅支持一个追踪器,名称默认为“system”。 表2 Query参数 参数 是否必选 参数类型 描述 service_type 否 String 标识查询事件列表对应的云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节,单击对应云服务的文档链接,可以查看到该云服务的英文缩写。 user 否 String 标识特定用户名称,用以查询该用户下的所有事件。 from 否 Long 标识查询事件列表的起始时间戳(timestamp,为标准UTC时间,毫秒级,13位数字,不包括传入时间)默认为上一小时的时间戳。查询条件from与to配套使用。 limit 否 Integer 标示查询事件列表中限定返回的事件条数。不传时默认10条,最大值200条。 next 否 String 取值为响应中中marker的值,用于标识查询事件的起始时间(自此条事件的记录时间起,向更早时间查询)。 可以与“from”、“to”结合使用。 最终的查询条件取两组时间条件的交集。 resource_id 否 String 标示查询事件列表对应的云服务资源ID。 resource_name 否 String 标示查询事件列表对应的的资源名称。 说明:该字段可能包含大写字母。 resource_type 否 String 标示查询事件列表对应的资源类型。 to 否 Long 标识查询事件列表的结束时间戳(timestamp,为标准UTC时间,毫秒级,13位数字,不包括传入时间)默认为当前时间戳。查询条件to与from配套使用。 trace_id 否 String 标示某一条事件的事件ID。当传入这个查询条件时,其他查询条件自动不生效。 trace_name 否 String 标示查询事件列表对应的事件名称。 说明:该字段可能包含大写字母。 trace_rating 否 String 标示查询事件列表对应的事件等级目前有三种:正常(normal), 警告(warning),事故(incident)。
  • URI DELETE /v3/{project_id}/notifications 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,参见获取账号ID和项目ID章节。 表2 Query参数 参数 是否必选 参数类型 描述 notification_id 是 String 标识关键操作通知id。 批量删除请使用逗号隔开,notification_id="xxx1,cccc2"
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 401 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 403 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 503 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。
  • 响应示例 状态码: 200 请求正常。 { "meta_data" : { "count" : 2, "marker" : "e001ccb8-bc09-11e6-b2cc-2640a43cc6e8" }, "traces" : [ { "time" : 1472148708232, "user" : { "name" : "xxx", "domain" : { "name" : "xxx", "id" : "ded649d814464428ba89d04d7955c93e" } }, "response" : { "code" : "VPC.0514", "message" : "Update port fail." }, "code" : 200, "service_type" : "VPC", "resource_type" : "eip", "resource_name" : "192.144.163.1", "resource_id" : "d502809d-0d1d-41ce-9690-784282142ccc", "trace_name" : "deleteEip", "trace_rating" : "warning", "trace_type" : "ConsoleAction", "api_version" : "2.0", "record_time" : 1481066128032, "trace_id" : "e001ccb9-bc09-11e6-b00b-4b2a61338db6" }, { "time" : 1472148708232, "user" : { "name" : "xxx", "domain" : { "name" : "xxx", "id" : "ded649d814464428ba89d04d7955c93e" } }, "response" : { "code" : "VPC.0514", "message" : "Update port fail." }, "code" : 200, "service_type" : "VPC", "resource_type" : "eip", "resource_name" : "192.144.163.1", "resource_id" : "d502809d-0d1d-41ce-9690-784282142ccc", "trace_name" : "deleteEip", "trace_rating" : "warning", "trace_type" : "ConsoleAction", "api_version" : "2.0", "record_time" : 1481066128032, "trace_id" : "e001ccb8-bc09-11e6-b2cc-2640a43cc6e8" } ] }
  • 请求示例 查询管理类事件请求样例。 GET https://{endpoint}/v3/{project_id}/traces?limit=11&to=1479095278000&from=1478490478000&trace_name=createTracker&resource_type=tracker&service_type=CTS&trace_type=system 查询数据类事件请求样例。 GET https://{endpoint}/v3/{project_id}/traces?limit=11&to=1479095278000&from=1478490478000&trace_type=data
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 traces Array of Traces objects 本次查询事件列表返回事件数组。 meta_data MetaData object 本次查询事件条数和标记位。 表4 Traces 参数 参数类型 描述 resource_id String 标识事件对应的云服务资源ID。 trace_name String 标识查询事件列表对应的事件名称。由0-9,a-z,A-Z,'-','.','_',组成,长度为1~64个字符,且以首字符必须为字母。 trace_rating String 标识事件等级,目前有三种:正常(normal),警告(warning),事故(incident)。 枚举值: normal warning incident trace_type String 标识事件发生源头类型,管理类事件主要包括API调用(ApiCall),Console页面调用(ConsoleAction)和系统间调用(SystemAction)。数据类事件主要包括ObsSDK,ObsAPI。 request String 标识事件对应接口请求内容,即资源操作请求体。 response String 记录用户请求的响应,标识事件对应接口响应内容,即资源操作结果返回体。 code String 记录用户请求的响应,标识事件对应接口返回的HTTP状态码。 api_version String 标识事件对应的云服务接口版本。 message String 标识其他云服务为此条事件添加的备注信息。 record_time Long 标识云审计服务记录本次事件的时间戳。 trace_id String 标识事件的ID,由系统生成的UUID。 time Long 标识事件产生的时间戳。 user UserInfo object 标识触发事件的用户信息。 service_type String 标识查询事件列表对应的云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 resource_type String 查询事件列表对应的资源类型。 source_ip String 标识触发事件的租户IP。 resource_name String 标识事件对应的资源名称。 request_id String 记录本次请求的request id location_info String 记录本次请求出错后,问题定位所需要的辅助信息。 endpoint String 云资源的详情页面 resource_url String 云资源的详情页面的访问链接(不含endpoint) 表5 UserInfo 参数 参数类型 描述 id String 账号ID,参见《云审计服务API参考》“获取账号ID和项目ID”章节。 name String 账号名称。 domain BaseUser object 标识触发事件的用户domain信息。 表6 BaseUser 参数 参数类型 描述 id String 账号ID,参见《云审计服务API参考》“获取账号ID和项目ID”章节。 name String 账号名称。 表7 MetaData 参数 参数类型 描述 count Integer 标识本次查询事件列表返回的事件记录的总条数。 marker String 标识本次查询事件列表返回的最后一个事件ID。可以使用这个参数返回值作为分页请求参数next的值,如果marker返回为null,则表示当前请求条件下查询事件列表已经全部返回没有下一页。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。 状态码: 503 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码标识,CTS.XXX。 error_msg String 错误描述。
  • URI GET /v3/{project_id}/traces 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,参见获取账号ID和项目ID章节。 表2 Query参数 参数 是否必选 参数类型 描述 trace_type 是 String 标识审计事件类型。 目前支持管理类事件(system)和数据类事件(data)。 默认值为"system"。 枚举值: system data from 否 Long 标识查询事件列表的起始时间戳(timestamp,为标准UTC时间,毫秒级,13位数字,不包括传入时间)默认为上一小时的时间戳。查询条件from与to配套使用。 next 否 String 取值为响应中中marker的值,用于标识查询事件的起始时间(自此条事件的记录时间起,向更早时间查询)。 可以与“from”、“to”结合使用。 最终的查询条件取两组时间条件的交集。 to 否 Long 标识查询事件列表的结束时间戳(timestamp,为标准UTC时间,毫秒级,13位数字,不包括传入时间)默认为当前时间戳。查询条件to与from配套使用。 tracker_name 否 String 当"trace_type"字段值为"system"时,该字段值默认为"system"。 当"trace_type"字段值为"data"时,该字段值可以传入数据类追踪器名称,达到筛选某个数据类追踪器下的数据事件目的。 service_type 否 String 标识查询事件列表对应的云服务类型。必须为已对接CTS的云服务的英文缩写,且服务类型一般为大写字母。 当"trace_type"字段值为"system"时,该字段筛选有效"。 已对接的云服务列表参见《云审计服务用户指南》“支持审计的服务及详细操作列表”章节。 user 否 String 标识特定用户名称,用以查询该用户下的所有事件。 当"trace_type"字段值为"system"时,该字段筛选有效"。 resource_name 否 String 标示查询事件列表对应的的资源名称。 当"trace_type"字段值为"system"时,该字段筛选有效"。 说明:该字段可能包含大写字母。 resource_type 否 String 标示查询事件列表对应的资源类型。 当"trace_type"字段值为"system"时,该字段筛选有效"。 resource_id 否 String 标示查询事件列表对应的云服务资源ID。 当"trace_type"字段值为"system"时,该字段筛选有效"。 limit 否 Integer 标示查询事件列表中限定返回的事件条数。不传时默认10条,最大值200条。 trace_id 否 String 标示某一条事件的事件ID。当传入这个查询条件时,其他查询条件自动不生效。 当"trace_type"字段值为"system"时,该字段筛选有效"。 trace_name 否 String 标示查询事件列表对应的事件名称。 当"trace_type"字段值为"system"时,该字段筛选有效"。 说明:该字段可能包含大写字母。 trace_rating 否 String 标示查询事件列表对应的事件等级目前有三种:正常(normal), 警告(warning),事故(incident)。 当"trace_type"字段值为"system"时,该字段筛选有效"。 枚举值: normal warning incident
  • 响应示例 状态码: 201 请求成功。 { "id" : "2e6fa9b8-8c6e-456d-b5d3-77be972d220b", "create_time" : 1587958482923, "domain_id" : "aexxxxxxxx4d4fb4bexxxxxxx791fbf", "is_support_trace_files_encryption" : true, "kms_id" : "13a4207c-7abe-4b68-8510-16b84c3b5504", "obs_info" : { "bucket_name" : "obs-f1da", "file_prefix_name" : "yO8Q" }, "project_id" : "bb1xxxxxxxxe4f498cbxxxxxxxx35634", "lts" : { "is_lts_enabled" : true, "log_group_name" : "CTS", "log_topic_name" : "system-trace" }, "log_file_validate" : { "is_support_validate" : true }, "tracker_name" : "system", "tracker_type" : "system", "status" : "enabled" }
  • 请求示例 POST https://{endpoint}/v1.0/{project_id}/tracker { "bucket_name": "obs-f1da", "is_support_trace_files_encryption": true, "kms_id": "13a4207c-7abe-4b68-8510-16b84c3b5504", "is_obs_created": true, "file_prefix_name": "yO8Q", "lts": { "is_lts_enabled": true, "log_group_name": "CTS", "log_topic_name": 'system-trace' }, "log_file_validate": { "is_support_validate": true } }
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 id String 追踪器唯一标识。 create_time Long 追踪器创建时间戳。 domain_id String 账号ID,获取方式请参见获取账号ID。 project_id String 项目ID。 is_support_trace_files_encryption Boolean 事件文件转储加密功能开关。 该参数必须与kms_id参数同时使用。 kms_id String 事件文件转储加密所采用的密钥id(从KMS获取)。 当"is_support_trace_files_encryption"参数值为“是”时,此参数为必选项。 obs_info ObsInfo object 转储桶信息。 status String 标识追踪器状态,该接口返回正常状态(enabled)。 tracker_name String 追踪器名称。 tracker_type String 追踪器类型。 group_id String 日志组唯一标识。 stream_id String 日志流唯一标识。 lts Lts object 事件分析 is_support_validate Boolean 是否打开事件文件校验。当前环境仅"tracker_type"参数值为"system"时支持该功能。 表6 ObsInfo 参数 参数类型 描述 bucket_name String 标识OBS桶名称。由数字或字母开头,支持小写字母、数字、“-”、“.”,长度为3~63个字符。 file_prefix_name String 标识需要存储于OBS的日志文件前缀,0-9,a-z,A-Z,'-','.','_'长度为0~64字符。 is_obs_created Boolean 标识配置桶是否由追踪器自动创建。 is_authorized_bucket Boolean 标识配置桶是否已经授权给CTS服务账号。 bucket_lifecycle String 标识配置桶内对象存储周期。 当"tracker_type"参数值为"data"时该参数值有效。 表7 Lts 参数 参数类型 描述 is_lts_enabled Boolean 是否启用日志服务检索功能。 log_group_name String 云审计服务在日志服务中创建的日志组名称。 log_topic_name String 云审计服务在日志服务中创建的日志主题名称。
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 bucket_name 是 String 标识OBS桶名称。由数字或字母开头,支持小写字母、数字、“-”、“.”,长度为3~63个字符。 file_prefix_name 否 String 标识需要存储于OBS的日志文件前缀,0-9,a-z,A-Z,'-','.','_'长度为0~64字符。 is_obs_created 否 Boolean 是否支持新建OBS桶,默认为“false”。 值为“true”时,表示新创建OBS桶存储事件文件; 值为“false”时,选择已存在的OBS桶存储事件文件。 桶名称包含数字、字母、'-'和'.'(非数字、字母类字符最多存在1个),长度为3~64字符。 is_support_trace_files_encryption 否 Boolean 事件文件转储加密功能开关。 该参数必须与kms_id参数同时使用。 kms_id 否 String 事件文件转储加密所采用的密钥id(从KMS获取)。 当"is_support_trace_files_encryption"参数值为“是”时,此参数为必选项。 lts 否 Lts object 事件分析 log_file_validate 否 LogFileValidate object 文件校验 表3 Lts 参数 是否必选 参数类型 描述 is_lts_enabled 是 Boolean 是否启用日志服务检索功能。 log_group_name 是 String 云审计服务在日志服务中创建的日志组名称。 log_topic_name 是 String 云审计服务在日志服务中创建的日志主题名称。 表4 LogFileValidate 参数 是否必选 参数类型 描述 is_support_validate 是 Boolean 是否打开事件文件校验。
共100000条