跨内网代理部署 TICS Agent

1 业务场景

普惠金融是行业热门课题,近几年央行政策支持中小微企业发展(特别是制造业),银行也把该方向作为业务拓展重点。但小微企业的信用评估是一个难点,小微企业一般都没有大额固定资产作授信抵押,银行也缺少高质量的数据作为评价依据,小微企业的贷款普遍存在难度大、周期长、额度低等问题。

政府拥有小微企业多维度的数据,如纳税、社保、用水用电等,信用评估价值高,受限于政府网络和数据安全管理要求,政府数据不能直接提供给银行。那么,有没有一种方式,在不共享数据的情况下,实现数据的分析应用,即数据可用不可见。

数据隐私计算技术,可用于满足该场景需求,如华为云可信智能计算服务 TICS (Trusted Intelligent Computing Service),提供跨组织数据安全共享方案,政府无须将数据提供给银行,银行基于 TICS 的安全计算环境,运行数据分析模型,获取业务所需的分析结果。

2 方案架构

以政府和银行小微企业数据共享场景为例,政府数据部署在华为云数据库服务 RDS,银行数据存储在本地数据中心的 Mysql Server,通过边缘节点 IEF Edge Node 接入。TICS 服务同时支持云、边两种数据接入方式,基于华为云边缘服务 IEF 实现 TICS Agent 的远程部署和持续更新。

TICS 可信聚合计算通过 TICS AGG 节点实现,AGG 提供基于 TEE 或 SGX 两种硬件隐私计算环境,也支持半同态加密、差分隐私等软件类的隐私计算能力,适用于联邦数据分析(基于标准 SQL)与联邦学习等业务场景。本方案架构设计参考下图:

方案技术架构

银行本地数据中心接入公网,有 3 种方式,不同方式下 IEF Agent 的接入配置要求说明如下:

  1. 无网络限制的透明代理( NAT 网关)
    透明代理的工作方式类似于 NAT 网关,银行内网服务器的数据包默认全部发送给透明代理(作为网关),透明代理再将数据包转发给外网访问地址,内网应用感知不到代理的存在,故称为透明代理。该方式边缘节点的接入配置最简单,只需完成 IEF Agent 的标准配置即可,参考链接 IEF 边缘节点注册与纳管
  2. 带网络限制的透明代理( NAT 网关)
    该方式下,银行对访问公网有网络限制,需要根据域名 / IP 地址和端口号,开通网络权限。需要放通的网络权限,参考 开通外网访问权限
  3. 带网络限制的普通代理
    和透明代理不同,普通代理是一个独立服务器,内网应用须配置代理访问地址,确保访问外网的数据包先发给代理,再由代理转发外网目的地址。

本文介绍的最佳实践配置,主要针对最复杂的第 3 种场景:带网络限制的普通代理,如 squid 上网代理(其他类型的代理配置类似)。普通代理工作在 TCP/IP 协议应用层,代理的配置在应用级别生效,而非操作系统级别,本地服务器中的不同应用程序,均须添加代理配置,这一点尤其要注意。

上图名词解释:

  • TICS Service: 华为云 可信智能计算服务 管理节点,提供数据联盟管理、用户权限配置、代理管理等功能
  • TICS AGG: TICS Aggregation Node 可信计算聚合节点,多方数据的融合计算在该节点完成
  • TICS Agent: TICS 代理,提供数据接入管理、安全隐私规则配置、数据分析和联邦学习任务运行等功能,是 TICS 服务业务操作的关键组件,每个 TICS 数据联盟的参与方可拥有 1 个或多个 TICS Agent
  • SWR: 华为云 容器镜像服务 Software Repository for Container,用于 IEF Agent 边缘容器镜像管理
  • IEF Service: 华为云 边缘计算服务 Intelligent Edge Fabric 管理节点,负责边缘节点创建、管理和边缘容器应用同步操作等
  • Edge Node: 部署 IEF Agent 的边缘节点,一般是一台硬件服务器或虚拟机
  • IEF Agent: 部署在 Edge Node 上的边缘节点管理软件,负责与云端 IEF Service 进行通信,管理本地运行的边缘容器实例如 TICS Agent,支持实例更新、状态监控、日志管理等功能
  • CCE: 华为云 云容器引擎 Cloud Container Engine,云上托管的 Kubernetes 集群,在本案例中,用于政务 TICS Agent 代理的部署
  • CCE Node: CCE 节点即 Kubernetes 节点,是云端的一台虚机或裸金属服务器
  • POD: Kubernetes 集群运行计算任务的最小单位,本案例用于部署政府侧的 TICS Agent,是 1 个或多个容器的集合,参考 POD 名词解释
  • RDS: 华为云 托管 Mysql 数据库,本案例用于存储政务共享数据
  • NAT: 网络地址转换网关 Network Address Translation,用于内外网通信转接,内网访问外网的网络流量均重定向到 NAT 网关,再转发给外网目的地址

3 前置条件

3.1 开通外网访问权限

