华为云用户手册

  • 查看训练效果 启动模型微调任务后,在微调大师列表单击操作列的“任务详情”,在弹窗中选择“指标效果”页签,可以查看训练效果。 表2 训练效果的指标介绍 指标名称 指标说明 NPU/GPU利用率 在训练过程中,机器的NPU/GPU占用情况(横坐标时间,纵坐标占用率)。 显存利用率 在训练过程中,机器的显存占用情况(横坐标时间,纵坐标占用率)。 吞吐 在训练过程中,每卡处理tokens数量(tokens/s/p)。每种框架计算方式不一致,例如,ATB可通过“samples per second*seq_lenth/总卡数”得到tokens/s/p,输出给throughout字段,seq_lenth取值在训练脚本中可以查看。 单机8卡吞吐量一般为1650tokens/s/p,双机16卡吞吐量一般为1625tokens/s/p。 说明: 自定义训练或 自定义镜像 训练,需要提前在训练启动脚本(例如“train.py”)中定义好迭代次数、LOSS和吞吐数据的存放位置,以及存放格式(必须是“迭代次数|loss|吞吐”),才能在此处正常查看吞吐和“训练LOSS”曲线。 训练LOSS 训练阶段的LOSS变化,模型在日志里用LOSS关键词记录数据,按照训练迭代周期记录LOSS值。
  • 选择训练任务类型 选择模型微调的训练任务类型。 当模型的“任务类型”是“文本问答”或“文本生成”时,“训练任务类型”默认和模型“任务类型”一致。“训练任务类型”支持修改,如果模型文件满足自定义模型规范(训练),则“训练任务类型”支持选择“自定义”。 当模型的“任务类型”是除“文本问答”和“文本生成”之外的类型(即自定义模型)时,则“训练任务类型”默认为“自定义”,支持修改为“文本问答”或“文本生成”。 当使用自定义镜像进行模型微调时,“训练任务类型”默认为“自定义”,且不支持修改。
  • 约束限制 Gallery CLI配置工具下载文件时依赖集群的公网访问权限,所以在使用CLI时要求集群配置NAT网关,具体操作请参见公网NAT网关。 只有托管到AI Gallery仓库的资产才支持使用Gallery CLI配置工具下载文件,如果在资产详情页有“复制完整资产名称”按钮即表示该资产支持使用Gallery CLI配置工具下载,如图1所示。 图1 复制完整资产名称 “运行平台”设置为“Pangu Studio”的数据集,不支持使用CLI工具下载。
  • 搜索资产 在各类资产模块页面,通过如下几种搜索方式可以提高资产的查找效率,快速找到适合的算法、模型、数据集、镜像、Workflow等资产。 图1 搜索资产 表1 快速搜索方式 区域 类型 搜索方式 支持的AI资产 1 搜索华为云官方资产 在页面单击“官方”,筛选出所有的华为云官方资产,该类资产均可免费使用。 Notebook、算法、模型 2 搜索精选商品 在页面单击“精选”,筛选出所有被标记为精选的资产。 Notebook、数据、算法、模型、Workflow 3 按标签搜索 在页面单击“所有标签”,选择标签,单击“确定”,筛选出相关资产。 Notebook、数据、算法、镜像、模型、Workflow 4 按排序方式搜索 在页面的排序列表选择排序方式,调整资产排序方式快速查找所需资产。 Notebook、数据、算法、镜像、模型、Workflow 5 搜索商用资产 在页面单击“商用”,筛选出所有的商业售卖资产。 算法、模型
  • 管理数据集文件 预览文件 在数据集详情页,选择“文件版本”页签。单击文件名称即可在线预览文件内容。 仅支持预览大小不超过10MB、格式为文本类或图片类的文件。 下载文件 在数据集详情页,选择“文件版本”页签。单击操作列的“下载”,选择保存路径单击“确认”,即可下载文件到本地。 删除文件 在数据集详情页,选择“文件版本”页签。单击操作列的“删除”,确认后即可将已经托管的文件从AI Gallery仓库中删除。 文件删除后不可恢复,请谨慎操作。
  • 创建数据集资产 登录AI Gallery,单击右上角“我的Gallery”进入我的Gallery页面。 单击左上方“创建资产”,选择“数据集”。 在“创建数据集”弹窗中配置参数,单击“创建”。 表1 创建数据集 参数名称 说明 数据集英文名称 必填项,数据集的英文名称。 如果没有填写“数据集中文名称”,则资产发布后,在数据集页签上会显示该“数据集英文名称”。 数据集中文名称 数据集的中文名称。 如果填写了“数据集中文名称”,则资产发布后,在数据集页签上会显示该“数据集中文名称”。 许可证 数据集资产遵循的使用协议,根据业务需求选择合适的许可证类型。 描述 填写资产简介,数据集发布后将作为副标题显示在数据集页签上,方便用户快速了解资产。 支持0~90个字符,请勿在描述中输入涉政、迷信、违禁等相关敏感词,否则发布审核无法通过。 创建完成后,跳转至数据集详情页。
  • 编辑数据集介绍 资产发布上架后,准确、完整的资产介绍有助于提升资产的排序位置和访问量,能更好的支撑用户使用该资产。 在数据集详情页,选择“数据集介绍”页签,单击右侧“编辑”。 编辑数据集基础设置和数据集描述。 表2 数据集介绍的参数说明 参数名称 说明 基础设置 数据集名称 显示数据集的名称,不可编辑。 许可证 数据集遵循的使用许可协议,根据业务需求选择活修改合适的许可证类型。 语言 选择使用数据集时支持的输入输出语言。 任务类型 选择数据集支持用于什么类型的训练模型。 运行平台 选择数据集额外支持的运行平台。 设置运行平台后,当资产上架后,该资产支持通过订阅的方式同步到所选运行平台使用。 设置运行平台后,单击“设置”,在弹窗中可以自定义设置运行平台的资产标签,且标签可以被一起同步至运行平台。 数据集描述 - 资产的README内容,支持添加资产的简介、使用场景、使用方法等信息。 当托管的是自定义镜像时,填写的内容要满足自定义镜像规范,否则该镜像无法正常使用AI Gallery工具链服务(微调大师和在线推理服务)。 说明: 建议写清楚模型的使用方法,方便使用者更好的完成训练、推理任务。 编辑完成后,单击“确认”保存修改。
  • 上传数据集文件 在数据集详情页,选择“文件版本”页签。 单击“添加文件”,进入上传文件页面,选择本地的数据文件单击“点击上传”或拖动文件,单击“确认上传”启动上传。 上传单个超过5GB的文件时,请使用Gallery CLI工具。CLI工具的获取和使用请参见Gallery CLI配置工具介绍。 文件合集大小不超过50GB。 文件上传完成前,请不要刷新或关闭上传页面,防止意外终止上传任务,导致数据缺失。 当文件状态变成“上传成功”表示数据文件成功上传至AI Gallery仓库进行托管。单击“完成”返回文件版本页面。 图1 上传成功 文件上传过程中请耐心等待,不要关闭当前上传页面,关闭页面会中断上传进程。
  • 安装Gallery CLI配置工具 当Gallery CLI配置工具包下载完成后,进入服务器安装工具。不管是ModelArts Lite云服务,还是本地Windows/Linux等服务器,安装操作都相同。 登录服务器,激活python虚拟环境。 conda activate [env_name] # 例如使用conda管理python环境(需要确认环境已安装Anaconda) 在python环境中安装CLI工具。 pip install ./gallery_cli-0.0.3-py3-none-any.whl 配置CLI工具的环境信息。 在服务器的任意目录下(本文以“/gallerycli”为例)新建CLI配置文件“config.env”,包含如下配置信息。 # IAM 相关配置 iam_url=https://iam.myhuaweicloud.com/v3/auth/tokens iam_project=cn-north-7 iam_timeout=15 # 账号密码,和AK/SK二选一 iam_domain=xxx iam_user=xxx iam_password=xxx # AK/SK,和账号密码二选一 iam_ak=xxx iam_sk=xxx # 托管仓库相关配置 repo_url=https://{ModelArts-Endpoint}.myhuaweicloud.com # 系统相关配置 cached_dir=/test # 加解密配置 sdk_encrypt_implementation_func=/path/to/crypt.py.my_encrypt_func sdk_decrypt_implementation_func=/path/to/crypt.py.my_decrypt_func 表1 配置项参数说明 参数名称 说明 iam_url IAM地址,默认为“https://iam.myhuaweicloud.com/v3/auth/tokens”。 iam_project 服务器所在区域的项目名称,获取方式请参见获取项目ID和名称。如果是本地服务器则默认是北京四区域,此处填写“cn-north-4”。 iam_timeout (可选)IAM访问超时时间,单位为秒,缺省值是5。当环境网络不稳定时,建议将该值改大。如果超过该时间IAM还没有响应,系统会返回超时错误码,便于定位链接故障。 iam_domain 用户的账号ID,获取方式请参见获取帐号名和帐号ID。 iam_user IAM用户名,获取方式请参见获取用户名和用户ID。 iam_password IAM用户密码,即账号的登录密码。 iam_ak 访问密钥AK,获取方式请参见访问密钥。 iam_sk 访问密钥SK,获取方式请参见访问密钥。 repo_url AI Gallery仓库的地址,格式为“http://{ModelArts-Endpoint}.myhuaweicloud.com”,其中不同区域的Endpoint可以在ModelArts地区和终端节点获取。 cached_dir 缓存目录,默认AI Gallery仓库的文件下载至该目录下。 sdk_encrypt_implementation_func 自定义加密函数,认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件中密文存放,使用时解密,确保安全。 sdk_decrypt_implementation_func 自定义解密函数,认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件中密文存放,使用时解密,确保安全。 配置文件中,账号密码认证和AK/SK认证二选一即可。如果使用账号密码认证,则需要填写配置项“iam_domain”、“iam_user”和“iam_password”;如果使用AK/SK认证,则需要填写配置项“iam_ak”、“iam_sk”和加密配置。 配置项中的认证凭据信息不建议使用明文,可以通过下述方式扩展自定义的加解密组件。 在module(yourmodule)自定义一个解(加)密方法,例如decrypt_func(cipher),要求可以通过“from yourmodule import decrypt_func”的方式获取认证凭据信息。 在配置文件中配置“sdk_decrypt_implementation_func=yourmodule.decrypt_func”指向自定义的解密方法的引用。程序加载时会通过import_lib加载认证凭据信息。 配置文件中配置密文的格式“iam_ak={Crypto}cipher”,其中cipher会在配置项读取认证凭据信息时被解析传递进decrypt_func方法中,进行解密。 其他类似自定义加密的方法,会在保存Token到本地时进行加密。 配置CLI工具的环境变量,指定到上一步新建的配置文件。 export SDK_CONFIG_PATH=/gallerycli/config.env # 填写正确的config.env路径 配置完成后,执行如下命令查看CLI工具是否安装成功。 gallery-cli --help 如果安装成功会显示CLI中所有可用选项的列表,如下所示。 Usage: gallery-cli [OPTIONS] COMMAND [ARGS]... ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --install-completion Install completion for the current shell. | │ --show-completion Show completion for the current shell, to copy it or customize the installation. | │ --help Show this message and exit. | ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ download Download files from the AI Gallery | │ login Log in using ak sk from huawei cloud iam | │ logout Log out | ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ “--help”选项可以用于获取命令的更多详细信息,可以随时使用它来列出所有可用选项及其详细信息。例如,“gallery-cli download --help”可以获取使用CLI下载文件的更多帮助信息。
  • “train_params.json”示例 表5 training_methods参数说明 参数名称 说明 name 自定义的训练方式。 hyperparameters 训练方式包含的超参。具体参数说明请参见表6。 表6 hyperparameters参数说明 参数名称 说明 name 超参的名称,只能包含英文、数字、下划线。 type 支持的超参类型,支持float、int、str或bool。 required 超参是否必选,支持true、false。必选不可删除,非必选可删除。 default 超参的默认值,如果无默认值,则填写空双引号。 help 超参的说明,不能超过20个字符。 { "training_methods": [ { "name": "全参微调", "hyperparameters": [ { "name": "lr", "type": "float", "required": true, "default": 0.001, "help": "学习率" }, { "name": "per_device_eval_batch_size", "type": "int", "required": false, "default": 32, "help": "批大小" }, { "name": "logging_steps", "type": "int", "required": false, "default": 24, "help": "每多少步记录一次步骤" }, { "name": "save_strategy", "type": "str", "required": true, "default": "epoch", "help": "训练过程中保存checkpoint的策略" }, { "name": "num_train_epochs", "type": "int", "required": true, "default": 20, "help": "训练的总epochs数" }, { "name": "warmup_ratio", "type": "float", "required": true, "default": 0.1, "help": "用于指定线性热身占总训练步骤的比例" } ] } ] }
  • “train.py”示例 表4 环境变量说明 变量名称 说明 示例 ENV_AG_MODEL_DIR 模型存放路径,AI Gallery的模型仓库地址,包含模型仓库的所有文件。 “/home/ma-user/.cache/gallery/model/ur12345--gpt2” ENV_AG_DATASET_DIR 数据集存放路径,AI Gallery的数据集仓库地址,包含数据集仓库的所有文件。 “/home/ma-user/.cache/gallery/dataset/ur12345--data_demo” ENV_AG_USER_PA RAM S 配置的训练超参json字符串。创建训练任务时在算法配置页面设置的超参,用json字符串表示。 {"per_device_eval_batch_size":"32","lr":"0.001","logging_steps":"24"} ENV_AG_TRAIN_OUTPUT_DIR 训练产物文件存放路径。训练产物将被保存到该路径。训练任务结束后,由AI Gallery平台将该目录上传到新模型的仓库中。 “/home/ma-user/.cache/gallery/output” ENV_AG_USER_METRI CS _ LOG _PATH 训练数据的日志文件存放路径。训练过程中的迭代次数、LOSS和吞吐数据按照“迭代次数|loss|吞吐”格式记录在日志中,AI Gallery通过环境变量找到日志,从中获取实际数据绘制成“吞吐”和“训练LOSS”曲线,呈现在训练的“指标效果”中。具体请参见查看训练效果。 说明: 日志文件中的迭代次数、LOSS和吞吐数据必须按照“迭代次数|loss|吞吐”格式存放,否则AI Gallery会数据解析失败,导致“吞吐”和“训练LOSS”曲线异常。 “/var/logs/user_metrics.log” import json import os from datasets import load_dataset from transformers import AutoImageProcessor from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor, RandomHorizontalFlip import numpy as np from transformers import AutoModelForImageClassification, TrainingArguments, Trainer from transformers import DefaultDataCollator from sklearn import metrics # 环境变量 # 工作目录 ENV_AG_WORK_DIR = 'ENV_AG_WORK_DIR' # 模型存放路径 ENV_AG_MODEL_DIR = 'ENV_AG_MODEL_DIR' # 数据集存放路径 ENV_AG_DATASET_DIR = 'ENV_AG_DATASET_DIR' # 配置的训练超参json字符串 ENV_AG_USER_PARAMS = 'ENV_AG_USER_PARAMS' # 训练产物存放路径 ENV_AG_TRAIN_OUTPUT_DIR = 'ENV_AG_TRAIN_OUTPUT_DIR' _transforms = None def _multi_class_classification_metrics(pred): raw_predictions, labels = pred predictions = np.argmax(raw_predictions, axis=1) results = { "f1_macro": metrics.f1_score(labels, predictions, average="macro"), "f1_micro": metrics.f1_score(labels, predictions, average="micro"), "f1_weighted": metrics.f1_score(labels, predictions, average="weighted"), "precision_macro": metrics.precision_score(labels, predictions, average="macro"), "precision_micro": metrics.precision_score(labels, predictions, average="micro"), "precision_weighted": metrics.precision_score(labels, predictions, average="weighted"), "recall_macro": metrics.recall_score(labels, predictions, average="macro"), "recall_micro": metrics.recall_score(labels, predictions, average="micro"), "recall_weighted": metrics.recall_score(labels, predictions, average="weighted"), "accuracy": metrics.accuracy_score(labels, predictions), } return results def parse_args(): """ 从AIGallery环境变量中获取用户配置的超参json """ return json.loads(os.getenv(ENV_AG_USER_PARAMS)) def _process_input_data(image_processor): # 加载数据集 dataset_path = os.getenv(ENV_AG_DATASET_DIR) dataset = load_dataset("imagefolder", data_dir=dataset_path) # 数据增强 normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std) size = (image_processor.size["shortest_edge"] if "shortest_edge" in image_processor.size else ( image_processor.size["height"], image_processor.size["width"])) global _transforms _transforms = Compose([RandomResizedCrop(size), RandomHorizontalFlip(), ToTensor(), normalize]) ret = dataset.with_transform(_format_transforms) return ret # 转换函数 def _format_transforms(examples): examples["pixel_values"] = [_transforms(img.convert("RGB")) for img in examples["image"]] del examples["image"] return examples def train(user_args): print('Start to process dataset') model_path = os.getenv(ENV_AG_MODEL_DIR) image_processor = AutoImageProcessor.from_pretrained(model_path) dataset = _process_input_data(image_processor) print(f"Dataset: {dataset}") # label和id映射 classes = dataset["train"].features["label"].names label2id = {c: i for i, c in enumerate(classes)} id2label = {i: c for i, c in enumerate(classes)} print('Start to load model') # 加载模型 model = AutoModelForImageClassification.from_pretrained( model_path, num_labels=len(classes), id2label=id2label, label2id=label2id, ignore_mismatched_sizes=True ) print('Start to set training args') # 训练参数 training_args = TrainingArguments( output_dir=os.getenv(ENV_AG_TRAIN_OUTPUT_DIR), remove_unused_columns=False, evaluation_strategy="epoch", save_strategy=user_args['save_strategy'], learning_rate=float(user_args['lr']), save_total_limit=3, per_device_train_batch_size=32, gradient_accumulation_steps=1, per_device_eval_batch_size=int(user_args['per_device_eval_batch_size']), num_train_epochs=int(user_args['num_train_epochs']), warmup_ratio=float(user_args['warmup_ratio']), logging_steps=int(user_args['logging_steps']), load_best_model_at_end=True, metric_for_best_model="accuracy", push_to_hub=False, ) print('Start to train') # 训练参数 trainer = Trainer( model=model, args=training_args, data_collator=DefaultDataCollator(), train_dataset=dataset["train"], eval_dataset=dataset["test"], tokenizer=image_processor, compute_metrics=_multi_class_classification_metrics, ) # 开始训练 train_results = trainer.train() print('Start to save model') # 保存模型 trainer.save_model() trainer.log_metrics("train", train_results.metrics) trainer.save_metrics("train", train_results.metrics) trainer.save_state() print('Start to evaluate') # 在验证集上做准确性评估 eva_metrics = trainer.evaluate() trainer.log_metrics("eval", eva_metrics) trainer.save_metrics("eval", eva_metrics) print('All Done') if __name__ == '__main__': args = parse_args() train(args)
  • 自定义模型规范(推理) 当托管自定义模型到AI Gallery时,如果模型要支持AI Gallery的推理服务,则需要在“模型文件”添加gallery_inference文件夹,文件夹内容参考表2。 gallery_inference文件夹必须是一级目录直接上传,否则会被判定不符合自定义模型规范,无法使用模型微调。 如果自定义模型的模型文件不符合gallery_inference文件列表要求或文件内容为空,都将不能正常部署在线推理服务。 表2 gallery_inference文件列表 文件类型 文件说明 “inference.py” 必选文件,推理脚本文件,定义了自定义模型的推理处理方式,包含初始化推理(init)和输入输出(call函数)。代码示例请参见inference.py示例。 如果推理脚本里使用了其他脚本文件,则必须一起打包在gallery_inference文件夹里上传,否则会导致推理失败。 “requirements.txt” 非必选文件,环境配置文件,定义了项目依赖的python包。AI Gallery提供了基础镜像的依赖环境,如果要添加自定义依赖项,可通过requirements.txt文件实现。基础镜像包含python、PyTorch、cuda(GPU)、CANN(NPU)。
  • 自定义模型使用的预置镜像 AI Gallery提供了PyTorch基础镜像,镜像里已经安装好了运行任务所需的软件,供自定义模型直接使用,快速进行训练、推理。预置镜像的版本信息请参见表3。 表3 AI Gallery预置镜像列表 引擎类型 资源类型 版本名称 PyTorch NPU pytorch_2.0.1-cann_6.3.2-py_3.9-euler_2.10.7-aarch64 GPU pytorch_2.0.0-cuda_11.7-py_3.9.11-ubuntu_20.04-x86_64
  • 自定义模型规范(训练) 当托管自定义模型到AI Gallery时,如果模型要支持AI Gallery的模型微调,则需要在“模型文件”添加gallery_train文件夹,文件夹内容参考表1。 gallery_train文件夹必须是一级目录直接上传,否则会被判定不符合自定义模型规范,无法使用模型微调。 如果自定义模型的模型文件不符合gallery_train文件列表要求或文件内容为空,都将不能正常进行模型微调。 表1 gallery_train文件列表 文件类型 文件说明 “train.py” 必选文件,训练脚本文件,定义了自定义模型的训练处理方式。代码示例请参见train.py示例。 如果训练脚本里使用了其他脚本文件,则必须一起打包在gallery_train文件夹里上传,否则会导致微调失败。 “train_params.json” 必选文件,训练参数文件,定义了模型训练的必要参数,例如训练方式、超参信息。该参数会显示在微调工作流的“作业设置”页面的算法配置和超参数设置里面。代码示例请参见train_params.json示例。 “dataset_readme.md” 必选文件,数据集要求说明,定义了模型训练时对数据集的要求,会显示在微调工作流的“准备数据”页面。 “requirements.txt” 非必选文件,环境配置文件,定义了项目依赖的python包。AI Gallery提供了基础镜像的依赖环境,如果要添加自定义依赖项,可通过requirements.txt文件实现。基础镜像包含python、PyTorch、cuda(GPU)、CANN(NPU)。
  • 自定义模型的使用流程 托管模型资产 模型基础设置里的“任务类型”选择除“文本问答”和“文本生成”之外的类型。 上传模型文件时需要确认待上传的文件是否满足自定义模型规范。如果模型要支持训练,则需要满足自定义模型规范(训练);如果模型要支持推理,则需要满足自定义模型规范(推理)。 资产上架 模型微调或模型部署为推理服务 如果进行模型微调,则“训练任务类型”选择“自定义”。 如果部署为推理服务,则“推理任务类型”选择“自定义”
  • 准备工作 获取“repo_id”和待上传的文件名。 获取“repo_id” 在AI Gallery页面的资产详情页,单击复制完整的资产名称,如图1所示,获取到的信息即为“repo_id”。例如,复制出的信息为“ur5468675/test_cli_model1”,则该资产的“repo_id”为“ur5468675/test_cli_model1”。 图1 复制完整资产名称 获取待上传的文件名 获取待上传的文件在服务器的绝对路径。
  • 命令说明 登录Gallery CLI配置工具后,使用命令“gallery-cli upload --help”可以获取Gallery CLI配置工具上传文件的帮助信息。 gallery-cli upload --help 获得命令“gallery-cli upload”可用选项的完整列表如下所示。 Usage: gallery-cli upload [OPTIONS] REPO_ID [LOCAL_PATH] [PATH_IN_REPO] Upload File ╭─ Arguments ────────────────────────────────────────────────────────────────────────│ * repo_id TEXT ID of the repo to upload to (e.g. `username/repo-name`) [required] ││ local_path [LOCAL_PATH] Directory upload to repo [default: ./] ││ path_in_repo [PATH_IN_REPO] The repo path you want to upload (e.g. `dir1/dir2`) │╰─────────────────────────────────────────────────────────────────────╯ ╭─Options──────────────────────────────────────────────────────────────────╮│| --include TEXT Glob patterns to match files to download. ││ --exclude TEXT Glob patterns to exclude from files to download. ││ --help Show this message and exit. │╰─────────────────────────────────────────────────────────────────────╯ 具体支持如下使用场景: 上传单个文件 上传多个文件 上传单个文件到指定仓库目录 上传整个文件夹
  • “train_params.json”示例 表6 training_methods参数说明 参数名称 说明 name 自定义的训练方式。 hyperparameters 训练方式包含的超参。具体参数说明请参见表7。 表7 hyperparameters参数说明 参数名称 说明 name 超参的名称,只能包含英文、数字、下划线。 type 支持的超参类型,支持float、int、str或bool。 required 超参是否必选,支持true、false。必选不可删除,非必选可删除。 default 超参的默认值,如果无默认值,则填写空双引号。 help 超参的说明,不能超过20个字符。 { "training_methods": [ { "name": "全参微调", "hyperparameters": [ { "name": "lr", "type": "float", "required": true, "default": 0.001, "help": "学习率" }, { "name": "per_device_eval_batch_size", "type": "int", "required": false, "default": 32, "help": "批大小" }, { "name": "logging_steps", "type": "int", "required": false, "default": 24, "help": "每多少步记录一次步骤" }, { "name": "save_strategy", "type": "str", "required": true, "default": "epoch", "help": "训练过程中保存checkpoint的策略" }, { "name": "num_train_epochs", "type": "int", "required": true, "default": 20, "help": "训练的总epochs数" }, { "name": "warmup_ratio", "type": "float", "required": true, "default": 0.1, "help": "用于指定线性热身占总训练步骤的比例" } ] } ] }
  • “train.py”示例 表5 环境变量说明 变量名称 说明 示例 ENV_AG_MODEL_DIR 模型存放路径,AI Gallery的模型仓库地址,包含模型仓库的所有文件。 “/home/ma-user/.cache/gallery/model/ur12345--gpt2” ENV_AG_DATASET_DIR 数据集存放路径,AI Gallery的数据集仓库地址,包含数据集仓库的所有文件。 “/home/ma-user/.cache/gallery/dataset/ur12345--data_demo” ENV_AG_USER_PARAMS 配置的训练超参json字符串。创建训练任务时在算法配置页面设置的超参,用json字符串表示。 {"per_device_eval_batch_size":"32","lr":"0.001","logging_steps":"24"} ENV_AG_TRAIN_OUTPUT_DIR 训练产物文件存放路径。训练产物将被保存到该路径。训练任务结束后,由AI Gallery平台将该目录上传到新模型的仓库中。 “/home/ma-user/.cache/gallery/output” ENV_AG_USER_METRICS_LOG_PATH 训练数据的日志文件存放路径。训练过程中的迭代次数、LOSS和吞吐数据按照“迭代次数|loss|吞吐”格式记录在日志中,AI Gallery通过环境变量找到日志,从中获取实际数据绘制成“吞吐”和“训练LOSS”曲线,呈现在训练的“指标效果”中。具体请参见查看训练效果。 说明: 日志文件中的迭代次数、LOSS和吞吐数据必须按照“迭代次数|loss|吞吐”格式存放,否则AI Gallery会数据解析失败,导致“吞吐”和“训练LOSS”曲线异常。 “/var/logs/user_metrics.log” import json import os from datasets import load_dataset from transformers import AutoImageProcessor from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor, RandomHorizontalFlip import numpy as np from transformers import AutoModelForImageClassification, TrainingArguments, Trainer from transformers import DefaultDataCollator from sklearn import metrics # 环境变量 # 工作目录 ENV_AG_WORK_DIR = 'ENV_AG_WORK_DIR' # 模型存放路径 ENV_AG_MODEL_DIR = 'ENV_AG_MODEL_DIR' # 数据集存放路径 ENV_AG_DATASET_DIR = 'ENV_AG_DATASET_DIR' # 配置的训练超参json字符串 ENV_AG_USER_PARAMS = 'ENV_AG_USER_PARAMS' # 训练产物存放路径 ENV_AG_TRAIN_OUTPUT_DIR = 'ENV_AG_TRAIN_OUTPUT_DIR' _transforms = None def _multi_class_classification_metrics(pred): raw_predictions, labels = pred predictions = np.argmax(raw_predictions, axis=1) results = { "f1_macro": metrics.f1_score(labels, predictions, average="macro"), "f1_micro": metrics.f1_score(labels, predictions, average="micro"), "f1_weighted": metrics.f1_score(labels, predictions, average="weighted"), "precision_macro": metrics.precision_score(labels, predictions, average="macro"), "precision_micro": metrics.precision_score(labels, predictions, average="micro"), "precision_weighted": metrics.precision_score(labels, predictions, average="weighted"), "recall_macro": metrics.recall_score(labels, predictions, average="macro"), "recall_micro": metrics.recall_score(labels, predictions, average="micro"), "recall_weighted": metrics.recall_score(labels, predictions, average="weighted"), "accuracy": metrics.accuracy_score(labels, predictions), } return results def parse_args(): """ 从AIGallery环境变量中获取用户配置的超参json """ return json.loads(os.getenv(ENV_AG_USER_PARAMS)) def _process_input_data(image_processor): # 加载数据集 dataset_path = os.getenv(ENV_AG_DATASET_DIR) dataset = load_dataset("imagefolder", data_dir=dataset_path) # 数据增强 normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std) size = (image_processor.size["shortest_edge"] if "shortest_edge" in image_processor.size else ( image_processor.size["height"], image_processor.size["width"])) global _transforms _transforms = Compose([RandomResizedCrop(size), RandomHorizontalFlip(), ToTensor(), normalize]) ret = dataset.with_transform(_format_transforms) return ret # 转换函数 def _format_transforms(examples): examples["pixel_values"] = [_transforms(img.convert("RGB")) for img in examples["image"]] del examples["image"] return examples def train(user_args): print('Start to process dataset') model_path = os.getenv(ENV_AG_MODEL_DIR) image_processor = AutoImageProcessor.from_pretrained(model_path) dataset = _process_input_data(image_processor) print(f"Dataset: {dataset}") # label和id映射 classes = dataset["train"].features["label"].names label2id = {c: i for i, c in enumerate(classes)} id2label = {i: c for i, c in enumerate(classes)} print('Start to load model') # 加载模型 model = AutoModelForImageClassification.from_pretrained( model_path, num_labels=len(classes), id2label=id2label, label2id=label2id, ignore_mismatched_sizes=True ) print('Start to set training args') # 训练参数 training_args = TrainingArguments( output_dir=os.getenv(ENV_AG_TRAIN_OUTPUT_DIR), remove_unused_columns=False, evaluation_strategy="epoch", save_strategy=user_args['save_strategy'], learning_rate=float(user_args['lr']), save_total_limit=3, per_device_train_batch_size=32, gradient_accumulation_steps=1, per_device_eval_batch_size=int(user_args['per_device_eval_batch_size']), num_train_epochs=int(user_args['num_train_epochs']), warmup_ratio=float(user_args['warmup_ratio']), logging_steps=int(user_args['logging_steps']), load_best_model_at_end=True, metric_for_best_model="accuracy", push_to_hub=False, ) print('Start to train') # 训练参数 trainer = Trainer( model=model, args=training_args, data_collator=DefaultDataCollator(), train_dataset=dataset["train"], eval_dataset=dataset["test"], tokenizer=image_processor, compute_metrics=_multi_class_classification_metrics, ) # 开始训练 train_results = trainer.train() print('Start to save model') # 保存模型 trainer.save_model() trainer.log_metrics("train", train_results.metrics) trainer.save_metrics("train", train_results.metrics) trainer.save_state() print('Start to evaluate') # 在验证集上做准确性评估 eva_metrics = trainer.evaluate() trainer.log_metrics("eval", eva_metrics) trainer.save_metrics("eval", eva_metrics) print('All Done') if __name__ == '__main__': args = parse_args() train(args)
  • 自定义镜像的使用流程 托管自定义镜像,操作步骤请参考托管模型资产。 如果自定义镜像要支持训练,则需要满足自定义镜像规范(训练)。 如果自定义镜像要支持推理,则需要满足自定义镜像规范(推理)。 上架自定义镜像,操作步骤请参考资产上架。 在AI Gallery进行自定义镜像训练或推理。模型微调或模型部署为推理服务 如果使用自定义镜像进行训练,操作步骤可以参考模型微调,其中“训练任务类型”默认选择“自定义”,且不支持修改。 如果使用自定义镜像进行部署推理服务,操作步骤可以参考模型部署为推理服务,其中“推理任务类型”默认选择“自定义”,且不支持修改。
  • 通过MSTSC客户端登录 云堡垒机 用户获取资源运维权限后,可通过MSTSC客户端直接登录进行运维操作。 打开本地远程桌面连接(MSTSC)工具。 在弹出的对话框中,“计算机”列,输入“ 堡垒机 IP:53389”。 图1 配置计算机 单击“连接”,在登录页面完成登录。 username:堡垒机用户登录名@Windows主机资源账户名@Windows主机资源IP:Windows远程端口(默认3389),例如admin@Administrator@192.168.1.1:3389。 “Windows主机资源账户名”必须是已添加到堡垒机中的资源账户,且登录方式是”自动登录“,否则无法识别Windows主机资源账户,且无法生成运维审计文件。不支持实时会话运维。如何添加主机资源账户,请参考添加资源账户章节。 password:输入当前堡垒机的用户密码。
  • 版本功能差异 不同版本支持功能差别,标识符号说明如下: ×:代表不支持该功能。 √:代表支持该功能。 √+:代表支持该功能,但需额外购买功能或服务。 表1 不同版本功能差异 服务功能 功能模块 功能概述 基础版 标准版 专业版 安全概览 安全评分 集中呈现资产安全风险评分和风险等级分布,同时展示当前风险防御能力。 √ √ √ 安全监控 实时呈现展示待处理威胁告警、待修复漏洞、基线异常问题的安全监控统计数据。 √ √ √ 安全趋势 展示近7天内您的整体资产安全健康得分的趋势。 √ √ √ 威胁检测 集中呈现最近7天检测到的告警数量及类型。 √ √ √ 资源管理 资源安全状况 同步资源信息,集中呈现资源整体安全状况。 × √ √ 业务分析 专项分析 关联HSS、WAF、DBSS安全防护服务,全面展示主机、应用、数据库的安全状态和存在的安全风险。 √+ √+ √+ 综合大屏 综合 态势感知 大屏集中展示云上资产综合安全态势,动态呈现资产风险状况。 × × √+ 主机安全态势 大屏集中呈现华为云主机安全态势,动态呈现主机安全状况。 × × √+ 威胁告警 告警列表 集中呈现威胁告警事件统计信息,导出告警事件。 √ √ √ 通过将告警忽略、标记为线下处理,标识告警事件。 × √ √ 威胁分析 根据“攻击源”的IP查询被攻击的资产信息,亦可根据“被攻击的资产”的IP查询威胁攻击来源信息。 × √ √ 告警监控 通过设置监控的威胁名单,以及设置关注的告警条件,自定义呈现关注的威胁告警。 × × √ 通知告警 通过自定义威胁告警通知,及时了解威胁风险。 × √ √ 漏洞管理 应急漏洞公告 集中呈现业界披露的热点安全漏洞,全面掌握资产漏洞风险。 √ √ √ 主机漏洞 集中呈现主机 漏洞扫描 结果信息,并提供相应修复建议。 × √ √ 网站漏洞 集中呈现 网站漏洞扫描 结果信息,并提供相应修复建议。 × × √ 基线检查 云服务基线 通过一键扫描云服务基线,分类呈现云服务配置项检测结果信息。 × √ √ 通过一键扫描云服务基线,分类呈现云服务配置项检测结果信息。支持查看检测结果详情,并提供相应修复建议。 × × √ 检测结果 全部结果 集中呈现安全产品的检测结果,可导出结果、标识结果等。 √ √ √ 安全报告 分析报告 默认自动创建一个周报和月报,仅可生成两期报告。 × × √ 通过创建报告,定向发送报告内容。可管理历史报告和报告列表。 × × √ 产品集成 安全产品集成 通过集成安全产品,接入安全产品检测结果,管理检测结果的数据来源。 √ √ √ 日志管理 日志管理 通过授权OBS存储SA日志,满足日志审计和容灾需求。 × × √
  • 修订记录 发布日期 修改记录 2022-10-26 第三十六次正式发布。 本次更新说明如下: 刷新“计费说明”章节中的退订说明。 2022-08-25 第三十五次正式发布。 本次更新说明如下: 刷新SA权限管理章节内容,更新SA权限说明。 2022-03-18 第三十四次正式发布。 本次更新说明如下: 刷新产品功能、服务版本差异章节内容,下线资产管理功能相关描述,资源信息统一在资源管理中呈现。 2022-02-11 第三十三次正式发布。 本次更新说明如下: 刷新产品功能章节内容,下线安全编排功能相关描述。 刷新服务版本差异章节内容,下线安全编排功能相关描述。 2022-01-22 第三十二次正式发布。 本次更新说明如下: 刷新产品功能章节内容,新增资源管理功能相关描述。 刷新服务版本差异章节内容,新增资源管理功能相关描述。 2022-01-11 第三十一次正式发布。 本次更新说明如下: 刷新产品功能章节内容,“安全看板”改为“安全概览”,功能全新升级,更新安全概览相关描述。 刷新服务版本差异章节内容,更新安全概览相关描述。 2021-12-29 第三十次正式发布。 本次更新说明如下: 刷新产品功能章节内容,新增基线检查项目描述。 2021-12-22 第二十九次正式发布。 本次更新说明如下: 刷新了产品功能章节,删除存储SA日志至LTS服务的内容。 删除了与其他云服务的关系中与LTS的关系的说明。 2021-11-11 第二十八次正式发布。 本次更新说明如下: 刷新了服务版本差异章节,新增了标准版内容。 新增了“业务分析”功能描述。 2021-08-13 第二十七次正式发布。 本次更新说明如下: 刷新了产品功能章节,新增云服务基线检查项目及其说明。 2021-06-25 第二十六次正式发布。 本次更新说明如下: 刷新了产品功能章节,更新云服务基线检查说明。 2021-04-28 第二十五次正式发布。 本次更新说明如下: 修改了产品功能章节,支持将态势感知日志存储至OBS桶。 新增了与其他云服务的关系中与OBS的关系的说明。 2021-04-20 第二十四次正式发布。 本次更新说明如下: 修改了产品功能章节,支持接入安天威胁情报综合分析平台,提供快速查询与获取威胁情报能力。 2021-03-31 第二十三次正式发布。 本次更新说明如下: 修改了产品功能章节,优化了数据安全内容描述。 2021-02-23 第二十二次正式发布。 本次更新说明如下: 修改了产品功能章节,支持接入CGS和CodeArts Inspector产品数据,以及支持统筹管理合规检查、主机漏洞等检查结果。 2021-02-09 第二十一次正式发布。 本次更新说明如下: 修改了服务版本差异章节,支持自定义安全分析报告; 修改了产品功能章节,支持自定义安全分析报告。 2020-12-24 第二十次正式发布。 本次更新说明如下: 修改了产品功能章节,支持接入云堡垒机数据,以及支持查看数据上报状态。 2020-10-21 第十九次正式发布。 本次更新说明如下: 修改了服务版本差异章节,新增产品集成说明; 修改了产品功能章节,新增产品集成说明。 2020-09-29 第十八次正式发布。 本次更新说明如下: 新增了服务版本差异章节,介绍不同版本的功能差异; 修改了产品功能章节,接入WAF告警事件,新增22种子告警项。 2020-08-28 第十七次正式发布。 本次更新说明如下: 修改了“计费说明”章节,新增按需转包周期说明。 2020-07-23 第十六次正式发布。 本次更新说明如下: 修改了应用场景章节,细化态势感知在主要应用场景的能力。 2020-07-10 第十五次正式发布。 本次更新说明如下: 修改了产品功能章节,新增17项云服务基线检查项目。 2020-07-09 第十四次正式发布。 本次更新说明如下: 修改了“计费说明”章节,新增“按需计费”和“自动续费”说明; 修改了产品功能章节,新增7种“异常行为”告警事件的子告警项。 2020-06-08 第十三次正式发布。 本次更新说明如下: 新增了SA权限管理章节,介绍SA权限策略和角色等内容。 2020-05-21 第十二次正式发布。 本次更新说明如下: 新增了“计费说明”章节,介绍计费项、计费模式、变更配置等内容。 2020-04-30 第十一次正式发布。 本次更新说明如下: 优化了产品功能章节,细化功能详情,以及分类阐述不同版本支持功能项。 2020-03-30 第十次正式发布。 本次更新说明如下: 删除了“区域和可用区”章节,SA实现全局使用,不受区域限制; Console切UI4.0,修改原“总览”为“安全看板”。 2019-12-13 第九次正式发布。 本次更新说明如下: 新增了与其他云服务的关系中与LTS的关系的说明。 2019-11-13 第八次正式发布。 本次更新说明如下: 修改了产品功能章节; 删除了“基础版和专业版的区别”章节。 2019-09-19 第七次正式发布。 本次更新说明如下: 修改了什么是态势感知?章节; 删除了“工作原理”章节。 2019-08-22 第六次正式发布。 本次更新说明如下: 新增了“区域和可用区”章节。 2019-02-20 第五次正式发布。 2018-11-06 第四次正式发布。 2018-10-16 第三次正式发布。 2018-08-06 第二次正式发布。 2018-04-24 第一次正式发布。
  • SA ReadOnlyAccess策略内容 { "Version": "1.1", "Statement": [ { "Action": [ "sa:cssb:get", "sa:service:get", "sa:subscribe:get", "sa:subscribe:getList", "sa:threatevent:getAnalyze", "sa:threatevent:getAsset", "sa:threatevent:getDashboard", "sa:threatevent:getHostscreen", "sa:threatevent:getList", "sa:threatevent:getOverview", "sa:threatevent:getSafety" ], "Effect": "Allow" } ] }
  • SA权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 SA部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问SA时,不需要切换区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对SA服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。SA支持的授权项请参见权限及授权项。 如表1所示,包括了SA的所有系统权限。 表1 SA系统权限 策略名称 描述 类别 依赖关系 SA FullAccess 态势感知的所有权限。 系统策略 无 SA ReadOnlyAccess 态势感知只读权限,拥有该权限的用户仅能查看态势感知数据,不具备态势感知配置权限。 系统策略 无 目前,“SA FullAccess”或“SA ReadOnlyAccess”权限需要配合“Tenant Guest”权限才能使用。具体说明如下: 配置SA所有权限:“SA FullAccess”和“Tenant Guest”权限。 其中,如果需要使用SA的资源管理和基线检查功能需要配置以下权限: 资源管理:“SA FullAccess”和“Tenant Administrator”权限,详细操作请参见配置相关功能所需的权限。 基线检查:“SA FullAccess”、“Tenant Administrator”和IAM相关权限,详细操作请参见配置相关功能所需的权限。 配置SA只读权限:“SA ReadOnlyAccess”和“Tenant Guest”权限。 如表2列出了SA常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 SA FullAccess SA ReadOnlyAccess 获取告警列表 √ √ 获取威胁分析结果 √ √ 获取主机列表 √ √ 查看综合态势感知大屏 √ √ 查看主机安全态势大屏 √ √ 查看安全概览 √ √ 查看安全概览 √ √ 配置告警设置 √ x 查看告警设置 √ √ 获取全局态势信息 √ √ 获取订阅主题 √ x 获取云服务基线检查结果 √ √ 设置云服务基线扫描 √ x
  • 产品功能 态势感知提供安全概览、资源管理、业务分析、综合大屏、威胁告警、漏洞管理、基线检查、检测结果、安全报告、日志管理、产品集成等全局安全态势集中管理功能。具体说明如表1所示。 表1 态势感知功能总览 功能 功能描述 参考链接 安全概览 呈现云上整体安全评估状况,并联动其他 云安全 服务,集中展示云上安全。 安全评分:根据版本威胁检测能力,评估整体资产安全健康得分,可快速了解未处理风险对资产的整体威胁状况。 安全监控:集中呈现未处理的威胁告警、漏洞和合规检查的风险数目,支持快速查看威胁告警、漏洞和合规风险详情。 安全趋势:呈现最近7天整体资产安全健康得分的趋势图。 威胁检测:集中呈现最近7天检测到的告警数量及类型。 安全概览 业务分析 关联HSS、WAF、DBSS服务,全面展示云上资产的安全状态和存在的安全风险。 业务分析 综合大屏 利用AI技术将海量云安全数据的分析并分类,通过综合大屏将 数据可视化 展示,集中呈现云上实时动态,云上关键风险一目了然,掌握云上安全态势更简单,更直观,更高效。 综合大屏 资源管理 同步资源信息,集中呈现资源整体安全状况。 资源管理 威胁告警 实时监控云上威胁攻击,提供告警通知和监控,记录近180天告警事件详情,分析威胁攻击情况,并针对典型威胁事件预置策略实施防御手段。 告警列表:列表呈现威胁告警事件统计信息,支持查看告警事件和受威胁资产详情,并支持导出全部告警事件。 威胁分析:支持从“攻击源”或“被攻击资产”查询威胁攻击,统计威胁攻击次数或资产被攻击次数。 告警监控:自定义监控的威胁名单、告警类型、告警级别等,选择性呈现关注的威胁告警。 通知告警:自定义威胁告警通知,支持设置每日定时告警通知和实时告警通知,通过接收 消息通知 及时了解威胁风险。 威胁告警 漏洞管理 通过实时获取业界热点安全漏洞讯息,同步主机漏洞扫描和网站漏洞扫描结果,全面掌握云上资产漏洞风险状况,并提供相应漏洞修复建议。 漏洞管理 基线检查 通过执行云服务基线扫描,检查基线配置风险状态,告警提示存在安全隐患的配置,并提供基线加固建议。 基线检查 检测结果 通过集成安全防护产品,接入安全产品检测数据,管理全部检测结果。 检测结果 分析报告 为统计全局安全攻击态势,通过开启安全报告,态势感知以邮件形式向指定的收件人发送安全报告,反映阶段性安全概况、安全风险趋势。 分析报告 日志管理 通过授权OBS服务存储态势感知日志,帮助用户轻松应对安全日志存储、导出场景,满足日志存储180天及集中审计的要求。 日志管理 安全产品集成 通过集成安全防护产品,接入安全产品检测数据,管理检测结果的数据来源。同时,支持查看传输数据量,管理数据上报健康状态。 安全产品集成
  • 主机漏洞 安全云脑 支持实时呈现主机漏洞扫描检测信息,支持查看漏洞详情,并提供相应漏洞修复建议。 主机漏洞共支持以下漏洞项的检测: 表1 主机漏洞检测项说明 检测项 说明 Linux软件漏洞检测 通过与漏洞库进行比对,检测出系统和软件(例如:SSH、OpenSSL、Apache、Mysql等)是否存在的漏洞,将存在风险的结果上报至管理控制台,并为您提供漏洞告警。 Windows系统漏洞检测 通过订阅微软官方更新,判断服务器上的补丁是否已经更新,并推送微软官方补丁,将存在风险的结果上报至管理控制台,并为您提供漏洞告警。 Web-CMS漏洞检测 通过对Web目录和文件进行检测,识别出Web-CMS漏洞,将存在风险的结果上报至管理控制台,并为您提供漏洞告警。 应用漏洞 通过检测服务器上运行的软件及依赖包发现是否存在漏洞,将存在风险的漏洞上报至控制台,并为您提供漏洞告警。 集成后,安全云脑中漏洞的等级和HSS中修复优先级的说明如下: HSS:显示漏洞的修复优先级,它是由漏洞最高CVSS分值、漏洞发布时间和漏洞影响的资产重要性进行加权计算得出,反映了漏洞修复的紧急程度。 漏洞修复优先级主要分为紧急、高、中、低四个等级,您可以参考修复优先级优先修复对您的服务器影响较大的漏洞。 SecMaster:显示漏洞的等级,等级是根据漏洞最高CVSS分值得出的,反应漏洞的严重程度。 漏洞等级主要分为高危、中危、低危、提示四个等级,您可以根据漏洞的严重程度(由高到低)进行修复。
  • 操作场景 本章节介绍如何处理检查结果,请根据您的需要进行选择: 修复风险项:根据检测结果修复风险检查项目。 反馈结果:基线检查项目中的手动检查项,您在线下执行检查后,需要在控制台上反馈检查结果,以便计算检查项合格率。 忽略检查项:如果您对某个检查项有其他检查要求(例如,“会话超时策略检查”检查项中检查会话时限是否设置为15分钟,而您的需求为会话时限是否设置为20分钟)或不需要对某检查项进行检查,可以执行忽略操作。 导入/导出检查结果:可以导入或导出检查结果数据信息。
  • SecMasterBiz插件说明 SecMasterBiz插件是自动更改告警名称流程中的一个插件,用于分析处理webshell类型告警的名称数据,可以按照用户自定义维度拼接告警名称,返回更新后的告警名称。 SecMasterBiz插件包含多个Action,其中,“changeWebshellAlertName” Action提供了几个入参供用户自定义选取,每个入参代表一个分析维度。 用户根据需要选择不同的维度参数对进行告警名称进行拼接,没有选中的参数,默认不返回该维度数据。填入y表示yes,即选择该参数;填入n表示no,或者保持为空,都表示不选择该参数。 表1 参数配置说明 参数名称 参数含义 取值范围 severity 告警严重程度 y/n createTime 告警创建时间 y/n srcIp 告警攻击源IP y/n sourceCountryCity 告警攻击源国家和城市 y/n destinationIp 告警攻击目标IP y/n destinationCountryCity 告警攻击目标国家和城市 y/n
  • 剧本说明 “攻击链路分析告警通知”剧本已匹配“攻击链路分析告警通知”流程,该流程需要使用消息通知服务(Simple Message Notification, SMN )来创建安全云脑告警通知主题,并完成订阅即可接收到告警通知。 “攻击链路分析告警通知”流程是通过资产关联,查询对应HSS告警影响资产所关联的网站资产列表,流程预置默认查询最多3条网站资产。 如果有关联网站资产,则每条网站资产查询3小时前到现在这个时间段内对应的WAF告警数据(告警类型为XSS、SQL注入、命令注入、本地文件包含、远程文件包含、Webshell、漏洞攻击),同样的,最多查询3条告警数据。 如果有对应WAF告警,则将WAF告警数据与本条HSS告警数据进行关联,并通过消息通知服务(Simple Message Notification,SMN)通知到邮箱。 图1 攻击链路分析告警通知流程
共100000条