DataWorks自定义权限策略参考

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍DataWorks使用自定义权限策略的场景和策略示例。

什么是自定义权限策略

在基于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权限时无法查看独享资源组详情。

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"
}

授权信息参考

使用自定义权限策略,您需要了解业务的权限管控需求,并了解DataWorks的授权信息。详细内容请参见授权信息