更新时间:2024-10-11 GMT+08:00
分享

DLI委托概述

什么是委托?

各云服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给DLI服务,让DLI服务以您的身份使用其他云服务,代替您进行一些资源运维工作。

例如:在DLI新建Flink作业所需的AKSK存储在数据加密服务DEW中,如需允许DLI在执行作业时访问DEW数据,需要提供IAM委托将DEW数据操作权限委托给DLI,允许DLI服务以您的身份访问DEW服务。

图1 DLI云服务委托

DLI委托

在使用DLI前,为了确保正常使用DLI的功能,建议先进行DLI委托权限设置。

  • DLI默认提供以下类型的委托:dli_admin_agency、dli_management_agency、dli_data_clean_agency(名称固定,权限需自定义)。其他场景需用户自定义委托。委托的详细说明请参考表1
  • DLI为了满足细粒度的委托权限需求,DLI升级了系统委托,将原有的dli_admin_agency升级为dli_management_agency,新的委托包含跨源操作、消息通知、用户授权操作所需的权限。配置DLI云服务委托权限
  • 使用Flink 1.15和Spark 3.3.1(Spark通用队列场景)及以上版本的引擎执行作业时,需完成以下配置操作:
    需用户自行在IAM页面创建相关委托,并在作业配置中添加新建的委托信息。具体操作请参考创建DLI自定义委托权限
    • 常见新建委托场景:允许DLI读写OBS数据、日志转储、Flink checkopoint;允许DLI在访问DEW获取数据访问凭证、允许访问Catalog获取元数据等场景。
    • 委托名称不可与系统默认委托重复,即不可以是dli_admin_agency、dli_management_agency、dli_data_clean_agency。
  • 引擎版本低于Flink1.15,执行作业时默认使用dli_admin_agency;引擎版本低于Spark 3.3.1,执行作业时使用用户认证信息(AKSK、SecurityToken)。

    即引擎版本低于Flink1.15和Spark 3.3.1版本的作业不受更新委托权限的影响,无需自定义委托。

  • 为兼容存量的作业委托权限需求,dli_admin_agency仍为您保留在IAM委托中。
  • 服务授权需要主账号或者用户组admin中的子账号进行操作。
  • 请勿删除系统默认创建的委托。
表1 DLI委托

权限名

类型

权限说明

dli_admin_agency

系统默认委托

该委托已废弃,不推荐使用,请尽快更新委托升级至dli_management_agency。

更新委托请参考配置DLI云服务委托权限

dli_management_agency

系统默认委托

DLI系统委托,用于将操作权限委托给DLI服务,让DLI服务以您的身份使用其他云服务,代替您进行一些资源运维工作。该委托包含跨源操作、消息通知、用户授权操作所需的权限。详细委托包含的权限请参考表2

dli_data_clean_agency

系统默认委托,需用户自行授权

数据清理委托,表生命周期清理数据及lakehouse表数据清理使用。需用户自行在IAM创建名为dli_data_clean_agency的DLI云服务委托并授权。

该委托需新建后自定义权限,但委托名称固定为dli_data_clean_agency。

委托的权限策略示例请参考常见场景的委托权限策略

其他自定义委托

自定义委托

使用Flink 1.15和Spark 3.3及以上版本的引擎执行作业时,请自行在IAM页面创建相关委托,并在作业配置中添加新建的委托信息。创建DLI自定义委托权限

常见新建委托场景:允许DLI读写OBS将日志转储、允许DLI在访问DEW获取数据访问凭证、允许访问Catalog获取元数据等场景。

委托名称不可与系统默认委托重复,即不可以是dli_admin_agency、dli_management_agency、dli_data_clean_agency。

委托的权限策略示例请参考常见场景的委托权限策略

表2 dli_management_agency委托包含的权限

权限名

权限说明

IAM ReadOnlyAccess

DLI对未登录过DLI的用户进行授权时,需获取IAM用户相关信息。因此需要IAM ReadOnlyAccess权限。

DLI Datasource Connections Agency Access

访问和使用VPC、子网、路由、对等连接的权限

DLI Notification Agency Access

作业执行失败需要通过SMN发送通知消息的权限

相关文档