在MaxCompute中配置Policy策略遇到结果不一致的问题

简介: 通过policy配置权限后,在DataWorks和console上验证出现结果不一致问题

通过policy配置权限过程中遇到的一些问题

背景信息:

本文以如下场景为基准进行编写,如下:

  1. 用户通过DataWorks-简单模式使用MaxCompute;
  2. 用户具有DataWorks默认角色,如DataWorks开发者角色;
  3. 用户通过console提交policy配置精细化权限管控,

本案例以禁止某一些用户群体(role)可以删除以tb_开头的表为例来展开讨论。

解决方案:

通过policy进行deny某个role禁止删除以tb_开头的表,同时将属于这一部分的user都添加到该角色中。
具体如下:

  1. create role denydroprole;
  2. put policy t_policy.json on role `denydroprole;`
  3. grant `denydroprole to RAM$..;`

t_policy.json配置文件如下:

{
    "Version": "1",
    "Statement": [{
        "Effect": "Deny",
        "Action": "odps:Drop",
        "Resource": "acs:odps:*:projects/sz_mc/tables/tb_*"
    }]
}

查看上述配置的子账号权限:

image

针对上图的说明:

  1. [roles]该子账号同事隶属与两个角色,一个是新建的denydroprole,一个是DataWorks的开发者角色role_project_dev。
  2. [Authorization Type: Policy]其中A代表Allow,D代表Deny,当两者同事存在时,deny优先原则。

是否符合预期:

(1)在DataWorks上进行测试:

image

居然删除成功了!!!纳尼,是我们配置策略不对嘛???

(2)再在console上进行验证:

image

在MaxCompute console上测试策略生效了,删除以tb_开头的表直接被拒绝并且返回错误。

这是为什么呢??为什么呢??
其实在这一块需要注意的是,在DataWorks-工作空间配置-计算引擎信息-访问身份()配置情况。

访问身份大科普:

这个要看下我们在项目管理里面的账号设置是个人账号还是系统账号。两个最大的区别如下:
dataworks这里的角色,会有两种权限,一种是dataworks界面操作权限,一种是MaxCompute数据相关权限(建表、查询等)。

然后有两种情况:

1)如果MaxCompute访问身份为 个人账号,那么角色的“MaxCompute数据相关权限”就会生效,这个子账号用其他客户端操作MaxCompute都可以有这个project的相关权限。

2)如果MaxCompute访问身份为 系统账号,那么角色的“MaxCompute数据相关权限”就不会生效,这个子账号在dataworks上提交的MaxCompute任务因为是通过系统账号提交所以只要系统账号有权限就可以。但是子账号用非dataworks的客户端提交MaxCompute就会没权限。
详情可以参考:https://yq.aliyun.com/articles/686800

对应如下逻辑示意图:

image

那么,到这里亲们应该明白了,为什么在DataWorks中测试发现policy策略没有生效么?是因为配置的访问身份为系统账号,那么通过DataWorks提交的Query都会用系统账号来执行(project owner拥有最大权限且并没有受到该policy限制)。

image

你只需要在这里设置为【个人账号】即可满足上述需求。

获取帮助:

image

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
2月前
|
分布式计算 DataWorks 调度
maxcompute配置问题之优先级如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
32 1
|
2月前
|
存储 分布式计算 Hadoop
maxcompute配置问题之加速查询超时配置回退如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
33 1
|
2月前
|
SQL 分布式计算 DataWorks
maxcompute配置问题之配置回退的参数如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
40 2
|
2月前
|
分布式计算 安全 专有云
maxcompute配置问题之不能正常执行如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
23 1
|
2月前
|
分布式计算 大数据 数据处理
maxcompute配置问题之配置文件key参数如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
48 2
maxcompute配置问题之配置文件key参数如何解决
|
2月前
|
SQL 分布式计算 MaxCompute
maxcompute之配置报错如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
33 0
|
2月前
|
SQL 存储 分布式计算
maxcompute配置问题之配置mc内容如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
30 1
|
2月前
|
数据采集 分布式计算 监控
maxcompute配置问题之需要配置如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
23 0
|
2月前
|
SQL 分布式计算 DataWorks
maxcompute配置问题之连接oss报错如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
29 0
|
2月前
|
分布式计算 大数据 MaxCompute
maxcompute配置问题之连接超时如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
38 2

相关产品

  • 云原生大数据计算服务 MaxCompute