(进阶)RAM角色登录并使用DataWorks

在DataWorks中,您可使用某RAM用户扮演指定RAM角色,并通过该角色登录DataWorks进行相关开发操作。本文为您介绍如何使用角色SSO(Role Base_SSO)的方式登录并使用DataWorks。

背景信息

DataWorks支持使用如下方式登录:

  • 使用云账号登录

    您可通过主账号或RAM用户登录并使用DataWorks。该方式通过输入账号、密码的方式登录阿里云控制台,并以当前登录账号的身份使用DataWorks。该云账号将成为DataWorks某个工作空间的成员,拥有DataWorks产品的使用权限。

  • 使用角色登录

    随着企业安全监管要求的日益严格,部分企业更愿意通过角色SSO的方式登录并使用DataWorks,此时,阿里云访问控制角色(RAM Role)将成为DataWorks某个工作空间的成员,扮演该角色的使用者将拥有类似云账号成员同样的产品使用权限。角色详情,请参见RAM角色概览SAML角色SSO概览

注意事项

  • DataWorks目前支持创建的数据源中,仅MaxComputeHologres支持使用RAM角色操作。

  • 以下授权操作如果需要RAM用户或角色完成,请为RAM用户或角色授权AliyunRAMFullAccess策略。授权详情,请参见为RAM用户授权

步骤一:新建RAM角色

  1. 登录RAM控制台

    云账号管理者以账号、密码方式,使用阿里云主账号登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 创建角色。

    角色页面,单击创建角色,按照指引创建RAM角色。

步骤二:定义RAM角色策略

身份管理 > 角色页面,单击角色名称,在信任策略页签定义RAM角色策略。内容策略大致分两部分,一部分定义该RAM角色可被阿里云账号下RAM用户或IDP身份扮演,一部分定义该RAM角色可被DataWorks服务扮演,具体策略内容如下,您可根据实际场景选择。

image

说明

请替换下述策略中的UID为阿里云主账号的UID,替换IDP为您选择的身份提供商的名称。

场景一:RAM账号扮演RAM角色

若需要通过RAM用户扮演RAM角色访问DataWorks,请修改RAM角色的信任策略,内容如下:

说明

如下策略中,允许两个实体(指定RAM用户和DataWorks服务)获取扮演角色的临时身份凭证,AssumeRole的更多信息,请参见AssumeRole - 获取扮演角色的临时身份凭证

{
    "Statement": [
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
                "RAM": [
                    "acs:ram::UID:root"
                ]
            }
        },
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "dataworks.aliyuncs.com"
                ]
            }
        }
    ],
    "Version": "1"
}

场景二:IDP身份提供商账号扮演RAM角色

若需要通过IDP身份提供商账号扮演RAM角色访问DataWorks,请修改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"
}

步骤三:授权RAM用户AliyunSTSAssumeRoleAccess策略

如果您使用RAM用户而非IDP账号来扮演RAM角色,请为RAM用户授予AliyunSTSAssumeRoleAccess策略。允许RAM用户调用STS服务,通过调用AssumeRole接口,来获取该RAM角色的STS Token,获得该临时身份凭证。策略授权,详情请参见为RAM用户授权

说明

若通过IDP身份提供商账号扮演RAM角色,无须执行此步骤。

步骤四:RAM用户通过RAM角色登录DataWorks

本步骤为您展示RAM用户如何扮演RAM角色,登录并使用DataWorks。角色SSO详情,请参见SAML角色SSO概览

  1. 使用RAM用户(子账号)登录DataWorks控制台

  2. 切换身份。

    进入DataWorks管理控制台后,将鼠标悬停至右上方个人信息处,单击切换身份,通过RAM角色登录DataWorks管理控制台。

后续步骤

创建工作空间后,您可执行如下操作:

  • 将RAM角色加入DataWorks工作空间进行数据开发

    DataWorks空间管理员可将该RAM角色添加至DataWorks工作空间进行数据开发,操作详情请参见添加空间成员并管理成员角色权限

  • 将RAM角色设置为MaxCompute生产调度身份

    创建MaxCompute数据源时,可将该RAM角色设置为MaxCompute引擎生产环境调度访问身份,一旦设置为调度访问身份后,该RAM角色请勿再用于其它地方,并且需保障所有任务均通过独享调度资源组执行。