华为云用户手册

  • 命令概览 $ ma-cli auto-completion -h Usage: ma-cli auto-completion [OPTIONS] [[Bash|Zsh|Fish]] Auto complete ma-cli command in terminal. Example: # print bash auto complete command to terminal ma-cli auto-completion Bash Options: -H, -h, --help Show this message and exit. # 默认显示Bash Shell自动补全命令 $ ma-cli auto-completion Tips: please paste following shell command to your terminal to activate auto complation. [ OK ] eval "$(_MA_CLI_COMPLETE=bash_source ma-cli)" # 执行上述命令,此时Terminal已经支持自动补全 $ eval "$(_MA_CLI_COMPLETE=bash_source ma-cli)" # 显示Fish Shell自动补全命令 $ ma-cli auto-completion Fish Tips: please paste following shell command to your terminal to activate auto complation. [ OK ] eval (env _MA_CLI_COMPLETE=fish_source ma-cli)
  • 参数说明 参数 是否必选 参数说明 默认值 fraction 否 分割比例,比例值对应第一个数据集的行数。 0.7 id_col 否 id列,按比例拆分的情况下,如果设置该列,则该列相同的样本不会被拆分,按阈值拆分则设置该列无效。 无 threshold_col 否 用于阈值拆分的列。 无 thrshold 否 拆分阈值。 0.0 seed 否 随机数种子。 1234 如果设置fraction,则按照比例拆分,阈值列和阈值设置无效。
  • 样例 数据样本 鸢尾花数据集,species列代表鸢尾花种类,共有Iris-setosa、Iris-versicolor和Iris-virginica三种类别,每种类别样本数量为50。 图1 数据样本 配置流程 运行流程 参数设置 图2 参数设置(按比例拆分) 图3 参数设置(按阈值拆分) 按petal_width列划分,小于等于2.0的数据划分至子数据集1,大于2.0的数据划分至子数据集2。 查看结果 按比例拆分 图4 子数据集1 图5 子数据集2 按阈值拆分 图6 子数据集1 图7 子数据集2
  • Step6 提交ModelArts训练作业 参考Step2,修改外壳的配置文件。 填写OBS桶信息 obs_bucket = 'obs://my_bucket/my_object' 按需修改runner里的Adapter参数。 adapter=dict( requirements=f'{work_dir}/algorithm/requirements.txt', framework_type='PyTorch', framework_version='PyTorch-1.4.0-python3.6', instance_type='modelarts.p3.large.public', pool_id=None, downloads=dict( src=[f'{obs_bucket}/{alg_cfg["data_root"]}', f'{obs_bucket}/{alg_cfg["pretrained"]}'], dst=[alg_cfg['data_root'], alg_cfg['pretrained']], ), uploads=dict( src=[run_dir], dst=[f'{obs_bucket}/{run_dir}'], ), ), 在Terminal中输入下述命令来提交ModelArts训练作业完成训练。 python manage.py run --launch_remote --cfg algorithms/ivgPose/config/sample/config.py --gpus 0 提交完训练作业后,可以在ModelArts控制台交互式界面看到当前训练作业的状态(如排队中、运行中等),可以在config.py配置的{run_dir}/{训练作业名称目录}下看到ModelArts上的训练日志。
  • Step5 推理 准备好待推理的图片,本小节以算法套件里内置的推理图片为例,原图片如下: 图1 待推理的图片 在Terminal中执行下述推理命令,其中--img_file的值为待推理图片的路径: python manage.py run --cfg algorithms/ivgPose/config/sample/config.py --pipeline infer --demo_type image_demo --load_from model_zoo/ivgPose/body/simplepose_resnet50_coco_256x192.pth.tar --img_path algorithms/ivgPose/algorithm/examples/images/body/human36m_s_01_act_02_subact_01_ca_01_000001.jpg --is_show 运行完毕后,在当前目录的export/exp_tmp下可以看到推理后的文件,打开后显示如下。 图2 推理后的文件
  • Step1 上传数据集到开发环境中 按照不同算法定义的数据结构和格式准备好数据集。 如果数据集在OBS桶里,在Terminal里可执行下述命令将OBS里的数据下载到Notebook环境中。 python manage.py copy --source obs://my_bucket/my_data_dir/ --dest /home/ma-user/work/my_data_dir 如果数据集比较小且存放在PC上。 如果使用的本地IDE是VS Code,可以通过拖放方式复制到VS Code连接的Notebook中。
  • Step2 修改配置文件 配置文件主要包括算法配置文件和算法参数文件,例如: 算法配置文件:./algorithms/ivgPose/config/sample/config.py 算法参数文件:./algorithms/ivgPose/config/sample/simplepose_resnet50_coco_256x192.py 根据需要修改训练相关参数,如数据集路径data_root、runner中的train_args参数以及train参数等。如下述代码所示。 config.py文件 train_args=dict( cfg=alg_cfg['cfg'], output_dir=run_dir, data_root=alg_cfg['data_root'], load_from=None, gpus=None, lr=None, max_epoch=5, samples_per_gpu=None, resume_from=None, pretrained=alg_cfg['pretrained'], train_data_root=None, val_data_root=None, ), simplepose_resnet50_coco_256x192.py文件 train = dict( save_period=-1, val_period=5, best_saver=dict(key_indicator='AP', rule='max'), ema=dict(type='ExpEMA') )
  • Step4 在开发环境中进行验证 在Terminal中执行下述测试命令,其中:--cfg为该预训练模型对应算法资产的配置文件路径,--load_from的值为待测试的模型路径,config.py为: python manage.py run --cfg algorithms/ivgPose/config/sample/config.py --pipeline evaluate --load_from ./model_zoo/ivgPose/body/simplepose_resnet50_coco_256x192.pth.tar 运行完毕后,在交互式输出界面或config.py配置的{run_dir}目录下的test.log可以看到验证过程的日志和结果。如下述信息所示: ivgpose-utils.py 133: Test: AP:0.735012 | AP .5:0.925143 | AP .75:0.813647 | AP (M):0.705874 | AP (L):0.778985 | AR:0.764798 | AR .5:0.933879 | AR .75:0.832966 | AR (M):0.732641 | AR (L):0.813304 | elapsed:00:28
  • 输入参数说明 参数名称 参数说明 参数要求 input_words_col_name 分词列,即进行ngram分词处理的列 string类型;必填;仅支持单列 input_words_sep 分词列中的词分隔符 string类型;必填;默认为" " input_weight_col_name 分词行权重 string类型;表列为数值类型;非必填; vocab_words_col_name 词袋词汇表的词汇列列名 string类型;如果词袋表不为空,此项为必填 count_gram_col_name 每个ngram短语的词个数(n),如1-gram,2-gram...,显示1-n等 string类型;表列为数值类型;如果历史输出表不为空,此项为必填 count_word_col_name ngram短语列 string类型;如果历史输出表不为空,此项为必填 count_count_col_name ngram统计列 string类型;表列为数值类型;如果历史输出表不为空,此项为必填 order ngram最大单词个数,即n-gram的n integer类型;必填;order范围为[1,3]
  • 参数说明 参数 是否必选 参数说明 默认值 strata_col 是 分层列, 按此列进行分层采样。 无 sample_size 否 采样个数。为整数时:表示每个层的采样个数;为字符串时:格式为strata0:n0,strata1:n1,…表示每个层分别设置的采样个数。 无 sample_ratio 否 采样比例。为数字时:范围(0,1) 表示每个层的采样比例;字符串时:格式为strata0:r0,strata1:r1,…表示每个层分别设置的采样比例。 0.2 random_seed 是 随机种子。 123
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"} } params = { "inputs": inputs, "b_output_action": True, "b_use_default_encoder": True, "input_features_str": "", # @param {"label":"input_features_str","type":"string","required":"false","helpTip":""} "outer_pipeline_stages": None, "label_col": "", # @param {"label":"label_col","type":"string","required":"true","helpTip":""} "chi_label_index_col": "label_index", # @param {"label":"chi_label_index_col","type":"string","required":"true","helpTip":""} "chi_features_col": "input_features", # @param {"label":"chi_features_col","type":"string","required":"true","helpTip":""} "chi_output_col": "output_features", # @param {"label":"chi_output_col","type":"string","required":"true","helpTip":""} "selector_type": "numTopFeatures", # @param {"label":"selector_type","type":"enum","required":"true","options":"numTopFeatures,percentile,fpr,fdr,fwe","helpTip":""} "num_top_features": 50, # @param {"label":"num_top_features","type":"integer","required":"true","range":"(0,2147483647]","helpTip":""} "percentile": 0.1, # @param {"label":"percentile","type":"number","required":"true","range":"[0,1]","helpTip":""} "fpr": 0.05, # @param {"label":"fpr","type":"number","required":"true","range":"[0,1]","helpTip":""} "fdr": 0.05, # @param {"label":"fdr","type":"number","required":"true","range":"[0,1]","helpTip":""} "fwe": 0.05, # @param {"label":"fwe","type":"number","required":"true","range":"[0,1]","helpTip":""} "max_categories": 1000 # @param {"label":"max_categories","type":"number","required":"true","range":"(0,2147483647]","helpTip":""} } chi_square_selector____id___ = MLSChiSquareSelector(**params) chi_square_selector____id___.run() # @output {"label":"dataframe","name":"chi_square_selector____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 参数说明 参数 子参数 参数说明 input_features_str - 输入列名组成的格式化字符串,例如: "column_a" "column_a,column_b" label_col - 目标列,基于该列进行卡方检验 chi_label_index_col - 目标列通过标签编码得到的新列名,默认为label_index chi_features_col - 调用spark卡方选择需要的输入特征向量列名,默认为input_features chi_output_col - 调用spark卡方选择需要的输入特征向量列名,默认为output_features selector_type - 卡方选择的选择方法,支持numTopFeatures,percentile,fpr,fdr,fwe num_top_features - 选择的特征个数,默认为50 percentile - 选择的特征个数占原始特征数量的比例,默认为0.1 fpr - 最高的p-value,默认为0.05 fdr - 期望的错误观察率的最大值,默认为0.05 fwe - 默认为0.05 max_categories - 特征的最大类别数,默认为1000
  • 概述 采用卡方检验来进行特征选择。 卡方检验(Chi-Squared Test或χ2 Test)的基本思想是通过特征变量与目标变量之间的偏差大小来选择相关性较大的特征变量。首先假设两个变量是独立的,然后观察实际值与理论值的偏差程度,该偏差程度代表两个变量之间的相关性。如果某个特征变量与目标变量之间偏差程度越大,则它们的相关性越高,最后根据相关性对特征变量进行排序,并选择与目标变量相关性较大的特征变量。卡方检验中假设理论值为E,第i个样本的实际值为xi,则偏差程度的计算公式如下:
  • 准备数据 训练代码工程案例请参考:在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练代码文件“train_mnist.py”。 数据集案例请参考:从MNIST官网下载“Mnist-Data-Set”数据集至本地,然后解压zip包,将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts2/dataset-mnist”OBS路径下。
  • 参数说明 参数名称 是否必选 参数描述 默认值 join_column_pairs_str 是 关联条件,等式对之间以”;“分割,等式之间以”,“分割; eg. left_col1,right_col1;left_col2,right_col2; 无 join_type 是 支持左连接、右连接、内连接和全连接(left_join、right_join、inner_join和full join)。 left_join mapjoin 否 是否进行mapjoin优化(将小表进行broadcoast广播)。 true output_left_cols 否 左表输出字段列 如果不选择,则默认为所有字段 output_right_cols 否 右表输出字段列 如果不选择,则默认为所有字段
  • 样例 数据样本 "Persons" 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing "Orders" 表: Id_O OrderNo Id_P 1 77895 3 2 44678 3 3 22456 1 4 24562 1 5 34764 65 配置流程 运行流程 算法参数设置 查看结果
  • 异常处理 Clone仓库失败。可能是网络原因问题。可以在JupyterLab的Terminal中通过执行git clone https://github.com/jupyterlab/extension-examples.git测试网络连通情况。 图6 Clone仓库失败 如果克隆时遇到Notebook当前目录下已有该仓库,系统给出提示仓库名称重复,此时可以单击“覆盖”继续克隆仓库,也可以单击取消。
  • 参数说明 参数 是否必选 参数说明 默认值 weight_col 是 权重列。 "weight" sample_size 否 采样数量。 100 sample_ratio 否 采样比例,范围(0,1),如果sample_size和sample_ratio同时设置,以sample_size为准。 0.2 with_replacement 是 是否有放回采样。 True partitions 否 分区数,有放回采样需设置该参数,数据量较大时可将该参数调大。 10 random_seed 否 随机种子。 1234
  • 样例 数据样本 id sentence label 1 ball ball fun planet galaxy 1 2 referendum referendum fun planet planet 0 3 planet planet planet galaxy ball 1 4 planet galaxy planet referendum ball 1 sentence ball ball ball referendum referendum planet planet ball 配置流程 运行流程 参数设置 结果查看 sentence words rawFeatures features rawPrediction probability prediction ball ball ball ['ball', 'ball', 'ball'] (8000,[5492],[3.0]) (8000,[5492],[0.6694306539426294]) [-7.115045557028399,-5.9949311191899355] [0.24599005712406302,0.7540099428759369] 1 referendum referendum ['referendum', 'referendum'] (8000,[999],[2.0]) (8000,[999],[1.0216512475319814]) [-9.561433564101923,-9.165985052719044] [0.402406373461625,0.5975936265383749] 1 planet planet ball ['planet', 'planet', 'ball'] (8000,[5492,6309],[1.0,2.0]) (8000,[5492,6309],[0.22314355131420976,0.0]) [-3.104090044788206,-2.2686204451354213] [0.3024897957164007,0.6975102042835993] 1
  • 参数说明 参数 是否必选 参数说明 默认值 sentence_col 是 文本列 "sentence" label_col 是 标签列(标签值需整数或浮点型) "label" words_col 否 用于分词后保存words的列名 "words" feature_col 否 用于保存feature的列名 "features" min_doc_freq 否 最小词数阈值 0 smoothing 否 平滑指数 1.0 prediction_col 否 用于保存prediction的列名 "prediction" raw_prediction_col 否 用于保存raw_prediction的列名 "raw_prediction" probability_col 否 用于保存probability的列名 "probability" raw_features_col 否 用于保存raw_features的列名 "raw_features" tf_num_features 否 tf-idf时用于保存的词的数量,建议不小于词汇种类 8000
  • 参数说明 参数名称 是否必选 参数说明 默认值 schema_str 是 非空字符串 schema:配置每一列对应的数据类型,格式为colname0 coltype0[, colname1 coltype1[, ...]]。例如:f0 string,f1 bigint,f2 double。 注意:配置的数据类型需要与 CS V文件每一列的数据类型保持一致,否则该列内容会读取失败。 无 local_file_path 否 本地文件路径 非必须,可通过文件夹选取;仅当file_source为LOCAL时,该路径有效。 无 file_path 否 读取CSV文件的路径 当文件来源选择OBS时,支持输入OBS文件路径,此时路径必须以OBS://开头。 当文件来源选择OTHERS时,支持输入HDFS文件路径。 无 file_source 否 支持LOCAL、OBS和OTHERS。范围:['LOCAL','OBS','OTHERS'] LOCAL field_delimiter 否 字段分隔符;如果输入则必须为字符 , handle_invalid_method 否 处理无效值的方法(无效值表示schema_str中设置的数据类型和csv中的不符),取值如下: 1.ERROR:抛出异常 2.SKIP:使用csv中的格式替换 ERROR ignore_first_line 否 是否忽略第一行的数据。 如果原表中已有表头,则需要开启此开关,否则会报错。 FALSE quote_string 否 引号字符,设置用于转义引号值的单个字符。 " row_delimiter 否 行分隔符。 \n skip_blank_line 否 是否忽略空行。 如果为True,该行数据全空时忽略;否则不忽略。 TRUE 1. schema_str这个参数,相当于增加列名(如果csv没有列名,则增加列名,ignore_first_line需置为False) 或 重命名列名(如果csv有列名,可以改列名,ignore_first_line需置为True)。 2. 只支持string,bigint,double类型,之后如果是想改变数据类型,需使用新算子做类型转换;其中tinyint、smallint、int均为bigint类型,char、varchar、date等其他类型均为string类型。 3. 该算子默认以"\n"作为行分隔符,如果某一字段内部存在"\n",需要提前处理;例如;将"\n"提前替换为空格,防止读取失败。示例如下: import pandas as pd df = pd.read_csv("test.csv",index_col=0) df = df.replace(to_replace=r'[\n\r]', value=' ', regex=True, inplace=True) df.to_csv("output.csv")
  • 样例 数据样本 5.1,3.5,1.4,0.2,Iris-setosa 5.0,2.0,3.5,1.0,Iris-versicolor 5.1,3.7,1.5,0.4,Iris-setosa 6.4,2.8,5.6,2.2,Iris-virginica 6.0,2.9,4.5,1.5,Iris-versicolor 4.9,3.0,1.4,0.2,Iris-setosa 5.7,2.6,3.5,1.0,Iris-versicolor 4.6,3.6,1.0,0.2,Iris-setosa 5.9,3.0,4.2,1.5,Iris-versicolor 6.3,2.8,5.1,1.5,Iris-virginica 4.7,3.2,1.3,0.2,Iris-setosa 5.1,3.3,1.7,0.5,Iris-setosa 5.5,2.4,3.8,1.1,Iris-versicolor 配置流程 运行流程 算法参数设置 schema_str: sepal_length double, sepal_width double, petal_length double, petal_width double, category string 查看结果
  • 购买Kafka实例 进入购买Kafka实例页面。 选择“计费模式”、“区域”、“项目”和“可用区”。 设置“实例名称”和“企业项目”。 设置实例信息。 规格选择模式:选择“集群版”或者“规格测算”或者“单机版”。 集群版:您需要根据实际情况自行选择集群版Kafka实例的版本号、代理规格、代理数量、磁盘类型和存储空间。集群版实例支持Kafka 1.1.0、2.7和3.x版本。 规格测算:系统根据您输入的参数(生产流量峰值、消费流量、单个Topic副本数、总分区数和老化时间内的生产消息量),为您计算出不同规格所需的代理个数和代理存储空间,您根据实际情况选择。 单机版:创建一个2.7版本、单代理的实例,关于单机版实例具体的介绍请参见单机和集群Kafka实例差异概述。 选择集群版时,您需要根据实际情况选择Kafka实例的版本号、代理规格、代理数量、磁盘类型和存储空间。 版本:Kafka的版本号,支持1.1.0、2.7、3.x。实例创建后,版本号不支持修改。 CPU架构:支持“x86计算”,保持默认值即可。 在“代理规格”中,请根据业务需求选择相应的代理规格。 单个代理最大分区数*代理个数=实例分区数上限。当所有Topic的总分区数大于实例分区数上限时,创建Topic失败。 在“代理数量”中,选择代理个数。 在“单个代理存储空间”区域,您根据实际需要选择存储Kafka数据的磁盘类型和总磁盘大小。Kafka实例创建后,磁盘类型不支持修改。 存储空间用于存储消息(包括副本中的消息)、日志和元数据,建议根据业务消息体积、副本数量以及预留磁盘大小选择存储空间大小。每个Kafka代理会预留33GB的磁盘空间,用于存储日志和元数据。 创建实例时会进行磁盘格式化,磁盘格式化会导致实际可用磁盘为总磁盘的93%~95%。 在“容量阈值策略”区域,设置磁盘使用达到容量阈值后的消息处理策略,容量阈值为95%。 自动删除:可以正常生产和消费消息,但是会删除最早的10%的消息,以保证磁盘容量充足。该场景优先保障业务不中断,数据存在丢失的风险。 生产受限:无法继续生产消息,但可以继续消费消息。该场景适用于对数据不能丢的业务场景,但是会导致生产业务失败。 图1 默认的规格类型 选择规格测算时,系统根据您输入的参数(生产流量峰值、消费流量、单个Topic副本数、总分区数和老化时间内的生产消息量),为您计算出不同规格所需的代理个数和代理存储空间,您根据实际情况选择。3.x版本不支持规格测算。 图2 规格测算 选择单机版时,您可以创建一个2.7版本、单代理的实例。 版本:Kafka的版本号,仅支持2.7。 CPU架构:支持“x86计算”,保持默认值即可。 在“代理规格”中,请根据业务需求选择相应的代理规格。 代理数量:只支持1个代理。 在“单个代理存储空间”区域,您根据实际需要选择存储Kafka数据的磁盘类型。磁盘容量默认为100GB,不支持修改。 Kafka实例创建后,磁盘类型不支持修改。 创建实例时会进行磁盘格式化,磁盘格式化会导致实际可用磁盘为总磁盘的93%~95%。 在“容量阈值策略”区域,设置磁盘使用达到容量阈值后的消息处理策略,容量阈值为95%。 自动删除:可以正常生产和消费消息,但是会删除最早的10%的消息,以保证磁盘容量充足。该场景优先保障业务不中断,数据存在丢失的风险。 生产受限:无法继续生产消息,但可以继续消费消息。该场景适用于对数据不能丢的业务场景,但是会导致生产业务失败。 设置实例网络环境信息。 在“虚拟私有云”下拉列表,选择已经创建好的虚拟私有云和子网。 虚拟私有云可以为您的Kafka实例构建隔离的、能自主配置和管理的虚拟网络环境。 虚拟私有云和子网在Kafka实例创建完成后,不支持修改。 在“内网IP地址”下拉列表,选择“自动分配”或“手动选择”。 自动分配:系统自动分配子网中可用的IP地址。 手动选择:在下拉框中勾选指定的IP地址。 除以下区域外,“内网ip地址”移动到了“内网访问”中,具体请参见6。 华北-北京一 中东-利雅得 拉美-圣保罗一 拉美-圣地亚哥 在“安全组”下拉列表,可以选择已经创建好的安全组。 安全组是一组对Kafka实例的访问规则的集合。您可以单击右侧的“管理安全组”,跳转到网络控制台的“安全组”页面,查看或创建安全组。 设置实例的访问方式。 表2 实例的访问方式 访问方式 接入方式 说明 内网访问 明文接入 明文接入表示客户端连接Kafka实例时,无需进行SASL认证。 内网访问不支持关闭,明文接入和密文接入至少开启一个。 密文接入 密文接入表示客户端连接Kafka实例时,需要进行SASL认证。 内网访问不支持关闭,明文接入和密文接入至少开启一个。部分region密文接入开启后,不支持关闭,如果需要关闭,请联系客服处理。 开启“密文接入”后,需要设置kafka安全协议、SASL PLAIN机制、用户名和密码。 实例创建后,关闭“密文接入”并不会删除已创建的用户,再次开启“密文接入”时无需创建用户。 内网IP地址 根据实际需求选择“自动分配”或“手动选择”。 自动分配:系统自动分配子网中可用的IP地址。 手动选择:在下拉框中勾选指定的IP地址。如果指定的IP地址数量少于代理数量时,系统会自动为剩余代理分配IP地址。 公网访问 明文接入 明文接入表示客户端连接Kafka实例时,无需进行SASL认证。 开启/关闭明文接入,并设置公网访问连接地址。 密文接入 密文接入表示客户端连接Kafka实例时,需要进行SASL认证。 开启/关闭密文接入,并设置公网访问连接地址。 开启“密文接入”后,需要设置kafka安全协议、SASL PLAIN机制、用户名和密码。 实例创建后,关闭“密文接入”并不会删除已创建的用户,再次开启“密文接入”时无需创建用户。 公网IP地址 根据页面提示信息选择对应数量的公网IP地址。 如果公网IP地址数量不足,请单击“创建弹性IP”跳转到弹性公网IP页面,创建公网IP地址。然后返回Kafka控制台,在“公网IP地址”后单击,刷新公网IP地址。 Kafka实例不支持绑定IPv6的弹性公网IP,只支持绑定IPv4的弹性公网IP。 单机版实例不支持密文接入。 kafka安全协议、SASL PLAIN机制、用户名和密码的参数解释如下: 表3 密文接入参数说明 参数名称 参数值 说明 kafka安全协议 SASL_SSL 采用SASL方式进行认证,数据通过SSL证书进行加密传输,安全性更高。 支持SC RAM -SHA-512机制和PLAIN机制。 什么是SCRAM-SHA-512机制和PLAIN机制? SCRAM-SHA-512机制:采用哈希算法对用户名与密码生成凭证,进行身份校验的安全认证机制,比PLAIN机制安全性更高。 PLAIN机制:一种简单的用户名密码校验机制。 SASL_PLAINTEXT 采用SASL方式进行认证,数据通过明文传输,性能更好。 支持SCRAM-SHA-512机制和PLAIN机制。 由于明文传输,建议使用SCRAM-SHA-512机制。 SASL PLAIN机制 - 未开启“SASL PLAIN机制”时,使用SCRAM-SHA-512机制对账号密码进行认证。 开启“SASL PLAIN机制”后,同时支持SCRAM-SHA-512机制和PLAIN机制,根据实际情况选择其中任意一种配置连接。 密文接入成功开启后,SASL PLAIN机制不支持修改。 用户名、密码 - 客户端用于连接Kafka实例的用户名和密码。 密文接入成功开启后,用户名不支持修改。 实例的访问方式在以下区域未上线: 华北-北京一 中东-利雅得 拉美-圣保罗一 拉美-圣地亚哥 设置“Kafka SASL_SSL”。 客户端连接Kafka实例时,是否开启SASL认证。开启Kafka SASL_SSL,则 数据加密 传输,安全性更高。 “Kafka SASL_SSL”默认为开启状态,Kafka实例创建后,Kafka SASL_SSL开关不支持修改,请慎重选择。如果创建后需要修改,需要重新创建实例。 开启Kafka SASL_SSL后,您可以选择是否开启“SASL PLAIN 机制”。未开启“SASL PLAIN 机制”时,使用SCRAM-SHA-512机制传输数据,开启“SASL PLAIN 机制”后,同时支持SCRAM-SHA-512机制和PLAIN机制,根据实际情况选择其中任意一种配置连接。Kafka实例创建后,SASL PLAIN机制开关不支持修改。 什么是SCRAM-SHA-512机制和PLAIN机制? SCRAM-SHA-512机制:采用哈希算法对用户名与密码生成凭证,进行身份校验的安全认证机制,比PLAIN机制安全性更高。 PLAIN机制:一种简单的用户名密码校验机制。 开启Kafka SASL_SSL后,您需要设置连接Kafka实例的用户名和密码。 除以下区域外,“Kafka SASL_SSL”已调整了位置,移动到了“内网访问”和“公网访问”中,具体请参见6。 华北-北京一 中东-利雅得 拉美-圣保罗一 拉美-圣地亚哥 单机版实例不显示此参数。 设置实例购买时长。 当选择了“包年/包月”付费模式时,页面才显示“购买时长”参数,您需要根据业务需要选择。 单击“更多配置”,设置更多相关信息。 设置“公网访问”。 “公网访问”默认为关闭状态,您可以选择是否开启。 开启公网访问后,还需要为每个代理设置对应的IPv4弹性IP地址。 开启公网访问后,还可以选择是否开启VPC内网明文访问。如果开启了VPC内网明文访问,无论实例是否开启SASL_SSL,通过内网连接实例时,数据都将明文传输。创建实例后,VPC内网明文访问开关不支持修改,请慎重选择。如果创建后需要修改,需要重新创建实例。 除以下区域外,“公网访问”已调整了位置,移动到了“更多配置”外,具体请参见6。 华北-北京一 中东-利雅得 拉美-圣保罗一 拉美-圣地亚哥 选择是否开启Smart Connect。 Smart Connect用于异构系统间的数据同步,开启Smart Connect后,设置Smart Connect任务可以实现Kafka实例和其他云服务之间的数据同步,或者两个Kafka实例之间的数据同步。 单机版实例不显示此参数。 设置“Kafka自动创建Topic”。 “Kafka自动创建Topic”默认为关闭状态,您可以选择是否开启。 开启“Kafka自动创建Topic”表示生产或消费一个未创建的Topic时,系统会自动创建此Topic,此Topic的默认参数值如下: 分区数为3。 副本数为3。 老化时间为72小时。 不开启同步复制和同步落盘。 消息时间戳类型为CreateTime。 批处理消息最大值为10485760字节。 如果在“配置参数”中修改“log.retention.hours”、“default.replication.factor”或“num.partitions”的参数值,此后自动创建的Topic参数值为修改后的参数值。 例如:“num.partitions”修改为“5”,自动创建的Topic参数值如下: 分区数为5。 副本数为3。 老化时间为72小时。 不开启同步复制和同步落盘。 消息时间戳类型为CreateTime。 批处理消息最大值为10485760字节。 设置“标签”。 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式消息服务Kafka版的相关标签策略,则需按照标签策略规则为Kafka实例添加标签。标签如果不符合标签策略的规则,则可能会导致Kafka实例创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击“查看预定义标签”,跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以直接在“标签键”和“标签值”中设置标签。 当前每个Kafka实例最多支持设置20个不同标签,标签的命名规格,请参考配置Kafka实例标签章节。 设置实例的描述信息。 填写完上述信息后,单击“立即购买”,进入规格确认页面。 确认实例信息无误且阅读并同意《华为云用户协议》后,如果“计费模式”选择“包年/包月”,单击“去支付”。根据界面提示信息,支付费用。如果“计费模式”选择“按需付费”,单击“提交”。 在实例列表页面,查看Kafka实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请参考删除Kafka实例,删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。 创建失败的实例,不会占用其他资源。
  • 请求特征畸形或不合理 由于很多CC攻击请求是攻击者随意构造的,仔细观察日志后,往往会发现这些请求有很多与正常请求不相符的畸形报文特征。常见的畸形报文特征及防护策略: 以下的防护配置是通过WAF的精准访问防护规则实现的,具体的操作请参见配置精准访问防护规则。 User-agent异常或畸形:例如,包含Python等自动化工具特征、明显格式错乱的UA(例如Mozilla///)、明显不合理的UA(例如www.example.com)。如果存在该请求特征,可以直接封禁请求。 配置示例:拦截User-agent包含Mozilla///的内容 User-agent不合理:例如,对于微信推广的H5页面,正常用户都应该通过微信发起访问,如果UA来自于Windows桌面浏览器(例如MSIE 6.0),则明显是不合理的。如果存在该请求特征,可以直接封禁请求。 配置示例:拦截User-agent包含MSIE 6.0的内容 Referer异常:例如,不带Referer或Referer固定且来自于非法站点,则可以封禁这种请求(访问网站首页或第一次访问页面的情形除外)。针对只能通过某个站内地址跳转访问的URL,您可以从Referer角度分析行为异常,决定是否封禁。 配置示例:拦截不带Referer的请求 Cookie异常:正常用户往往会在请求中带上属于网站本身业务集的一些cookie(第一次访问页面的情形除外)。很多情况下,CC攻击的报文不会携带任何cookie。您可以从这个角度出发,封禁不带cookie的访问请求。 配置示例:拦截不带Cookie的请求 缺少某些HTTP Header:例如,针对一些业务中需要的认证头等,正常用户的请求会携带,而攻击报文则不会。 配置示例:拦截Header不带authorization头的请求。 不正确的请求方法:例如,只有POST请求的接口被大量GET请求攻击,则可以直接封禁GET请求。 配置示例:拦截GET请求。
  • 攻击源来自海外或IDC机房IP CC攻击中很大比例的攻击来源于海外IP和IDC机房IP的情形。 对于面向中国用户的网站,在遭受攻击时可以通过封禁海外访问来缓解攻击压力。推荐您使用WAF的地理位置访问控制功能,封禁中国境外IP地址的访问,具体操作请参见配置地理位置访问控制规则。 如果您已经开启了WAF的威胁情报访问控制规则,可以封禁常见IDC库的IP,例如华为、腾讯。详细操作请参见配置威胁情报访问控制。 威胁情报访问控制功能现处于公测阶段,如需使用请提交工单申请开通。
  • 大流量高频CC攻击 在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。针对这种场景,直接对请求源IP设置限速规则是最有效的办法。建议您使用CC攻击的基于IP限速的模式,具体请参见通过IP限速限制网站访问频率。 配置示例:您可以配置以下CC规则,当一个IP在30秒内访问当前 域名 下任意路径的次数超过1000次,则封禁该IP的请求10个小时。该规则可以作为一般中小型站点的预防性配置。 在实际场景中,您需要根据自身业务需求调整限速模式和触发防护的限速频率,并选择合适的防护动作,以达到更有针对性、更精细化的防护效果。例如,为了预防登录接口受到恶意高频撞库攻击的影响,您可以配置路径(示例:使用“前缀为”逻辑符,将匹配内容设置为/login.php)。 “域名聚合统计”:开启后,泛域名对应的所有子域名的请求次数合并限速(不区分访问IP)。例如,配置的泛域名为“*.a.com”,会将所有子域名(b.a.com,c.a.com等)的请求一起聚合统计。 “全局计数”:仅云模式支持配置该参数。默认为每WAF节点单独计数,开启后本区域所有节点合并计数。
  • 防护措施 根据服务访问请求统计,判断网站是否有大量单IP请求发生,如果有则说明网站很有可能遭受了CC攻击。 登录管理控制台,将您的网站成功接入 Web应用防火墙 。关于域名接入的具体操作请参见添加防护域名。 在目标域名所在行的“防护策略”栏中,单击“已开启N项防护”,进入“防护策略”页面,确认“CC攻击防护”的“状态”为“开启”。 图1 CC防护规则配置框 开启WAF的“CC攻击防护”后,添加CC防护规则,配置对域名下的请求进行基于IP限速的检测,针对业务特性,设置限速频率,并配置人机验证,防止误拦截正常用户,针对网站所有url进行防护,配置如图2所示。 图2 IP限速 限速模式:选择“源限速”、“IP限速”,根据IP区分单个Web访问者。 限速频率:单个Web访问者在限速周期内可以正常访问的次数,如果超过该访问次数,Web应用防火墙服务将暂停该Web访问者的访问。 “全局计数”:根据不同的限速模式,将已经标识的请求在一个或多个WAF节点上的计数聚合。默认为每WAF节点单独计数,开启后本区域所有节点合并计数。“IP限速”不能满足针对某个用户进行限速,需要选择“用户限速”或“其他”的Referer限速,此时标识的请求可能会访问到不同的WAF节点,开启全局计数后,将请求访问的一个或多个WAF节点访问量聚合,达到全局统计的目的。 防护动作:防止误拦截正常用户,选择“人机验证”。 人机验证:表示在指定时间内访问超过次数限制后弹出验证码,进行人机验证,完成验证后,请求将不受访问限制。 当用户访问超过限制后需要输入验证码才能继续访问。
  • 我是专业的安全人员,需要做全面的Web入侵运营 针对您的需求,推荐您在完成网站接入后,为网站设置以下防护功能: Web基础防护:帮助您防范SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等常规的Web攻击,并支持深度反逃逸识别、对请求里header中所有字段进行攻击检测、Shiro解密检测、Webshell检测。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“Web基础防护”区域,选择“拦截”或者“仅记录”模式,开启所有的检测项。具体的操作请参见配置Web基础防护规则。 自定义防护策略(自由组合防护配置规则):防护配置规则的自由组合配置,为您的网站定制适合的防护策略,全方位的防护您的网站。 操作导航:在“防护策略”页面,进行相关的配置,具体的操作请参见防护配置引导。
  • 我的业务需要严格的安全防护,有攻击时宁可错杀不可漏掉 针对您的需求,推荐您在完成网站接入后,为网站设置以下防护功能: Web基础防护(拦截模式):帮助您防范SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等常规的Web攻击,并支持深度反逃逸识别、对请求里header中所有字段进行攻击检测、Shiro解密检测、Webshell检测。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“Web基础防护”区域,选择“拦截”模式,开启所有的检测项。具体的操作请参见配置Web基础防护规则。 CC攻击防护(阻断模式):通过限制单个IP/Cookie/Referer访问者对防护网站上源端的访问频率,精准识别并阻断CC攻击。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“CC攻击防护”区域,添加规则,“防护动作”配置为“阻断”。具体的操作请参见配置CC攻击防护规则。 精准访问防护(阻断模式):对HTTP首部、Cookie、访问URL、请求参数或者客户端IP进行条件组合,定制化防护策略,为您的网站带来更精准的防护。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“精准访问防护”区域,添加规则,“防护动作”配置为“阻断”。具体的操作请参见配置精准访问防护规则。 IP黑白名单设置(拦截模式):封禁与业务不相关的IP地址和地址段。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“黑白名单设置”区域,添加规则,“防护动作”配置为“拦截”。具体的操作请参见配置IP黑白名单规则。 地理位置访问控制(拦截模式):封禁来自特定区域的访问或者允许特定区域的来源IP的访问,解决部分地区高发的恶意请求问题。可针对指定国家、地区的来源IP自定义访问控制。 操作导航:在“防护策略”页面,单击策略名称,进入“防护配置”页面,选择“地理位置访问控制”区域,添加规则,“防护动作”配置为“拦截”。具体的操作请参见配置地理位置访问控制规则。
  • 我是新手,不懂安全,也没有特殊需求 您可能是基于等保要求或出于提升企业安全水位(达到预防目的)等考虑购买了Web应用防火墙。这种情况下,您可以在完成网站接入后直接使用WAF的默认基础防护设置,不做任何调整。WAF提供的默认防护能力足够为网站抵御绝大部分的基础Web威胁。 建议您多关注Web应用防火墙控制台的“安全总览”和“防护事件”页面,了解业务情况和攻击情况。具体操作可参见以下文档: 安全总览 查看防护日志
共100000条