银行本地边缘节点,访问公有云的 IEF 和 TICS 服务,须开通以下网络端口:

目的 IP 地址 访问域名 目的端口 用途
119.3.227.164 ief2-placement.cn-north-4.myhuaweicloud.com 443 边缘计算 IEF 服务端
49.4.115.239 ief2-edgeaccess.cn-north-4.myhuaweicloud.com 443 边缘计算 IEF 连接网关
119.3.215.28 ief2-telemetry.cn-north-4.myhuaweicloud.com 8065/8102/8149 边缘计算 IEF 日志与计量端口
49.4.112.92 ief2-software-north-4.obs.cn-north-4.myhuaweicloud.com 443 边缘容器镜像存储
49.4.112.18 swr.cn-north-4.myhuaweicloud.com 443 容器镜像管理服务接口
49.4.112.6 tics.cn-north-4.myhuaweicloud.com 443 TICS 服务端接口
49.4.112.113 obs.cn-north-4.myhuaweicloud.com 443 OBS 服务接口
139.9.118.165 无域名访问地址 30001~30016 TICS 聚合计算节点 AGG 端口

以上网络配置基于华为云北京四 Region,其他 Region IP 地址和域名均不同,须进行相应调整。
参考链接 获取 IEF 云端服务 IP 地址

3.2 注册华为云账号

TICS 服务同一数据联盟参与方可以进行数据共享,数据联盟每个参与方都是华为云租户,因此使用 TICS 服务必须先注册华为云账号。登录 华为云官网 即可完成账号注册。

3.3 申请 TICS 服务公测

TICS 服务目前处于受邀公测阶段,请登录华为云 TICS 服务 ,点击 “立即体验” 按钮,即可申请公测。公测申请提交后,华为云 TICS 服务管理人员将在约 1~2 天内完成审批。

3.4 加入 TICS 服务联盟

任何华为云账号均可发起创建 TICS 数据联盟,公测阶段资源有限,建议参与测试的用户优先加入现有数据联盟。用户将华为云账号提供给 TICS 服务管理员(可通过华为云销售获取联系方式),由 TICS 服务管理员将账号加入到数据联盟。华为云账号格式一般为 hwxxxxxxxx (hw 加 8 位数字),登录华为云账号中心即可查看。

TICS 服务管理员将账号添加到数据联盟后,用户将在 TICS 服务 “通知管理”模块收到加入数据联盟申请,选择同意即可加入该数据联盟。

3.5 准备华为云费用

银行采用边缘服务方式接入华为云,涉及一定的华为云费用。边缘节点部署 IEF Agent 是免费的,在 IEF Agent 运行容器实例需要收费,收费标准参考链接 IEF 服务定价。TICS Agent 部署在边缘节点上需要一个容器实例,费用为 1099 ¥/月/实例。

用户可自行充值华为云账号完成测试,也可联系华为云销售申请华为云测试券,覆盖测试所需费用。
注:完成实名认证的企业账号才能申请测试券,请登录华为云官网 账号中心>实名认证,参考 实名认证操作指南 完成认证。

3.6 准备 IEF 边缘节点

边缘节点是部署在银行本地数据中心的服务器或虚拟机,支持 X86 和鲲鹏 ARM 架构,推荐配置如下:
操作系统:CentOS 7.6
硬件配置:cpu >= 8 core,内存 >= 16G
环境依赖:docker 18.06.3 版本

IEF 边缘节点须具备外网访问权限,和云端互动时,均由边缘节点发起访问,因此边缘节点无需独立公网 IP 地址。
更多边缘节点规格要求,参考 配置边缘节点环境

4 部署 IEF Agent

在边缘节点上部署 IEF Agent,须先登录华为云 IEF 服务控制台 ,选择功能模块 边缘资源>边缘节点,点击红色按钮 “注册边缘节点”,根据提示,下载边缘节点安装程序 edge-installer_1.0.0_x86_64.tar.gz 和配置文件 ief-node.tar.gz (ief-node 是节点名称),导入到边缘节点服务器。

参考下面配置,在普通代理上网的环境下,完成 IEF Agent 部署和云端纳管。

  1. 以 sudo 权限登录边缘节点
  2. 执行如下命令解压软件包到 /opt 文件夹
    sudo tar -zxvf edge-installer_1.0.0_x86_64.tar.gz -C /opt
    
  3. 解压配置文件到 /opt/IEF/Cert
    sudo mkdir -p /opt/IEF/Cert
    sudo tar -zxvf 边缘节点名称.tar.gz -C /opt/IEF/Cert
    
  4. 配置 IEF Agent 外网访问代理
    vi /opt/IEF/Cert/user_config
    http_proxy=proxy_ip:proxy_port # proxy_ip 和 proxy_port 请修改为现网的代理 IP 地址和端口号,下同
    https_proxy=proxy_ip:proxy_port
    
  5. 安装 IEF Agent
    cd /opt/edge_installer
    sudo ./installer -op=install
    
  6. 验证边缘节点是否纳管成功
    登录华为云 IEF 服务控制台 边缘资源>边缘节点,查看新建边缘节点的运行状态,“运行中”表示纳管成功。

