DataAgent 配置用户自定义OSS存储

更新时间:
复制为 MD 格式

DataAgent 支持用户配置自定义的阿里云对象存储(OSS)Bucket,用于存储本地上传文件、会话历史文件和结果报告文件。通过自定义OSS配置,您可以实现数据的自主管理、长期存储和灵活访问。

使用场景

  • 数据分析文件管理:将本地上传的CSV、Excel等数据文件统一存储在指定的OSS Bucket中,方便后续追溯和复用。

  • 会话历史持久化:保存完整的会话回放历史,便于回顾分析过程或与团队成员分享。

  • 分析结果报告归档:将DataAgent生成的分析报告、可视化图表等结果产物长期保存,并可通过OSS下载链接分享。

  • 工作空间级数据隔离:为不同工作空间配置独立的OSS Bucket,实现项目间的数据隔离。

配置优先级

DataAgentOSS配置遵循以下优先级规则:

工作空间OSS配置 > 全局OSS配置 > 内置OSS配置

  • 如果工作空间级别配置了OSS,将优先使用该配置。

  • 如果工作空间未配置,则回退到全局OSS配置。

  • 如果全局也未配置,则使用系统内置的默认OSS存储。

前提条件

  • 已开启全局或工作空间的OSS配置开关。

  • 已勾选需要保存的内容类型(本地上传文件、会话历史文件、结果报告文件)。

  • 已选择与您业务同地域的标准存储类型OSS Bucket。

  • 已配置必要的RAM权限(详见下文)。

RAM权限配置

配置OSS存储需要您的账号具有以下DMS相关RAM权限:

配置级别

所需RAM权限

全局OSS配置

dms:UpsertDataAgentGlobalCustomUserConfig

工作空间OSS配置

dms:UpsertDataAgentCustomUserConfig

说明

系统策略AliyunDMSDataAgentFullAccess默认包含dms:UpsertDataAgentCustomUserConfig权限。dms:UpsertDataAgentGlobalCustomUserConfig权限需要由主账号Owner或管理员创建自定义权限策略进行配置。

自定义用户角色配置

为使DataAgent能够访问您的OSS Bucket,需要创建一个自定义RAM角色并授予最小权限策略。

步骤一:创建自定义权限策略

  1. 登录RAM权限策略控制台

  2. 单击创建权限策略

  3. 选择脚本编辑模式。

  4. 根据您需要存储的内容类型,参考下方「OSS Bucket权限最小集」粘贴对应的策略示例内容。

  5. 输入策略名称CustomPolicyForAliyunDataAgentAccessOss

  6. 单击确定完成创建。

步骤二:创建自定义角色

  1. 登录RAM角色控制台

  2. 单击创建角色,选择云服务类型的信任主体。

  3. 信任主体名称中选择数据管理/DMSEnterprise,单击确定

  4. 在弹出的对话框内,输入角色名称CustomRoleForAliyunDataAgentAccessOss,单击确定

    说明

    CustomRoleForAliyunDataAgentAccessOss为角色名称,与上一步中的策略名称不同。

  5. 完成角色创建后,回到角色列表页面,单击该角色名,在详情页中单击新增授权

  6. 搜索并选择上一步创建的CustomPolicyForAliyunDataAgentAccessOss策略。

  7. 单击确认新增授权完成授权。

OSS Bucket权限最小集

DataAgent支持三种类型的文件存储,每种类型依赖不同的OSS权限。您可以根据实际需求选择配置。

本地上传文件

说明

当前仅支持全局配置,暂不支持工作空间级别设置。

RAM权限

说明

oss:GetObject

读取文件数据、获取OSS下载链接

oss:PutObject

上传文件数据

oss:DeleteObject

删除文件数据(可选)

会话历史文件

支持全局配置和工作空间级别配置。

RAM权限

说明

oss:GetObject

读取会话回放历史数据、生成下载链接

oss:PutObject

上传会话回放历史数据

oss:ListObjects

列出会话历史文件(此权限的资源需要配置为Bucket级别

结果报告文件

支持全局配置和工作空间级别配置。

RAM权限

说明

oss:GetObject

获取结果产物文件下载链接

oss:PutObject

上传结果产物文件

完整配置示例

以下是涵盖所有三种存储类型的完整权限策略示例(以杭州区域为例):

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ListObjects"
      ],
      "Resource": "acs:oss:oss-cn-hangzhou:${your-aliyun-parent-uid}:${your-oss-bucket-name}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "oss:GetObject",
        "oss:PutObject",
        "oss:DeleteObject"
      ],
      "Resource": "acs:oss:oss-cn-hangzhou:${your-aliyun-parent-uid}:${your-oss-bucket-name}/*"
    }
  ]
}
重要
  • 请将${your-aliyun-parent-uid}替换为您的阿里云主账号UID。

  • 请将${your-oss-bucket-name}替换为您的OSS Bucket名称。

  • oss:ListObjects权限的资源必须是Bucket级别(不带/*后缀),而其他权限的资源需要是对象级别(带/*后缀)。

跨域配置

DataAgent前端页面通过直传方式上传文件回放会话历史时需要配置跨域规则。请在OSS控制台的Bucket跨域设置中添加以下来源:

http://*.console.aliyun.com
https://*.console.aliyun.com
http://*.dms.aliyun.com
https://*.dms.aliyun.com
http://*.dms.alibabacloud.com
https://*.dms.alibabacloud.com
说明

如果您通过自建页面集成DataAgent OpenAPI,需要将您的域名也添加到跨域来源中。

常见问题

Q:如何确定应该选择哪个区域的OSS Bucket?

A:建议选择与您的DataAgent服务所在地域相同的区域,以获得最佳的访问性能和最低的网络成本。

Q:可以为不同的工作空间配置不同的OSS Bucket吗?

A:可以。工作空间级别的OSS配置是独立的,您可以为每个工作空间指定不同的Bucket。当工作空间未配置时,会自动回退到全局配置。

Q:跨域配置是否会影响OSS Bucket安全性?

A:不会。跨域配置仅允许指定的域名通过浏览器访问您的Bucket,不影响其他访问控制策略(如RAM权限、Bucket Policy等)。建议您同时配置Referer白名单和签名URL以增强安全性。

Q:为什么oss:ListObjects的资源需要是Bucket级别?

A:oss:ListObjects是用于列举Bucket中对象的操作,其权限粒度天然为Bucket级别,因此资源ARN中不需要包含/*后缀。这是OSS RAM权限的标准写法。

Q:可以只配置其中一种存储类型吗?

A:可以。您可以根据实际需求只开启需要的存储类型,并仅配置对应的最小权限集。