MaxCompute中如何通过policy 禁止角色的删除权限

需求场景:通过DataWorks简单模式项目使用MaxCompute,项目设置MaxCompute访问身份为“个人账号”,当成员子账号为开发角色时,对MaxCompute Project默认可删除所有表的权限。然而业务需求有些表非常重要,不允许开发角色进行删除同时要求杜绝误删,假设这些表名都是以tb_开头。

操作步骤:
1、在客户端创建role ,这里我创建的角色名为test,链接和命令如下:
https://help.aliyun.com/document_detail/27927.html?spm=a2c4g.11186623.6.926.51d647bcbndTpj

create role + role_name

2、通过policy 方式授权project_test项目下,禁止删除 tb_* 开头的所有表,权限赋予test角色。链接和命令如下:
https://help.aliyun.com/document_detail/162576.html?spm=a2c4g.11174283.6.936.3d36590e82MdUv

grant drop on table tb_* to role test privilegeproperties("policy" = "true", "allow"="false");

3、将test角色赋予子账号。链接和命令如下:
https://help.aliyun.com/document_detail/27935.html?spm=a2c4g.11186623.6.932.1bee77ccDP44gr

grant test to + 子账号

MaxCompute中如何通过policy 禁止角色的删除权限

4、通过dataworks设置子账号为开发角色。
(1)、登录到Dataworks首页,后点击右上方的小扳手进入工作空间配置页面。
MaxCompute中如何通过policy 禁止角色的删除权限
(2)、进入页面后点击成员管理进行子账号角色配置。
MaxCompute中如何通过policy 禁止角色的删除权限
(3)、在MaxCompute客户端执行下面的命令,将test角色权限授予子账号,格式如下:
grant test to + 子账号名
(4)、在MaxCompute客户端登录子账号,进行权限的查看,命令如下:
show grants for + 子账号名
MaxCompute中如何通过policy 禁止角色的删除权限
(5)、子账号删除tb开头表的测试如图:
MaxCompute中如何通过policy 禁止角色的删除权限

结论:通过policy可以用roles的方式进行权限控制。

参数说明:
• privilegeproperties中的{"policy" = "true"}表示当前为Policy授权。
• privilegeproperties中的{"allow"="[true|false]"}表示本次授权为白名单形式授权。黑名单形式授权为 {"deny"=" [true|false]"}。
• revoke只有allow、objectName和rolename三个参数对应时才会生效。

注意点:
1、如果不知道账号名,可以通过 whoami 命令查看
MaxCompute中如何通过policy 禁止角色的删除权限
2、添加的用户名username既可以是云账号(即在阿里云官网上注册过的有效邮箱地址),也可以是执行此命令的云账号的某个RAM子账号。

上一篇:vue将数组转换json字符串 JSON.stringify()


下一篇:玩转MaxCompute studio SQL编辑器