本文为您介绍如何使用角色SSO的方式登录DataWorks。
背景信息
说明
阿里云角色登录模式下 ,任务执行需要使用独享调度资源组,独享调度资源组使用详情,请参见:新增和使用独享调度资源组。
目前仅MaxCompute计算引擎支持Role Base_SSO方式访问。
DataWorks支持的登录方式
DataWorks支持云账号登录和角色登录:
- 通过主账号或RAM用户登录DataWorks。
您可以通过输入账号、密码的方式登录阿里云控制台,并以当前登录账号的身份使用DataWorks。
此时,云账号将成为DataWorks某个工作空间的成员,拥有DataWorks产品的使用权限。
- 通过角色SSO的方式登录DataWorks。
您也可以通过角色SSO的方式登录阿里云,并使用DataWorks。角色SSO详情请参见SAML角色SSO概览。
此时,阿里云访问控制角色(RAM Role)将成为DataWorks某个工作空间的成员,扮演该RAM Role的使用者将拥有和云账号类成员同样的产品使用权限。详情请参见RAM角色概览。
角色登录指南
- 创建待扮演角色。说明 本步骤如果需要RAM用户或角色完成,请为RAM用户或角色授权AliyunRAMFullAccess策略。为规范使用方式,建议您分别创建以下两个角色:
- 创建作为MaxCompute访问身份的角色。
- 云账号管理者以常规方式(账号和密码)登录阿里云主账号,进入RAM控制台创建待扮演的角色。
- 如果需要通过阿里云控制台切换身份方式扮演该角色,选择阿里云账号类型的角色。详情请参见创建可信实体为阿里云账号的RAM角色。
- 如果需要通过本地IDP身份提供商账号登录至阿里云扮演该角色,选择身份提供商类型的角色。详情请参见创建可信实体为身份提供商的RAM角色。
- 在配置角色页面,输入角色名称并选择信任的云账号,单击完成。
- 在身份管理 > 角色页面,单击角色名称,在信任策略管理页签修改信任策略为如下内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
- 云账号管理者以常规方式(账号和密码)登录阿里云主账号,进入RAM控制台创建待扮演的角色。
- 创建作为使用者所扮演的角色。
- 通过RAM用户来扮演的角色。
如果需要通过RAM用户来扮演RAM角色,请进入身份管理 > 角色,单击创建角色,选择可信实体类型为阿里云账号,创建一个新的角色,并设置该角色的信任策略为以下内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::UID:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
说明 请替换上述策略中的UID为阿里云主账号的UID。 - 通过IDP身份提供商账号来扮演的角色。
如果需要通过IDP身份提供商账号来扮演RAM角色,请进入身份管理 > 角色,单击创建角色,选择可信实体类型为身份提供商,创建一个新的角色,并设置该角色的信任策略为以下内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "saml:recipient": "https://signin.aliyun.com/saml-role/sso" } }, "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::UID:saml-provider/IDP" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
说明 请替换上述策略中的UID为阿里云主账号的UID,替换IDP为您选择的身份提供商的名称。
假设目前已创建一个通过RAM用户来扮演的角色,即user-role角色。 - 通过RAM用户来扮演的角色。
- 创建作为MaxCompute访问身份的角色。
- 创建DataWorks工作空间。说明 本步骤如果需要RAM用户或角色完成,请为RAM用户或角色授权AliyunDataWorksFullAccess策略。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表,并切换至相应的地域后,单击创建工作空间。
- 在创建工作空间对话框,配置各项参数,单击下一步。
分类 参数 描述 基本信息 工作空间名称 工作空间名称的长度需要在3~28个字符,以字母开头,且只能包含字母、下划线(_)和数字。 显示名 显示名不能超过23个字符,只能字母、中文开头,仅包含中文、字母、下划线(_)和数字。 模式 DataWorks的工作空间分为简单模式和标准模式: - 简单模式:指一个DataWorks工作空间对应一个引擎项目,无法设置开发和生产环境,只能进行简单的数据开发,无法对数据开发流程以及表权限进行强控制。
- 标准模式:指一个DataWorks工作空间对应两个引擎项目,可以设置开发和生产两种环境,提升代码开发规范,并能够对表权限进行严格控制,禁止随意操作生产环境的表,保证生产表的数据安全。
详情请参见必读:简单模式和标准模式的区别。
描述 对创建的工作空间进行简单描述。 高级设置 能下载select结果 控制数据开发中查询的数据结果是否能够下载,如果关闭无法下载select的数据查询结果。此参数在工作空间创建完成后可以在工作空间配置页面进行修改。 - 在选择引擎页面,选择计算引擎服务为MaxCompute,单击下一步。
- 在引擎详情页面,配置各项参数。
参数 描述 实例显示名称 实例显示名称需要以字母开头,只能包含字母、数字和下划线(_)。 Quota组切换 Quota用于实现计算资源和磁盘配额。 MaxCompute数据类型 该选项设置后将在5分钟内生效,数据类型模式的详情请参见数据类型版本说明。如果您不清楚模式的选择,建议与工作空间管理员确认后再进行选择。 MaxCompute项目名称 开发环境的默认名称为DataWorks工作空间的名称_dev,生产环境的默认名称与DataWorks工作空间名称一致。 MaxCompute访问身份 开发环境的MaxCompute访问身份默认为任务负责人,不可以修改。 生产环境的MaxCompute访问身份请选择阿里云RAM角色。
RAM角色选择 选择DwRole。 - 单击创建工作空间。
创建成功后,您可以进入工作空间配置页面,查看当前工作空间的MaxCompute访问身份(即调度任务访问身份)为之前创建成功的RAM Role。说明 该MaxCompute访问身份对应的RAM角色将用于运行生产调度任务,请勿用于其它地方。仅支持独享调度资源组执行任务。 - 添加其它角色至DataWorks工作空间。说明 本步骤如果需要RAM用户或角色完成,请设置RAM用户或角色为该DataWorks工作空间的空间管理员。
- 在数据开发页面,单击右上方的
图标,进入工作空间配置页面。
- 在左侧导航栏,单击成员管理。
- 在成员管理页面,单击右上方的添加成员。
- 在添加成员对话框中,单击刷新,即可展示已创建的RAM角色。
- 在待添加账号处勾选需要添加的账号user-role,单击>,将其移动至已添加的账号中。
- 选中需要授予的角色,单击确定。
- 在数据开发页面,单击右上方的
- 可选:为使用者授权AliyunSTSAssumeRoleAccess。如果您即将使用RAM用户而非IDP账号来扮演RAM Role,请先为RAM用户授予AliyunSTSAssumeRoleAccess。
- 使用者登录DataWorks。本步骤为您展示使用者如何扮演user-role角色登录并使用DataWorks。
- 登录阿里云。使用者可以使用角色SSO,扮演RAM角色user-role,并登录至阿里云控制台。角色SSO详情请参见SAML角色SSO概览。
- 进入DataWorks控制台的工作空间列表页面,单击在上一步已加入的工作空间后的进入数据开发。
- 创建节点,详情请参见创建ODPS SQL节点。即可查看任务责任人为当前所扮演的角色user-role。
- 登录阿里云。