本文为您介绍如何使用角色SSO的方式登录DataWorks。

背景信息

通常企业用户通过常规登录方式登录阿里云,管理、使用云资源。即在阿里云控制台输入账号、密码后登录。随着企业安全监管要求的日益严格,部分企业更愿意通过角色登录(Role Base_SSO)的方式登录阿里云。详情请参见SAML角色SSO概览
说明

阿里云角色登录模式下 ,任务执行需要使用独享调度资源组,独享调度资源组使用详情,请参见:新增和使用独享调度资源组

目前仅MaxCompute计算引擎支持Role Base_SSO方式访问。

DataWorks支持的登录方式

DataWorks支持云账号登录和角色登录:
  • 通过主账号或RAM用户登录DataWorks。

    您可以通过输入账号、密码的方式登录阿里云控制台,并以当前登录账号的身份使用DataWorks。

    此时,云账号将成为DataWorks某个工作空间的成员,拥有DataWorks产品的使用权限。

  • 通过角色SSO的方式登录DataWorks。
    您也可以通过角色SSO的方式登录阿里云,并使用DataWorks。角色SSO详情请参见SAML角色SSO概览SSO

    此时,阿里云访问控制角色(RAM Role)将成为DataWorks某个工作空间的成员,扮演该RAM Role的使用者将拥有和云账号类成员同样的产品使用权限。详情请参见RAM角色概览

角色登录指南

  1. 创建待扮演角色。
    说明 本步骤如果需要RAM用户或角色完成,请为RAM用户或角色授权AliyunRAMFullAccess策略。
    为规范使用方式,建议您分别创建以下两个角色:
    • 创建作为MaxCompute访问身份的角色。
      1. 云账号管理者以常规方式(账号和密码)登录阿里云主账号,进入RAM控制台创建待扮演的角色。扮演角色
      2. 配置角色页面,输入角色名称选择信任的云账号,单击完成
      3. 身份管理 > 角色页面,单击角色名称,在信任策略管理页签修改信任策略为如下内容。
        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "dataworks.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
    • 创建作为使用者所扮演的角色。
      • 通过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角色。user
  2. 创建DataWorks工作空间。
    说明 本步骤如果需要RAM用户或角色完成,请为RAM用户或角色授权AliyunDataWorksFullAccess策略。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表,并切换至相应的地域后,单击创建工作空间
    3. 创建工作空间对话框,配置各项参数,单击下一步
      分类 参数 描述
      基本信息 工作空间名称 工作空间名称的长度需要在3~28个字符,以字母开头,且只能包含字母、下划线(_)和数字。
      显示名 显示名不能超过23个字符,只能字母、中文开头,仅包含中文、字母、下划线(_)和数字。
      模式 DataWorks的工作空间分为简单模式标准模式
      • 简单模式:指一个DataWorks工作空间对应一个引擎项目,无法设置开发和生产环境,只能进行简单的数据开发,无法对数据开发流程以及表权限进行强控制。
      • 标准模式:指一个DataWorks工作空间对应两个引擎项目,可以设置开发和生产两种环境,提升代码开发规范,并能够对表权限进行严格控制,禁止随意操作生产环境的表,保证生产表的数据安全。

      详情请参见必读:简单模式和标准模式的区别

      描述 对创建的工作空间进行简单描述。
      高级设置 能下载select结果 控制数据开发中查询的数据结果是否能够下载,如果关闭无法下载select的数据查询结果。此参数在工作空间创建完成后可以在工作空间配置页面进行修改。
    4. 选择引擎页面,选择计算引擎服务MaxCompute,单击下一步
    5. 引擎详情页面,配置各项参数。
      参数 描述
      实例显示名称 实例显示名称需要以字母开头,只能包含字母、数字和下划线(_)。
      Quota组切换 Quota用于实现计算资源和磁盘配额。
      MaxCompute数据类型 该选项设置后将在5分钟内生效,数据类型模式的详情请参见数据类型版本说明。如果您不清楚模式的选择,建议与工作空间管理员确认后再进行选择。
      MaxCompute项目名称 开发环境的默认名称为DataWorks工作空间的名称_dev,生产环境的默认名称与DataWorks工作空间名称一致。
      MaxCompute访问身份 开发环境的MaxCompute访问身份默认为任务负责人,不可以修改。

      生产环境的MaxCompute访问身份请选择阿里云RAM角色

      RAM角色选择 选择DwRole
    6. 单击创建工作空间
    创建成功后,您可以进入工作空间配置页面,查看当前工作空间的MaxCompute访问身份(即调度任务访问身份)为之前创建成功的RAM Role。Role
    说明 该MaxCompute访问身份对应的RAM角色将用于运行生产调度任务,请勿用于其它地方。仅支持独享调度资源组执行任务。
  3. 添加其它角色至DataWorks工作空间。
    说明 本步骤如果需要RAM用户或角色完成,请设置RAM用户或角色为该DataWorks工作空间的空间管理员。
    1. 数据开发页面,单击右上方的工作空间图标,进入工作空间配置页面。
    2. 在左侧导航栏,单击成员管理
    3. 成员管理页面,单击右上方的添加成员
    4. 添加成员对话框中,单击刷新,即可展示已创建的RAM角色。
    5. 在待添加账号处勾选需要添加的账号user-role,单击>,将其移动至已添加的账号中。
    6. 选中需要授予的角色,单击确定
      添加角色
  4. 可选:为使用者授权AliyunSTSAssumeRoleAccess。
    如果您即将使用RAM用户而非IDP账号来扮演RAM Role,请先为RAM用户授予AliyunSTSAssumeRoleAccess。
  5. 使用者登录DataWorks。
    本步骤为您展示使用者如何扮演user-role角色登录并使用DataWorks。
    1. 登录阿里云。
      使用者可以使用角色SSO,扮演RAM角色user-role,并登录至阿里云控制台。角色SSO详情请参见SAML角色SSO概览
    2. 进入DataWorks控制台的工作空间列表页面,单击在上一步已加入的工作空间后的进入数据开发
    3. 创建节点,详情请参见创建ODPS SQL节点。即可查看任务责任人为当前所扮演的角色user-role
      user