云服务器内容精选

  • 创建 TICS 服务时依赖的CCE权限 如果您需要授予 IAM 用户基于“云租户部署”购买TI CS 服务的权限,则您需要为用户组配置系统角色CCE Administrator和OBS Administrator。 创建用户组tics_cce_min。 图1 创建用户组 为用户组授权。 单击用户组后的“授权”后进入选择策略界面,选择系统角色CCE Administrator和OBS Administrator完成授权。 选择CCE Administrator和OBS Administrator系统角色后,系统会自动勾选其依赖的其他系统角色,因此实际中授权更多的系统角色。 图2 授权 将所需授权的用户加入用户组tics_cce_min,即可为用户授予相关权限。 创建cce类型的计算节点之后,假如需要缩小权限,可自行把子用户从tics_cce_min用户组中删除。
  • 创建IAM用户并授予TICS权限 创建用户组并授权。使用华为账号登录IAM控制台,创建用户组,并授予TICS的普通用户操作权限,如“TICS CommonOperations”。 创建用户组并授权的具体操作,请参见创建用户组并授权。 配置用户组的TICS权限时,注意选择权限的作用范围为“区域级项目”,搜索框中输入权限名“TICS”进行搜索,然后勾选需要授予用户组的权限,如“TICS CommonOperations”。 创建用户并加入用户组。在IAM控制台创建用户,并将其加入步骤1中创建的用户组。 创建用户并加入用户组的具体操作,请参见创建用户并加入用户组。
  • 创建TICS服务时依赖的IEF权限 如果您需要授予IAM用户基于“边缘节点部署”购买TICS服务的权限,则您需要为用户组配置IEF服务的自定义策略tics-ief-iam-min和系统角色IEF Administrator。 创建自定义策略tics-ief-iam-min,主要内容为创建IEF所需的iam权限。 图3 创建自定义策略 策略内容如下: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "iam:agencies:listAgencies", "iam:permissions:listRolesForAgency", "iam:roles:getRole" ] } ]} 图4 策略内容 创建用户组tics_ief_min。 图5 创建用户组 为用户组授权。 单击用户组后的“授权”后进入选择策略界面,选择自定义策略tics-ief-iam-min和IEF Administrator系统角色完成授权。 图6 授权 将所需授权的用户加入用户组tics_ief_min,即可为用户授予相关权限。
  • 注册账号并实名认证 账号是您访问华为云的责任主体,有关账号的详细介绍请参见账号中心。此处介绍如何注册一个华为账号。若您已有华为账号,可以略过此部分内容。 打开华为云网站www.huaweicloud.com。 单击页面右上角的“注册”按钮。 在注册页面,根据页面提示完成账号注册。 为了能够给您提供更好的云服务使用体验,建议您优先完成实名认证。实名认证分为个人账号和企业账号认证,不同账号类型认证的方法请参考以下链接。若您的账号已通过实名认证,可以略过此部分内容。 个人账号如何完成实名认证 企业账号如何完成实名认证 实名认证信息提交后,请耐心等待审核结果,最长3个工作日内完成审核。 实名认证通过后需要40分钟才能生效。 父主题: 准备工作
  • 查看空间详情 空间发起人登录TICS控制台。 进入TICS控制台后,单击页面左侧“空间管理”,进入空间管理页面。 在“空间管理”页打开“我参与的空间”页签,单击“空间名称”进入详情页。 查看空间统计信息 在详情页下方单击“空间概览”页签查看空间统计信息,该统计信息不是实时的,当前只显示统计到前一天的数据。 图1 空间统计信息 查看空间的合作方列表 在详情页下方单击“合作方管理”页签查看空间的合作方列表。 图2 合作方列表 查看空间的合作方数据 在详情页下方单击“合作方数据”页签查看注册到空间的合作方数据列表。 图3 合作方数据 查看 可信计算 环境 在详情页下方单击“可信计算环境”页签查看注册到空间的可信节点列表。 图4 可信计算环境
  • 修改空间配置 支持用户在空间详情页修改“空间描述信息”、“隐私保护等级”开关、“结果差分隐私”开关。其中“作业联合审批”开关、“隐私保护等级”开关、“结果差分隐私”开关只有空间创建者可以修改。 隐私保护等级:高级别时,默认启用高安全性的隐私计算的算法保障计算过程的安全,例如秘密分享加密、PSI等,但可能会影响性能以及部分作业正常执行。低级别时,使用国际标准的对称和非对称加密结合方式,在安全沙箱内进行解密计算。性能和灵活度较高。 结果差分隐私:开启时,使用差分隐私算法对多方安全计算作业的执行结果添加隐私保护,避免历史差分攻击。使用该功能会在计算节点发布数据集时将数据集信息的取值范围、频度进行统计,并同步到TICS中心节点。若需要已发布数据集支持差分隐私功能,需要通知所有合作方重新发布数据集。 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“空间管理”,进入空间管理页面。 在“空间管理”页打开“我创建的空间”页签,单击“空间名称”进入详情页,查看详情并修改空间配置。 图5 修改描述信息
  • 查看空间操作记录 TICS提供透明的空间操作记录。空间的创建、部署、删除、升级回滚操作都会被详细记录。 在详情中,操作进程以可视化的方式展示,清晰展示空间的部署、升级、回滚、删除步骤,在出现问题时便于分析排查。 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“空间管理”,进入空间管理页面。 单击页面右上角的“操作记录”按钮,查看操作记录。 图8 入口 单击“查看详情”,可查看空间操作的具体信息。 图9 查看详情 操作详情以可视化的形式展示,使操作进程更直观、更清晰。 图10 可视化页面
  • 准备本地横向联邦数据资源 上传数据集文件(作业参与方) 上传数据集文件到计算节点挂载路径下,供计算节点执行的脚本读取。如果是主机挂载,上传到宿主机的挂载路径下。如果是OBS挂载,使用华为云提供的 对象存储服务 ,上传到当前计算节点使用的对象桶中。 图5 对象桶名称 此处以主机挂载为例: 创建一个主机挂载的计算节点Agent1,挂载路径为/tmp/tics1/。 使用文件上传工具上传包含数据集iris1.csv的dataset文件夹到宿主机/tmp/tics1/目录下。 iris1.csv内容如下: sepal_length,sepal_width,petal_length,petal_width,class5.1,3.5,1.4,0.3,Iris-setosa5.7,3.8,1.7,0.3,Iris-setosa5.1,3.8,1.5,0.3,Iris-setosa5.4,3.4,1.7,0.2,Iris-setosa5.1,3.7,1.5,0.4,Iris-setosa4.6,3.6,1,0.2,Iris-setosa5.1,3.3,1.7,0.5,Iris-setosa4.8,3.4,1.9,0.2,Iris-setosa5,3,1.6,0.2,Iris-setosa5,3.4,1.6,0.4,Iris-setosa5.2,3.5,1.5,0.2,Iris-setosa5.2,3.4,1.4,0.2,Iris-setosa4.7,3.2,1.6,0.2,Iris-setosa4.8,3.1,1.6,0.2,Iris-setosa5.4,3.4,1.5,0.4,Iris-setosa5.2,4.1,1.5,0.1,Iris-setosa5.5,4.2,1.4,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa5,3.2,1.2,0.2,Iris-setosa5.5,3.5,1.3,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa4.4,3,1.3,0.2,Iris-setosa5.1,3.4,1.5,0.2,Iris-setosa5,3.5,1.3,0.3,Iris-setosa4.5,2.3,1.3,0.3,Iris-setosa4.4,3.2,1.3,0.2,Iris-setosa5,3.5,1.6,0.6,Iris-setosa5.1,3.8,1.9,0.4,Iris-setosa4.8,3,1.4,0.3,Iris-setosa5.1,3.8,1.6,0.2,Iris-setosa4.6,3.2,1.4,0.2,Iris-setosa5.3,3.7,1.5,0.2,Iris-setosa5,3.3,1.4,0.2,Iris-setosa6.8,2.8,4.8,1.4,Iris-versicolor6.7,3,5,1.7,Iris-versicolor6,2.9,4.5,1.5,Iris-versicolor5.7,2.6,3.5,1,Iris-versicolor5.5,2.4,3.8,1.1,Iris-versicolor5.5,2.4,3.7,1,Iris-versicolor5.8,2.7,3.9,1.2,Iris-versicolor6,2.7,5.1,1.6,Iris-versicolor5.4,3,4.5,1.5,Iris-versicolor6,3.4,4.5,1.6,Iris-versicolor6.7,3.1,4.7,1.5,Iris-versicolor6.3,2.3,4.4,1.3,Iris-versicolor5.6,3,4.1,1.3,Iris-versicolor5.5,2.5,4,1.3,Iris-versicolor5.5,2.6,4.4,1.2,Iris-versicolor6.1,3,4.6,1.4,Iris-versicolor5.8,2.6,4,1.2,Iris-versicolor5,2.3,3.3,1,Iris-versicolor5.6,2.7,4.2,1.3,Iris-versicolor5.7,3,4.2,1.2,Iris-versicolor5.7,2.9,4.2,1.3,Iris-versicolor6.2,2.9,4.3,1.3,Iris-versicolor5.1,2.5,3,1.1,Iris-versicolor5.7,2.8,4.1,1.3,Iris-versicolor6.3,3.3,6,2.5,Iris-virginica5.8,2.7,5.1,1.9,Iris-virginica7.1,3,5.9,2.1,Iris-virginica6.3,2.9,5.6,1.8,Iris-virginica6.5,3,5.8,2.2,Iris-virginica7.6,3,6.6,2.1,Iris-virginica4.9,2.5,4.5,1.7,Iris-virginica7.3,2.9,6.3,1.8,Iris-virginica6.7,2.5,5.8,1.8,Iris-virginica7.2,3.6,6.1,2.5,Iris-virginica6.5,3.2,5.1,2,Iris-virginica6.4,2.7,5.3,1.9,Iris-virginica6.8,3,5.5,2.1,Iris-virginica5.7,2.5,5,2,Iris-virginica5.8,2.8,5.1,2.4,Iris-virginica6.4,3.2,5.3,2.3,Iris-virginica6.5,3,5.5,1.8,Iris-virginica7.7,3.8,6.7,2.2,Iris-virginica7.7,2.6,6.9,2.3,Iris-virginica6,2.2,5,1.5,Iris-virginica6.9,3.2,5.7,2.3,Iris-virginica5.6,2.8,4.9,2,Iris-virginica7.7,2.8,6.7,2,Iris-virginica6.3,2.7,4.9,1.8,Iris-virginica6.7,3.3,5.7,2.1,Iris-virginica7.2,3.2,6,1.8,Iris-virginica 为了使容器内的计算节点程序有权限能够读取到文件,使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组为1000:1000。 在第二台主机上创建计算节点Agent2,挂载路径为/tmp/tics2/。上传包含数据集iris2.csv的dataset文件夹到宿主机目录下,修改属主。 iris2.csv的内容如下: sepal_length,sepal_width,petal_length,petal_width,class5.1,3.5,1.4,0.2,Iris-setosa4.9,3,1.4,0.2,Iris-setosa4.7,3.2,1.3,0.2,Iris-setosa4.6,3.1,1.5,0.2,Iris-setosa5,3.6,1.4,0.2,Iris-setosa5.4,3.9,1.7,0.4,Iris-setosa4.6,3.4,1.4,0.3,Iris-setosa5,3.4,1.5,0.2,Iris-setosa4.4,2.9,1.4,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa5.4,3.7,1.5,0.2,Iris-setosa4.8,3.4,1.6,0.2,Iris-setosa4.8,3,1.4,0.1,Iris-setosa4.3,3,1.1,0.1,Iris-setosa5.8,4,1.2,0.2,Iris-setosa5.7,4.4,1.5,0.4,Iris-setosa5.4,3.9,1.3,0.4,Iris-setosa7,3.2,4.7,1.4,Iris-versicolor6.4,3.2,4.5,1.5,Iris-versicolor6.9,3.1,4.9,1.5,Iris-versicolor5.5,2.3,4,1.3,Iris-versicolor6.5,2.8,4.6,1.5,Iris-versicolor5.7,2.8,4.5,1.3,Iris-versicolor6.3,3.3,4.7,1.6,Iris-versicolor4.9,2.4,3.3,1,Iris-versicolor6.6,2.9,4.6,1.3,Iris-versicolor5.2,2.7,3.9,1.4,Iris-versicolor5,2,3.5,1,Iris-versicolor5.9,3,4.2,1.5,Iris-versicolor6,2.2,4,1,Iris-versicolor6.1,2.9,4.7,1.4,Iris-versicolor5.6,2.9,3.6,1.3,Iris-versicolor6.7,3.1,4.4,1.4,Iris-versicolor5.6,3,4.5,1.5,Iris-versicolor5.8,2.7,4.1,1,Iris-versicolor6.2,2.2,4.5,1.5,Iris-versicolor5.6,2.5,3.9,1.1,Iris-versicolor5.9,3.2,4.8,1.8,Iris-versicolor6.1,2.8,4,1.3,Iris-versicolor6.3,2.5,4.9,1.5,Iris-versicolor6.1,2.8,4.7,1.2,Iris-versicolor6.4,2.9,4.3,1.3,Iris-versicolor6.6,3,4.4,1.4,Iris-versicolor6.8,2.8,4.8,1.4,Iris-versicolor6.2,2.8,4.8,1.8,Iris-virginica6.1,3,4.9,1.8,Iris-virginica6.4,2.8,5.6,2.1,Iris-virginica7.2,3,5.8,1.6,Iris-virginica7.4,2.8,6.1,1.9,Iris-virginica7.9,3.8,6.4,2,Iris-virginica6.4,2.8,5.6,2.2,Iris-virginica6.3,2.8,5.1,1.5,Iris-virginica6.1,2.6,5.6,1.4,Iris-virginica7.7,3,6.1,2.3,Iris-virginica6.3,3.4,5.6,2.4,Iris-virginica6.4,3.1,5.5,1.8,Iris-virginica6,3,4.8,1.8,Iris-virginica6.9,3.1,5.4,2.1,Iris-virginica6.7,3.1,5.6,2.4,Iris-virginica6.9,3.1,5.1,2.3,Iris-virginica5.8,2.7,5.1,1.9,Iris-virginica6.8,3.2,5.9,2.3,Iris-virginica6.7,3.3,5.7,2.5,Iris-virginica6.7,3,5.2,2.3,Iris-virginica6.3,2.5,5,1.9,Iris-virginica6.5,3,5.2,2,Iris-virginica6.2,3.4,5.4,2.3,Iris-virginica5.9,3,5.1,1.8,Iris-virginica 准备模型文件/初始权重(作业发起方) 作业发起方需要提供模型、初始权重(非必须),上传到Agent1的挂载目录下并使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组。 使用python代码创建模型文件,保存为二进制文件model.h5,以鸢尾花为例,生成如下的模型: import tensorflow as tfimport keras model = keras.Sequential([ keras.layers.Dense(4, activation=tf.nn.relu, input_shape=(4,)), keras.layers.Dense(6, activation=tf.nn.relu), keras.layers.Dense(3, activation='softmax')]) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])model.save("d:/model.h5") 初始权重的格式是浮点数的数组,与模型对应。使用联邦学习训练出来的结果result_1可以作为初始权重,样例如下: -0.23300957679748535,0.7804553508758545,0.0064492723904550076,0.5866460800170898,0.676144003868103,-0.7883696556091309,0.5472091436386108,-0.20961782336235046,0.58524489402771,-0.5079598426818848,-0.47474920749664307,-0.3519996106624603,-0.10822880268096924,-0.5457949042320251,-0.28117161989212036,-0.7369481325149536,-0.04728877171874046,0.003856887575238943,0.051739662885665894,0.033792052417993546,-0.31878742575645447,0.7511205673217773,0.3158722519874573,-0.7290999293327332,0.7187696695327759,0.09846954792737961,-0.06735057383775711,0.7165604829788208,-0.730293869972229,0.4473201036453247,-0.27151209115982056,-0.6971480846405029,0.7360773086547852,0.819558322429657,0.4984433054924011,0.05300116539001465,-0.6597640514373779,0.7849202156066895,0.6896201372146606,0.11731931567192078,-0.5380218029022217,0.18895208835601807,-0.18693888187408447,0.357051283121109,0.05440644919872284,0.042556408792734146,-0.04341210797429085,0.0,-0.04367709159851074,-0.031455427408218384,0.24731603264808655,-0.062861368060112,-0.4265706539154053,0.32981523871421814,-0.021271884441375732,0.15228557586669922,0.1818728893995285,0.4162319302558899,-0.22432318329811096,0.7156463861465454,-0.13709741830825806,0.7237883806228638,-0.5489991903305054,0.47034209966659546,-0.04692812263965607,0.7690137028694153,0.40263476967811584,-0.4405142068862915,0.016018997877836227,-0.04845477640628815,0.037553105503320694 编写训练脚本(作业发起方) 作业发起方还需要编写联邦学习训练脚本,其中需要用户自行实现读取数据、训练模型、评估模型、获取评估指标的逻辑。计算节点会将数据集配置文件中的path属性作为参数传递给训练脚本。 JobParam属性如下: class JobParam: """训练脚本参数 """ # 作业id job_id = '' # 当前轮数 round = 0 # 迭代次数 epoch = 0 # 模型文件路径 model_file = '' # 数据集路径 dataset_path = '' # 是否仅做评估 eval_only = False # 权重文件 weights_file = '' # 输出路径 output = '' # 其他参数json字符串 param = '' 鸢尾花的训练脚本iris_train.py样例如下: # -*- coding: utf-8 -*-import getoptimport sysimport kerasimport horizontal.horizontallearning as hldef train(): # 解析命令行输入 jobParam = JobParam() jobParam.parse_from_command_line() job_type = 'evaluation' if jobParam.eval_only else 'training' print(f"Starting round {jobParam.round} {job_type}") # 加载模型,设置初始权重参数 model = keras.models.load_model(jobParam.model_file) hl.set_model_weights(model, jobParam.weights_file) # 加载数据、训练、评估 -- 用户自己实现 print(f"Load data {jobParam.dataset_path}") train_x, test_x, train_y, test_y, class_dict = load_data(jobParam.dataset_path) if not jobParam.eval_only: b_size = 1 model.fit(train_x, train_y, batch_size=b_size, epochs=jobParam.epoch, shuffle=True, verbose=1) print(f"Training job [{jobParam.job_id}] finished") eval = model.evaluate(test_x, test_y, verbose=0) print("Evaluation on test data: loss = %0.6f accuracy = %0.2f%% \n" % (eval[0], eval[1] * 100)) # 结果以json格式保存 -- 用户读取评估指标 result = {} result['loss'] = eval[0] result['accuracy'] = eval[1] # 生成结果文件 hl.save_train_result(jobParam, model, result)# 读取CSV数据集,并拆分为训练集和测试集# 该函数的传入参数为CSV_FILE_PATH: csv文件路径def load_data(CSV_FILE_PATH): import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelBinarizer # 读取目录数据集,读取目录下所有CSV文件 if os.path.isdir(CSV_FILE_PATH): print(f'read file folder [{CSV_FILE_PATH}]') all_csv_path = glob.glob(os.path.join(CSV_FILE_PATH, '*.csv')) all_csv_path.sort() csv_list = [] for csv_path in all_csv_path: csv_list.append(pd.read_csv(csv_path)) IRIS = pd.concat(csv_list) # 读取CSV文件 else: IRIS = pd.read_csv(CSV_FILE_PATH) target_var = 'class' # 目标变量 # 数据集的特征 features = list(IRIS.columns) features.remove(target_var) # 目标变量的类别 Class = IRIS[target_var].unique() # 目标变量的类别字典 Class_dict = dict(zip(Class, range(len(Class)))) # 增加一列target, 将目标变量进行编码 IRIS['target'] = IRIS[target_var].apply(lambda x: Class_dict[x]) # 对目标变量进行0-1编码(One-hot Encoding) lb = LabelBinarizer() lb.fit(list(Class_dict.values())) transformed_labels = lb.transform(IRIS['target']) y_bin_labels = [] # 对多分类进行0-1编码的变量 for i in range(transformed_labels.shape[1]): y_bin_labels.append('y' + str(i)) IRIS['y' + str(i)] = transformed_labels[:, i] # 将数据集分为训练集和测试集 train_x, test_x, train_y, test_y = train_test_split(IRIS[features], IRIS[y_bin_labels], train_size=0.7, test_size=0.3, random_state=0) return train_x, test_x, train_y, test_y, Class_dictclass JobParam: """训练脚本参数 """ # required parameters job_id = '' round = 0 epoch = 0 model_file = '' dataset_path = '' eval_only = False # optional parameters weights_file = '' output = '' param = '' def parse_from_command_line(self): """从命令行中解析作业参数 """ opts, args = getopt.getopt(sys.argv[1:], 'hn:w:', ['round=', 'epoch=', 'model_file=', 'eval_only', 'dataset_path=', 'weights_file=', 'output=', 'param=', 'job_id=']) for key, value in opts: if key in ['--round']: self.round = int(value) if key in ['--epoch']: self.epoch = int(value) if key in ['--model_file']: self.model_file = value if key in ['--eval_only']: self.eval_only = True if key in ['--dataset_path']: self.dataset_path = value if key in ['--weights_file']: self.weights_file = value if key in ['--output']: self.output = value if key in ['--param']: self.param = value if key in ['--job_id']: self.job_id = valueif __name__ == '__main__': train()
  • 管理实例 实例管理是 可信智能计算服务 提供的一项查看计算节点作业实例的功能。通过实例管理,用户可以查看到该计算节点所有作业的执行实例,并查看作业的状态、计算过程、执行结果。 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“计算节点管理”,进入计算节点管理页面。 在“计算节点管理”页面,查找需要发布数据的计算节点名称,单击“计算节点名称”进入计算节点详情页。 图1 选择计算节点 在“计算节点详情”页,单击“前往计算节点”,在登录页正确输入部署计算节点时设置的“登录用户名”和“密码”。 图2 前往计算节点 进入计算节点管理界面后,选择左侧“实例管理”。 实例管理页面上方展示了计算节点资源使用概况,分别为当前节点的多方安全计算和可信联邦学习的CPU资源当前使用量,并每分钟刷新一次。下方列表默认优先展示失败状态的实例,可通过列表调整按照执行时间排序,并支持以下筛选条件: 实例ID:全匹配或前N位模糊匹配 作业ID:全匹配 作业名称:模糊匹配 实例类型、执行状态:列表筛选 图3 实例管理页面 在实例列表中,单击操作栏的“编辑”,可在弹出页面修改对应作业;单击操作栏的“查看结果”或者“作业报告”,可在弹出的页面查看执行结果和作业报告; 在实例列表中,查找待查看计算过程的作业,单击实例ID展开,在操作栏单击“计算过程”。 图4 在计算节点侧查看作业计算过程 计算过程页面可以单击任务节点,查看开始和结束时间等信息。在计算过程页面下方详情列表打开任务详情,可以查看更详细的计算过程信息。 图5 作业计算过程信息详情(截图为多方安全计算作业示例,请以实际作业为准) 父主题: 计算节点管理
  • 使用TICS的用户角色 根据人员的职能进行划分,使用TICS的用户主要可以分为以下两类。 组织方 面向熟悉业务并具有管理、决策、审核权限的管理人员。组织方具有TICS的所有权限,包括创建空间、邀请空间成员、删除空间等权限。例如,在创建空间模块中,组织方可以对合作方人员发布的数据进行审核,把好质量关。 合作方 合作方使用数据源计算节点模块实现自主可控的数据源注册、隐私策略(脱敏、加密、水印)的设定、元数据的发布等,为数据源计算节点提供全生命周期的可靠性监控、运维管理。
  • CCE服务委托授权 由于CCE在运行中对计算、存储、网络以及监控等各类云服务资源都存在依赖关系,因此当您首次登录CCE控制台时,CCE将自动请求获取当前区域下的云资源权限,从而更好地为您提供服务。 CCE的服务授权为全局配置,只要您所使用的账号在当前Region曾经进行过服务授权,则无需重新配置,可以跳过本节操作。 图1 服务授权 当您同意授权后,CCE将在IAM中创建名为“cce_admin_trust”委托,统一使用系统账户“op_svc_cce”对您的其他云服务资源进行操作,cce_admin_trust委托具有Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对CCE所依赖的其他云服务资源进行调用,且该授权仅在当前区域生效。关于资源委托详情,您可参考委托进行了解。
  • 启用 区块链 审计服务(可选) 若您希望空间启用区块链服务( BCS )来审计任务信息,请仔细阅读本章节。 空间发起方需要根据基于CCE集群创建联盟链完成联盟链的创建过程。 “区块链类型”参数值需要选择“联盟链”,否则将影响后续操作。 发起方按照组建联盟链中“邀请成员”部分的描述,邀请参与方加入联盟链。 参与方登录区块链服务(BCS)按照组建联盟链中“同意/拒绝邀请”部分的描述,创建BCS实例并加入联盟链。 发起方、参与方各自根据合约仓库章节中下载模板的描述,下载“数据上链存证和查询合约模板(又称链代码)”并保存到本地。 发起方、参与方各自按照链代码管理章节中“安装链代码”部分的描述,上传步骤4中已保存至本地的链代码压缩包。 注意事项: “链代码名称”参数值须为“ticsrule”。 “链代码版本”须为“1.0”。 勾选需要背书的组织及Peer节点。 链代码背书的组织名称必须选择organization。 发起方按照链代码管理章节中“实例化链代码”部分的描述,完成实例化链代码操作。 注意事项: “初始化函数”参数值须为“init”。 “背书策略”勾选“任意组织背书” 完成上述步骤后用户可前往区块浏览器查看上链的初始化日志信息。 父主题: 准备工作
  • 邀请成员 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“空间管理”,进入空间管理页面。 在空间管理页面,打开“我创建的空间”页签,查找需要邀请合作方的空间并单击“邀请合作方”。 图1 邀请合作方操作入口 在弹出的界面配置待邀请的合作方的“租户名称”和“租户别名”,保存后单击“确定”,完成邀请合作方操作。 “租户名称”是指合作方的华为账号,如何获取请参考合作方如何获取租户名称。 “租户别名”是合作方在TICS中的别名,由用户自定义即可,设置该参数的目的是保护合作方的信息安全。 图2 添加合作方
  • 下载计算节点配置信息 下载计算节点配置信息,下载的信息可在部署计算节点的时候导入。“空间信息”代表“部署计算节点”属于哪个空间,用户输入的数据就会在哪个空间中参与计算。 配置包含空间证书,用于计算节点之间通信双向认证。证书保证了空间下的用户,部署的计算节点能够数据交互,参与计算。同时,也隔离了不同空间之间的数据访问。 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“通知管理”,进入通知管理页面。 浏览通知信息,单击“下载计算节点配置”,得到agentConfig.zip文件,解压到本地。内容如下: json文件:对应空间配置,包含“空间区域”、“空间名称”、“空间ID”、“证书密码”等。 p12文件:计算节点的密钥文件。 jks文件:CA的“证书”,密钥和证书保证了空间下的用户,部署的计算节点能够数据交互,参与计算。同时,也隔离了不同空间之间的数据访问。 图6 下载计算节点配置
  • 验证安全沙箱防护能力 接下来模拟篡改文件的恶意行为,来验证安全沙箱防护能力。 发起方获取某个横向联邦训练作业的训练结果路径。 图1 获取作业结果路径 发起方执行恶意脚本,试图篡改所获取的路径中的作业训练结果。 图2 执行恶意脚本 发起方执行恶意脚本后,由于安全沙箱确保每个横向联邦作业都是隔离的,当某个作业想去访问或篡改其他作业相关的文件时,无法找到作业执行结果文件,因此脚本执行失败、无法篡改,从而实现安全防护。 图3 恶意脚本执行结果