自定义RAM Policy策略

DataWorks支持您通过自定义RAM Policy策略并授权给指定RAM用户的方式,实现精细化权限管理。使得RAM用户仅拥有该权限策略所定义的权限。本文为您介绍产品及控制台权限控制能力与自定义权限策略的常见应用示例。

前提条件

注意事项

以下内容仅为自定义策略,您需要在创建RAM权限策略后将该策略授权给指定RAM用户(子账号),该RAM用户才能拥有您指定的权限。RAM用户授权详情请参见为RAM用户授权

产品级管控权限策略

策略一:禁止RAM用户执行所有操作

管理员可授权禁止RAM用户执行所有操作的RAM Policy给某用户,授权后该用户将无法使用DataWorks的所有功能。例如,操作管理控制台、使用DataWorks各模块界面功能、调用OpenAPI。

授权脚本如下。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "dataworks:*",
            "Resource": "*"
        }
    ]
}

策略二:禁止RAM用户调用OpenAPI

管理员可授权禁止RAM用户调用OpenAPI的RAM Policy给某用户,授权后该用户将无法调用DataWorks的OpenAPI。

授权脚本如下。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "dataworks:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "dataworks:Scope": "OpenAPI"
        }
      }
    }
  ]
}

策略三:禁止RAM用户进入DataWorks各模块界面

管理员可授权禁止RAM用户进入DataWorks各模块界面的RAM Policy给某用户,授权后该用户将无法进入DataWorks产品内各模块界面。

说明

该策略仅禁止RAM用户访问模块界面,若该用户拥有相关模块的API调用权限,则可继续正常调用。

授权脚本如下。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "dataworks:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dataworks:Scope": "Page"
                }
            }
        }
    ]
}

控制台实体对象级权限管控策略

当前针对DataWorks控制台各细节操作的权限管控,DataWorks细分出以下的自定义策略。

说明