更多相关配置参考 IEF 边缘节点注册与纳管

5 部署 TICS Agent

TICS Agent 是部署在 边缘节点上的一个容器实例,登录华为云 TICS 服务控制台,即可发起创建 TICS Agent,华为云 IEF 服务会负责将 TICS Agent 的容器镜像(保存在 SWR 上)同步到边缘节点,完成 TICS Agent 的部署操作。

参考下面配置,完成 TICS Agent 在边缘节点上的部署:

  1. 配置 docker 外网访问代理
    从云端获取 TICS Agent的容器镜像将执行 docker pull 操作,须配置 docker 的访问代理,否则将导致镜像获取失败。
    sudo mkdir -p /etc/systemd/system/docker.service.d
    
    vi /etc/systemd/system/docker.service.d/http-proxy.conf
    
    [Service]
    Environment="HTTP_PROXY=proxy_ip:proxy_port" # proxy_ip 和 proxy_port 请修改为现网的代理 IP 地址和端口号,下同
    Environment="HTTPS_PROXY=proxy_ip:proxy_port"
    
    :wq # 保存文件
    
    # 重启 docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  2. 获取华为云账号 AK/SK
    访问密钥 AK/SK Access Key ID/Secret Access Key 包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,是华为云账号的长期身份凭证,TICS Agent 代理部署须配置 AK/SK 信息,授予代理接入权限。AK/SK 登录华为云官网 账号中心>基本信息>管理我的凭证>访问密钥,点击“新增访问密钥”,即可下载访问密钥,文件名为 credentials.csv。详细操作指南参考 访问密钥
    注:访问密钥生成后,只能下载一次,请妥善保管。
  3. 下载TICS Agent 配置
    登录华为云控制台 TICS 服务,选择 通知管理>下载代理配置,保存至本地,解压后得到 3 个文件,在下一步创建 TICS Agent 代理中会用到
    • agent.p12 - 联盟配置
    • tics_league_datacloud.json - 代理密钥
    • truststore.jks - CA 证书
  4. 创建 TICS Agent
    登录华为云控制台 TICS 服务,选择 代理管理>部署代理,在部署代理页面,依次完成以下操作:
    • 导入联盟配置 agent.p12
    • 上传文件 代理密钥 tics_league_datacloud.json
    • 上传文件 CA 证书 truststore.jks
    • 导入当前账号 AK/SK credentials.csv
    • 配置代理登录密码,该密码请注意保存,后面和代理登录账号 admin 一起用于代理管理页面的登录
    • 选择 IEF 边缘节点部署,纳管节点选择已创建好的 IEF 边缘节点
    • 主机路径配置边缘节点上数据保存路径,如 /home/tics,须确保该路径已创建且具备写权限
    • 点击 “立即创建” 按钮,完成代理创建操作
  5. 配置 TICS Agent 外网访问代理
    TICS Agent 通过 java sdk 与华为云 TICS AGG 进行通信,须配置 java 访问外网的代理配置,确保与 AGG 通信正常。
    以 sudo 权限登录边缘节点,执行以下命令:
    docker ps # 查看 docker 容器实例
    docker exec -ti xxxx /bin/bash  # xxxx 对应 tics 容器实例 id
    
    vi /etc/hosts # 配置容器实例内部 TICS 服务域名解析
    49.4.112.6 tics.cn-north-4.myhuaweicloud.com
    hostname # 获取当前主机名,后面配置将用到
    
    vi /opt/cloud/tics/tics-agent-console/bin/common.sh
    JAVA_OPTS="-Dhttps.proxyHost=proxy_ip -Dhttps.proxyPort=proxy_port -Dhttp.nonProxyHosts=当前主机名" # proxy_ip 和 proxy_port 请修改为现网的代理 IP 地址和端口号,下同
    
    :wq
    # 重启服务,使配置生效
    su service
    sh stop.sh
    sh start.sh &
    
    vi /opt/cloud/tics/tics-agent-web/bin/common.sh
    JAVA_OPTS="-Dhttps.proxyHost=proxy_ip -Dhttps.proxyPort=proxy_port -Dhttp.nonProxyHosts=当前主机名"
    :wq
    # 重启服务,使配置生效
    su service
    sh stop.sh
    sh start.sh &
    
  6. 验证 TICS Agent 是否部署成功
    登录华为云控制台 TICS 服务,选择 代理管理,点击代理名进入代理管理页面,点击代理登录地址 “前往代理Agent”,打开代理登录界面,输入步骤 4 中的代理用户名 Admin 与代理登录密码,完成代理登录。登录代理页面后,查看右上角的状态符号,显示为绿色,则表示代理通信正常,代理部署成功。
    注:边缘节点部署方式下,TICS Agent 代理登录 IP 地址为内网 IP 地址,请确保测试使用的 PC 或笔记本,与 TICS Agent 内网网络连通性。
(完)