华为云交换数据空间EDS对接使用完全指南:从入门到实战
1. 交换数据空间EDS概述
交换数据空间(Exchange Data Space,简称EDS)是华为云面向数据要素流通场景推出的一项云服务,旨在为企业在数据交换过程中提供安全保护技术能力。EDS的核心价值在于让数据提供方和消费方在数据交换过程中,能够按照预先制定的策略约束来使用数据,同时通过日志审计能力让整个交换过程透明可追溯。
从产品架构来看,EDS主要包含以下几个核心模块:数据市场提供数据搜索、合约协商和订阅功能;认证中心基于规范标准对数据交换各方进行身份和资质认证;清算中心对数据交换过程进行全流程日志记录和审计追溯;使用控制中心是EDS的核心,负责对每次交换的数据制定使用策略;数据连接器则提供数据集成、计算和消费能力,是数据流通的实际执行单元。
EDS共支持三种不同类型的空间:内部数据空间适用于组织内部不同部门间的数据交换,只允许创建者及其子用户加入;上下游数据空间适用于上下游组织之间的数据交换,创建者与加入该空间的其他租户之间可以进行数据交换,但加入的其他租户之间不能直接交换;开放数据空间适用于同一行业不同组织之间的数据交换,不限制人员加入和交换。购买开放数据空间前需要向华为云提交邮件申请,由运营人员审核通过后方可购买。
在角色体系方面,EDS定义了三种核心角色:空间管理员是购买交换数据空间后自动成为的管理员,可对整个空间及空间内所有连接器进行管理;连接器管理员是申请开通连接器并通过审批的用户,负责连接器内部的管理;连接器用户则是加入连接器的普通用户,默认拥有数据消费者角色,连接器管理员可以根据需要授予不同权限。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
2. 开始使用EDS服务前的准备工作
在使用华为云交换数据空间EDS服务之前,需要完成以下准备工作。
2.1 企业实名认证
使用EDS服务前,必须先完成华为账号的企业实名认证。这是因为EDS涉及企业间的数据交换,需要对参与方的身份进行严格核实。企业实名认证需要提供企业营业执照等相关资质文件,通过华为云控制台的账号中心即可提交认证申请。认证通过后,账号才能获得购买交换数据空间实例的资格。
2.2 购买交换数据空间实例
完成企业实名认证后,即可购买交换数据空间实例。操作路径为:登录交换数据空间官网,单击管理控制台进入控制台界面,在服务列表中选择交换数据空间,单击开通交换数据空间实例。EDS目前提供基础版和专业版两种空间实例规格,用户可以根据实际业务需求选择合适的版本。购买时需要注意选择对应的区域,目前EDS支持华北-北京四等区域。
2.3 加入交换数据空间
除了自行购买空间实例外,用户也可以选择加入其他租户创建的空间实例。加入其他空间实例后,用户没有空间实例的管理权限,需要由空间创建者申请新的连接器给予加入者使用。这种模式适用于上下游企业之间由核心企业统一搭建数据交换平台的场景。
3. 连接器的开通与配置
连接器是EDS中执行数据交换的基本单元,每个连接器都包含数据存储、传输和使用控制等完整模块。用户需要通过连接器进行数据的上传和交换。
3.1 申请开通连接器
在交换数据空间实例创建并初始化完成后,需要申请开通连接器。操作步骤如下:
- 进入交换数据空间控制台界面,单击我的空间
- 在交换数据空间实例中,选择需要开通连接器的实例
- 单击实例卡片上的连接器,进入连接器管理界面
- 单击申请新的连接器,弹出申请开通连接器窗口
- 填写连接器相关信息后提交申请
- 等待空间管理员审批通过后,连接器创建成功
连接器开通后,连接器管理员可以在连接器的用户管理处添加用户,也可以允许用户主动申请加入连接器。连接器管理员可以根据不同职责为用户授予不同权限,被授予权限的用户可在该连接器中进行对应权限的操作。
3.2 连接器管理功能
连接器管理提供了丰富的管理功能,包括应用管理、数据源管理、策略模板、业务权限、连接器分组、用户管理、角色管理以及申请待办等。其中,数据源管理支持以文件导入和JDBC接入的方式将数据集、Excel文件、图片和PDF等不同格式的文件集中管理。应用管理支持新增应用和查询应用模板列表等操作。对于不再使用的连接器,管理员可以在连接器管理界面执行禁用或注销操作。
4. 数据资源的上传与管理
数据资源的上传是进行数据交换的第一步。EDS通过数据目录模块提供了对数据资源文件的一系列操作方式。
4.1 新增资源
数据提供方需要先将数据资源添加到EDS数据目录下。具体操作路径为:进入连接器控制台界面,选择左侧导航栏中的数据目录,选择我的数据下的本地接入或团队数据,然后上传资源文件。EDS支持的数据格式包括数据集、Excel文件、图片、PDF等多种类型。
4.2 资源分类管理
EDS的数据目录提供了个人数据和团队数据两种管理维度。个人数据即用户自己上传的资源,仅本人可见和管理。团队数据则需要先创建团队,团队成员可以共同管理和使用团队内的数据资源。团队创建完成后,团队管理员可以在团队数据中上传资源,并控制团队成员的访问权限。
5. 数据交换的两种模式
EDS支持两种主要的数据交换模式:点对点交换和通过数据市场交换。
5.1 点对点交换
点对点交换是数据提供方将资源直接发送给指定数据消费方的一种消费方式。点对点交换分为两种情况:直接创建合约并添加数据,用户会收到带数据的合约;或者在已有合约的情况下,重复多次发送数据而无需新建合约配置控制策略。
创建合约的具体步骤为:
- 登录交换数据空间官网
- 单击管理控制台,进入交换数据空间控制台界面
- 单击我的空间,在交换数据空间实例中选择实例
- 单击实例卡片上的连接器,选择连接器后单击前往
- 进入连接器控制台界面,选择数据目录
- 个人数据创建合约:选择我的数据下的本地接入,勾选资源后点击创建合约
- 团队数据创建合约:选择团队数据,找到对应团队卡片,点击本地接入后勾选资源再创建合约
创建合约时需要设置合约名称、数据消费方、合约描述等信息。合约名称需遵循命名规范:长度2-50位,包含英文字母、数字、下划线、中文及连接符,以中文或英文开头。数据消费方可以选择单个连接器或连接器分组。如果是在团队数据中创建合约,还可以选择是否需要协同成员共同完成数据添加。
5.2 通过数据市场交换
数据市场是EDS提供的公开数据发现和订阅平台。数据提供方将资源上架为Offer后,数据消费方可以在数据市场中搜索、发现并订阅所需的数据。
上架Offer的流程为:将资源文件上架到公开的数据市场中,供同一空间实例下的其他用户进行了解和订阅。上架时需要设置数据的使用控制策略,包括查看策略、处理策略、下载策略等。
订阅Offer的流程为:数据消费方在数据市场中搜索所需Offer,进行订阅以获取数据资源。订阅时,消费方可以在数据上架时提供的使用控制策略基础上申请新的策略。公开Offer直接订阅成功,受控Offer则需要等待数据提供方审批。数据提供方审批人审批通过后,消费方即可接收和使用数据资源。
6. 数据使用控制策略详解
数据使用控制策略是EDS保障数据安全合规的核心机制。EDS提供了多种控制策略,让数据提供方能够精细化管理数据的使用方式。
6.1 控制策略类型
EDS支持以下主要控制策略类型:
- 数据查看控制策略:控制消费方查看数据的操作,可通过可用次数和可用应用等附加策略进行进一步限制
- 数据处理控制策略:控制消费方处理数据的操作,如在线对数据进行统计分析,同样支持可用次数和可用应用限制
- 数据下载控制策略:控制消费方下载数据的操作,可限制下载次数和允许下载的应用
- 数据终止控制策略:允许数据提供方因各种因素提前终止合约
- 数据审批控制策略:控制消费方产生的衍生物需要提供方审批的操作
- 指定用户控制策略:指定允许接收数据的消费方用户,其他用户无法接收
- 指定时间控制策略:指定数据可使用的时段,超出时段数据将无法使用
6.2 策略模板
EDS支持策略模板功能,连接器管理员可以在策略模板中配置默认策略。创建合约时,系统会优先加载策略模板中配置的默认策略,否则展示系统默认策略。策略模板可以显著提升合约创建的效率,尤其适用于有标准化数据使用要求的业务场景。
7. EDS API对接与代码示例
EDS提供了RESTful风格的API,支持通过HTTPS请求进行调用。API覆盖了offer管理、订阅管理、合约管理、应用管理、资产管理、审计日志、实例管理、连接器管理、团队管理和用户管理等十大类接口。
7.1 API调用基础
调用EDS API前需要先获取以下关键信息:
- project_id:项目ID,可通过华为云控制台获取
- instance_id:交换数据空间实例ID
- connector_id:连接器ID
- X-Auth-Token:用户Token,通过调用IAM服务获取用户Token接口获取
EDS API的通用URI格式为:https://{endpoint}/v1/{project_id}/eds/instances/{instance_id}/connectors/{connector_id}/{resource_path}
7.2 获取用户Token(Python示例)
import requests
import json
def get_iam_token(iam_endpoint, account_name, password, domain_name):
url = f\"{iam_endpoint}/v3/auth/tokens\"
headers = {\"Content-Type\": \"application/json;charset=utf8\"}
payload = {
\"auth\": {
\"identity\": {
\"methods\": [\"password\"],
\"password\": {
\"user\": {
\"name\": account_name,
\"password\": password,
\"domain\": {\"name\": domain_name}
}
}
},
\"scope\": {\"domain\": {\"name\": domain_name}}
}
}
response = requests.post(url, headers=headers, json=payload)
return response.headers.get(\"X-Subject-Token\")
# 使用示例
token = get_iam_token(
iam_endpoint=\"https://iam.cn-north-4.myhuaweicloud.com\",
account_name=\"your_account_name\",
password=\"your_password\",
domain_name=\"your_domain_name\"
)
print(f\"Token: {token}\")7.3 查询合约列表(Python示例)
import requests
import json
def list_contracts(endpoint, project_id, instance_id, connector_id, token):
url = (f\"{endpoint}/v1/{project_id}/eds/instances/{instance_id}/connectors/{connector_id}/contracts\")
headers = {
\"X-Auth-Token\": token,
\"Content-Type\": \"application/json\"
}
response = requests.get(url, headers=headers)
return response.json()
# 使用示例
contracts = list_contracts(
endpoint=\"https://eds.cn-north-4.myhuaweicloud.com\",
project_id=\"your_project_id\",
instance_id=\"your_instance_id\",
connector_id=\"your_connector_id\",
token=token
)
print(json.dumps(contracts, indent=2, ensure_ascii=False))7.4 订阅Offer(Python示例)
def subscribe_offer(endpoint, project_id, instance_id, connector_id, token, asset_id, subscription_reason):
url = (f\"{endpoint}/v1/{project_id}/eds/instances/{instance_id}/connectors/{connector_id}/subscriptions\")
headers = {
\"X-Auth-Token\": token,
\"Content-Type\": \"application/json\"
}
payload = {
\"asset_id\": asset_id,
\"subscription_reason\": subscription_reason
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
# 使用示例
result = subscribe_offer(
endpoint=\"https://eds.cn-north-4.myhuaweicloud.com\",
project_id=\"your_project_id\",
instance_id=\"your_instance_id\",
connector_id=\"your_connector_id\",
token=token,
asset_id=\"83xxxxxxxxxxxx\", # 替换为实际的资产ID
subscription_reason=\"业务需要该数据集进行研发分析\"
)
print(json.dumps(result, indent=2, ensure_ascii=False))7.5 审批订阅请求(Python示例)
def approve_subscription(endpoint, project_id, instance_id, connector_id, token, subscription_id, approval_result):
url = (f\"{endpoint}/v1/{project_id}/eds/instances/{instance_id}/connectors/{connector_id}/subscriptions/{subscription_id}/approve\")
headers = {
\"X-Auth-Token\": token,
\"Content-Type\": \"application/json\"
}
payload = {\"result\": approval_result} # approved 或 rejected
response = requests.post(url, headers=headers, json=payload)
return response.json()
# 使用示例
result = approve_subscription(
endpoint=\"https://eds.cn-north-4.myhuaweicloud.com\",
project_id=\"your_project_id\",
instance_id=\"your_instance_id\",
connector_id=\"your_connector_id\",
token=token,
subscription_id=\"sub_xxxxxxxxxxxx\",
approval_result=\"approved\"
)
print(json.dumps(result, indent=2, ensure_ascii=False))7.6 Java SDK调用示例
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.http.HttpConfig;
import com.huaweicloud.sdk.core.ClientBuilder;
import com.huaweicloud.sdk.eds.v1.EdsClient;
import com.huaweicloud.sdk.eds.v1.model.*;
public class EdsApiExample {
public static void main(String[] args) {
// 认证信息配置
ICredential credential = new BasicCredentials()
.withAk(\"your_access_key\")
.withSk(\"your_secret_key\")
.withProjectId(\"your_project_id\");
// 创建EDS客户端
EdsClient client = new EdsClient()
.withCredential(credential)
.withRegion(\"cn-north-4\");
// 查询合约列表
ListContractsRequest request = new ListContractsRequest();
request.setInstanceId(\"your_instance_id\");
request.setConnectorId(\"your_connector_id\");
try {
ListContractsResponse response = client.listContracts(request);
System.out.println(response.toString());
} catch (Exception e) {
System.err.println(\"调用API失败: \" + e.getMessage());
}
}
}8. 日志审计与安全追溯
EDS提供了完善的日志审计能力,帮助用户了解数据在交换流转中的操作使用过程。EDS从数据、合约、用户三个维度提供查证追溯,让用户明确数据资产的流向和使用规范。
日志审计覆盖以下关键维度:记录本连接器资源的操作记录,明确资源流向;对数据交换过程中的关键操作进行记录和检索;通过日志对交换过程进行审计追溯。同时,EDS还展示了空间实例中操作TOP5用户看板和被操作TOP5数据看板,帮助管理员快速掌握数据交换的整体态势。
清算中心作为EDS的审计核心模块,对数据交换过程的操作记录日志,实现全流程可信、可视的日志审计追溯服务。这不仅支持提供方进行查证追溯,也能让消费方免证清白,同时为第三方监管提供相应的审计信息。
9. 最佳实践场景
EDS在多个行业场景中有着广泛的应用价值。
9.1 医疗数据共享场景
以医疗行业为例,某医疗集团与某慢病院交换风湿病患者医疗数据。医疗集团作为数据提供方,将患者医疗数据上传到连接器并上架Offer,设置严格的数据使用策略(如仅限特定科室查看、数据不可下载、使用期限等)。慢病院作为数据消费方,在数据市场中订阅该Offer,经过审批后即可在策略约束下使用数据进行临床研究。这种模式既保障了患者数据的隐私安全,又促进了医疗科研的协同发展。
9.2 产业链协同场景
在产业链协同方面,EDS构建了鲲鹏和昇腾两个生态数据交换空间,为15个上下游企业开通数据连接器,月均交换研发、供应、服务等领域数据3000+。这些数据支撑了质量追溯、产品开发协同等业务场景的可控数据交换。EDS方案实现了数据交换过程的安全保护机制,增强了生态之间的互信,数据合规使用充分发挥了数据价值,提升了企业内外部业务协同的效率。
9.3 内网数据源对接
很多企业将关键数据源建设在内网,如数据库、文件服务器等。由于EDS运行在云上,需要创建EDS与第三方内网数据源的连接。通过配置数据源连接(支持JDBC等方式),可以更加安全、可靠地交换和管理内网数据资源。
10. 常见问题与最佳实践建议
10.1 空间类型选择建议
选择空间类型时,建议根据数据交换的范围和管控要求进行决策。如果仅在企业内部部门间交换数据,选择内部数据空间即可;如果需要与固定的上下游合作伙伴交换数据,选择上下游数据空间;如果需要在行业内广泛共享数据,则申请开放数据空间。
10.2 连接器规划建议
建议每个独立的业务单元或组织申请独立的连接器。连接器管理员应按照最小权限原则为用户分配角色和权限,默认加入连接器的用户仅拥有数据消费者角色。对于需要上传数据或管理连接器的用户,由连接器管理员单独授予对应权限。
10.3 使用控制策略设计建议
设计使用控制策略时,建议遵循数据分级分类的原则。对于高敏感数据,应同时启用查看控制、下载控制和指定时间控制等多重策略;对于低敏感数据,可以适当放宽策略以提升数据流通效率。策略模板可以帮助标准化策略配置,建议提前规划好策略模板库。
10.4 成本优化建议
EDS的计费主要涉及空间实例费用和连接器费用。建议根据实际业务需求选择合适的实例规格,避免过度采购。对于长期不使用的连接器,应及时禁用或注销以释放资源。同时,合理规划数据交换的频率和数据量,避免不必要的资源消耗。
11. 总结
华为云交换数据空间EDS为企业提供了一个安全、可控、高效的数据交换平台。通过本文的系统讲解,读者应该已经掌握了从企业实名认证、空间实例购买、连接器开通、资源上传、Offer上架与订阅到合约创建与数据交换的完整流程。EDS丰富的数据使用控制策略和日志审计能力,让数据提供方能够真正掌控自己的数据资产,让数据消费方能够在合规的前提下充分挖掘数据价值。无论是医疗数据共享、产业链协同还是内网数据源对接,EDS都能够提供专业的数据交换解决方案。
问答环节
问1:使用华为云EDS服务需要满足什么前提条件?
答:使用EDS服务前,必须先完成华为账号的企业实名认证。此外,还需要根据实际需求购买交换数据空间实例,或者加入其他租户创建的空间实例。
问2:EDS支持哪几种数据交换模式?
答:EDS支持两种主要的数据交换模式。点对点交换是数据提供方直接将资源发送给指定的数据消费方;通过数据市场交换是数据提供方将资源上架为Offer,数据消费方在市场中搜索并订阅。
问3:EDS的数据使用控制策略有哪些类型?
答:EDS支持数据查看控制策略、数据处理控制策略、数据下载控制策略、数据终止控制策略、数据审批控制策略、指定用户控制策略和指定时间控制策略等多种类型。
问4:如何通过API调用EDS服务?
答:调用EDS API需要先获取project_id、instance_id、connector_id和X-Auth-Token。EDS提供了RESTful风格的API,支持通过HTTPS请求进行调用。本文提供了Python和Java的代码示例,涵盖获取Token、查询合约列表、订阅Offer等核心接口。
问5:EDS如何保障数据交换的安全性?
答:EDS从多个维度保障数据安全。在使用控制层面,通过数据使用策略对数据的查看、处理、下载等操作进行精细管控。在审计层面,提供全流程的日志记录和追溯能力。在身份认证层面,与华为云IAM对接进行租户认证。
问6:EDS适用于哪些业务场景?
答:EDS适用于多种数据交换场景,包括医疗行业的数据共享与科研协同、产业链上下游的研发协同与质量追溯、企业内部部门间的数据整合与决策分析等。EDS特别适用于需要在数据交换过程中保障数据主权和安全合规的场景。