Resource说明:

  • 实际自定义策略时,您需要将下表中Resource中占位符$表示的内容替换为真实ID值。例如,$regionid需要替换为真实的地域ID值、$accountid需要替换为阿里云主账号的UID。

  • *为通配符,实际使用时您可以替换为具体的参数值,用来做进一步权限管控范围的细化。例如,将workspace/*替换为workspace/workspaceid则表明权限策略生效的范围为指定的这个工作空间内。

对象1:工作空间

工作空间

Action

Resource

Action说明

CreateWorkspace

acs:dataworks:$regionid:$accountid:workspace/*

创建工作空间

ModifyWorkspace

acs:dataworks:$regionid:$accountid:workspace/$workspaceName

修改工作空间

DeleteWorkspace

acs:dataworks:$regionid:$accountid:workspace/$workspaceName

删除工作空间

DisableWorkspace

acs:dataworks:$regionid:$accountid:workspace/$workspaceName

禁用工作空间

EnableWorkspace

acs:dataworks:$regionid:$accountid:workspace/$workspaceName

启用工作空间

应用示例:自定义角色,授予角色修改工作空间权限

脚本编辑的权限策略代码如下。

{
    "Statement": [
        {
            "Action": "dataworks:ModifyWorkspace",
            "Effect": "Allow",
            "Resource": "acs:dataworks:$regionid:$accountid:workspace/$workspaceName"
        }
    ],
    "Version": "1"
}

对象2:资源组

资源组

Action

Resource

Action说明

注意事项

ListResourceGroup

acs:dataworks:$regionid:$accountid:exclusive_resource_group/*

展示独享资源组页签。如果没有此授权,则在控制台中看不到独享资源组的页签。

ListResourceGroup和ShowResourceGroupDetail通常组合应用于控制用户查看独享资源组页签的权限。

  • 仅有ListResourceGroup权限时:用户可看到独享资源组页签,单页签中没有内容,为空白页面。

  • 同时有ListResourceGroup、ShowResourceGroupDetail:用户可看到独享资源组页签,且页签中展示ShowResourceGroupDetail指定的资源组详情。

说明
  • 授权ShowResourceGroupDetail前必须先授权ListResourceGroup,仅有ShowResourceGroupDetail权限时无法查看独享资源组详情。

  • RAM策略AliyunDataWorksReadOnlyAccess已包含ListResourceGroup和ShowResourceGroupDetail的权限。

ShowResourceGroupDetail

acs:dataworks:$regionid:$accountid:exclusive_resource_group/$resourceGroupName

根据资源组名称展示资源组详情。

CreateResourceGroup

acs:dataworks:$regionid:$accountid:exclusive_resource_group/*

创建独享资源组。

非购买独享资源组,此处为授权用户可根据已购买的订单在DataWorks的控制台上创建资源组。资源组的购买、扩容、缩容、续费、规格变更等资源购买相关操作需要有AliyunDataWorksFullAccess和AliyunBSSOrderAccess权限。

ModifyResourceGroup

acs:dataworks:$regionid:$accountid:exclusive_resource_group/$resourceGroupName

修改独享资源组。

-

  • 应用示例1:自定义角色,授予角色查看并管理某个独享资源组的权限

    脚本编辑的权限策略代码如下。

    {
    "Statement": [
    {
    "Action": "dataworks:ListResourceGroup",
    "Effect": "Allow",
    "Resource": "acs:dataworks:*:1111:exclusive_resource_group/*"
    },
    {
    "Action": "dataworks:ShowResourceGroupDetail",
    "Effect": "Allow",
    "Resource": "acs:dataworks:*:11111:exclusive_resource_group/resourceGroupName2"
    },
    {
    "Action": "dataworks:ModifyResourceGroup",
    "Effect": "Allow",
    "Resource": "acs:dataworks:*:111:exclusive_resource_group/resourceGroupName2"
    }
    ],
    "Version": "1"
    }
  • 应用示例2:自定义角色,授予角色查看所有上海地域资源组、创建及修改独享资源组的权限

    说明

    创建独享资源组权限指选择订单来新建资源组,而非购买独享资源的权限。

    脚本编辑的权限策略代码如下。

    {
      "Statement": [
        {
          "Action": "dataworks:ListResourceGroup",
          "Effect": "Allow",
          "Resource": "acs:dataworks:*:$accountid:exclusive_resource_group/*"
        },
        {
          "Action": "dataworks:ShowResourceGroupDetail",
          "Effect": "Allow",
          "Resource": "acs:dataworks:cn-shanghai:$accountid:exclusive_resource_group/*"
        },
        {
          "Action": "dataworks:CreateResourceGroup",
          "Effect": "Allow",
          "Resource": "acs:dataworks:cn-shanghai:$accountid:exclusive_resource_group/*"
        },
        {
          "Action": "dataworks:ModifyResourceGroup",
          "Effect": "Allow",
          "Resource": "acs:dataworks:cn-shanghai:$accountid:exclusive_resource_group/resourceGroupName1"
        },
        {
          "Action": "dataworks:ModifyResourceGroup",
          "Effect": "Allow",
          "Resource": "acs:dataworks:cn-shanghai:$accountid:exclusive_resource_group/resourceGroupName2"
        }
      ],
      "Version": "1"
    }

对象3:报警信息

报警信息

Action

Resource

Action说明

ListContacts

acs:dataworks:$regionid:$accountid:contacts_ram_user/*

查看联系人

ModifyContacts

acs:dataworks:$regionid:$accountid:contacts_ram_user/*

修改联系人信息

ListAlarmResource

acs:dataworks:$regionid:$accountid:alarm_resource/*

查看报警资源

SetUpperLimits

acs:dataworks:$regionid:$accountid:alarm_resource/*

设置报警数量上限

应用示例:自定义角色,授予角色查看报警资源、设置报警数量上线、查看联系人权限、修改联系人信息

脚本编辑的权限策略代码如下。

{
  "Statement": [
    {
      "Action": "dataworks:ListAlarmResource",
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Action": "dataworks:SetUpperLimits",
      "Effect": "Allow",
      "Resource": "acs:dataworks:$regionid:$accountid:alarm_resource/*"
    },
    {
      "Action": "dataworks:ListContacts",
      "Effect": "Allow",
      "Resource": "acs:dataworks:$regionid:$accountid:contacts_ram_user/*"
    },
    {
      "Action": "dataworks:ModifyContacts",
      "Effect": "Allow",
      "Resource": "acs:dataworks:$regionid:$accountid:contacts_ram_user/*"
    }
  ],
  "Version": "1"
}