DataWorks支持您通过自定义RAM Policy策略并授权给指定RAM用户的方式,实现精细化权限管理。使得RAM用户仅拥有该权限策略所定义的权限。本文为您介绍产品及控制台权限控制能力与自定义权限策略的常见应用示例。
前提条件
已了解RAM Policy的语法结构,详情请参见权限策略语法和结构。
已了解DataWorks产品及控制台权限管控基本情况,详情请参见产品及控制台权限控制详情:RAM Policy。
注意事项
以下内容仅为自定义策略,您需要在创建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通常组合应用于控制用户查看独享资源组页签的权限。
说明
|
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"
}