阿里云大数据实战记录9:MaxCompute RAM 用户与授权

这篇具有很好参考价值的文章主要介绍了阿里云大数据实战记录9:MaxCompute RAM 用户与授权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题来源:maxcompute 管理员无法访问敏感列?

先抛一个问题:作为 maxcompute 的管理员,拥有较高的权限,为什么访问不了设置了敏感列的数据?
这个问题是我最近遇到的一个难题之一。

一开始我以为作为 maxcompute 管理员,应该可以“畅通无阻”,却没想到,敏感列迟迟无法访问,中间做了很多功夫,读了很多官方文档,最终的结论是需要 maxcompute 项目的 owner 或超级管理员给我设置用户等级(Label)或者给我管理员权限,我自己配置。

注意,以上涉及了好些概念,我不知道我这么命名是否合理,不过在我看来是合理的。如果你已经很了解阿里云大数据服务的权限问题,那可能很轻松能理解我的意思,但如果是新手,可能会有一些疑惑。没事,待我细细说来。

首先 maxcompute 和 maxcompute 项目是两个不同的东西,切忌混为一谈!
你可以把 maxcompute 看做是一个服务器,而 maxcompute 项目是一个数据库,然后敏感表、敏感列则是库里的表和表的字段。

但作为数据库的管理员不应该是可以访问数据库里的所有数据吗?这就涉及到另外一个概念:用户等级,官方定义为 User Label。由于我的账号等级是 0 级,而敏感列等级高于 0 级,等级可以高级访问低级,但是无法逆向低级访问高级,所以访问不了。

这样子理解应该就能明白为什么作为 maxcompute 的管理员,却访问不了敏感列的数据。

Label 策略是一个比较重要的参考标准,即使在数据保护伞已经设置了白名单,还是无法访问敏感数据。

主线问题:如何提高用户等级

那么,如何提高用户等级呢?

从下面这篇官方文档可以得知,提高用户等级需要通过终端执行命令来实现。

Label权限控制:https://help.aliyun.com/zh/maxcompute/user-guide/label-based-access-control?#section-4ha-2x9-h5i

修改 RAM 用户等级的命令如下:

set Label 3 to USER RAM$Bob@aliyun.com:Allen;

其中,数字3是目标等级,即要升到哪一个级别,RAM指代 RAM 用户,Bob@aliyun.com是主账号的邮箱,Allen是 RAM 用户名。如果是给主账号调整,则把RAM$Bob@aliyun.com:Allen改为ALIYUN$Bob@aliyun.com

执行命令的地方有多个(相关链接可以再文档中查找到):

  • MaxCompute客户端
  • 使用SQL分析连接
  • MaxCompute Studio
  • 使用DataWorks连接

这里以 MaxCompute 为例,做个示例,比如我的账号是:xindata,主账号是:123456@qq.com,目标等级是 1 级,那么命令如下:

set Label 1 to USER RAM$123456@qq.com:xindata;

浏览器打开 maxcompute 控制台:https://maxcompute.console.aliyun.com/,然后点击下图的【命令行】,这个才是 ODPS CMD,上面的那个是云命令行,使用云命令行也可以,不过需要切换下路径,进入 ODPS CMD,命令为cloudshell-odpscmd -p "项目名称",一开始搞错了,点了云命令行输入以上命令一直报错说命令不存在,哈哈哈。

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

点击命令行之后选择对应的项目,便可以开启一个窗口,输入以上命令,返回结果说我没有安全操作。

Authorization Failed [4003], You have NO privilege to do the PROJECT SECURITY OPERATION for {acs:odps:*:projects/xxx/authorization/users}.

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

通过搜索错误提示,找到了一篇解决文档:https://help.aliyun.com/zh/maxcompute/user-guide/odps-0420095?#pAFKK
阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

从解决文档提示看,需要授权,授权方式有两种:

  • 可以是项目的 admin 或者 super_administrator 角色
  • 也可以是项目管理类权限一览表。

表单提供了一种方法,可以通过新增策略动作给用户授权,我所需要的动作是SetDataLabel

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps
于是编辑了相关的权限策略:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "odps:SetDataLabel"
      ],
      "Resource": [
        *  // 开始使用:"acs:odps:*:projects/xxx/authorization/users" 但提示格式有误,改 *
      ],
      "Condition": {}
    }
  ]
}

但是这个策略放哪里呢?

一开始我不清楚 maxcompute 和 maxcompute 项目的差异的时候,我在 RAM 控制台的权限策略中新建了一个策略进行授权,可想而知,这是无效的!其实在 RAM 控制台,我已经是有了 maxcompute 的管理权限,所以并不需要再一次这么配置。

实际上配置的位置是在 maxcompute 项目中,具体路径是在 maxcompute 控制台的项目管理中,选择对应的项目列表,点击右侧的管理。在项目详情中,点击角色权限,如果没有权限,会有报错提示。由于我没有权限,所以是空的(报错已关闭)。

参考通过控制台(新版)管理用户权限:https://help.aliyun.com/zh/maxcompute/user-guide/manage-user-permissions-in-the-maxcompute-console

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

所以,第二条路是走不通的,没有管理权限,根本无法进入配置用户权限。

结论就是:只能由项目的 admin 或者 super_administrator 角色处理了。

衍生问题1:怎么知道自己的等级和表单的等级

这个其实用表的时候,如果有权限问题,会报错提示:

The sensitive label of column ‘xxx’ is 1, but your effective label from package is 0.

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

如果想直接查询,也可以通过以下命令查询:

# 查看自己的等级信息,第一条是当前用户,第二条是指定用户
show label grants;
show label grants for RAM$123456@qq.com:xindata;
# 查看表的等级信息,注意,如果提示没有 odps:describe 权限,去安全中心申请表单权限,获取 describe 权限。
desc 项目名.表名称;

衍生问题2:为什么 dataworks 空间管理员也没有设置等级的权限?

DataWorks 是阿里云提供的一站式大数据开发治理平台,可以在 DataWorks 上进行 MaxCompute 作业开发、周期性调度、作业运维、数据治理等一站式数据开发治理操作。可在 DataWorks 控制台创建 DataWorks 工作空间,并在这过程中直接创建并绑定 MaxCompute 项目,后续即可在 DataWorks 工作空间中开发 MaxCompute 作业。
DataWorks 和 maxcompute 二者的权限有相通之处,但也有不同点,具体差异如下:

参考MaxCompute和DataWorks的权限关系:https://help.aliyun.com/zh/maxcompute/user-guide/permissions?#section-u7s-ys0-vv0

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

可以看到 MaxCompute 的管理员角色不能通过 DataWorks 设置,即使是 DataWorks 空间管理员,再 MaxCompute 的映射也只是一个 Role_Project_Admin 角色,对应的权限仅仅是 当前项目下project/table/fuction/resource/instance/job的所有权限,以及 package 的 read 权限,并非管理员。
所以 DataWorks 空间管理员也没有设置等级的权限。

衍生问题3:敏感列从哪里来

首先是项目的设置,在 MaxCompute 项目的详情中,我们可以看到项目的配置信息,里面会限制一栏:启动Label访问控制,如果启动,就可以配置敏感列。
敏感列的配置地方在数据保护伞,可以在 DataWorks 首页打开全部产品找到它。

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

然后在【敏感数据识别】中新增规则识别敏感数据,在此之前可能需要先在【数据分类分级】中新增分类和分级的类别和层数。

阿里云大数据实战记录9:MaxCompute RAM 用户与授权,阿里云大数据,大数据,阿里云,odps

配置好之后,还可以在【用户组管理】添加用户组,并在【数据脱敏管理】中新增白名单,但这并不能覆盖用户等级的限制,低等级依旧无法访问高等级的数据。

小结

本次探索过程,发现了一个问题,阿里云产品,可能每一个都会有自己的控制台,有自己的一套权限管理,配置权限前,需要先思考,这个权限是在哪一个平台上使用,然后针对性去对应的文档和对应的控制台中寻找解决方案。

就如本次,处理的内容其实是 MaxCompute 项目级别的问题,需要到项目中去寻找解决方案,一开始我配置了 RAM 用户相关权限,也在数据保护伞和 DataWorks 用户管理上面也尝试了解决方案,不过都是无用功,无法最终解决问题,只是更加清晰地了解了阿里云的权限管理逻辑。文章来源地址https://www.toymoban.com/news/detail-694696.html

到了这里,关于阿里云大数据实战记录9:MaxCompute RAM 用户与授权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云大数据分析师(ACP)认证,该如何备考?

    阿里云认证是基于核心技术及岗位的权威认证, 阿里云针对不同产品类别、用户成长阶段、生态岗位,精心打造不同的认证考试。 个人:证明您在对应技术领域的专业度,能够基于阿里云产品解决实际问题。获得更多阿里云生态下的就业机会。 公司:通过阿里云认证培养、

    2023年04月09日
    浏览(47)
  • 阿里云大数据工程师(ACP)认证考试大纲

      阿里云大数据专业认证(ACP 级-Alibaba Cloud CertificationProfessional)是面向使用阿里云大数据产品的架构、开发、运维类人员的专业技术认证,主要涉及阿里云大数据类的几款核心产品,包括大数据计算服务MaxCompute、数据工场DataWorks、数据集成、Quick BI、机器学习 PAI等。通

    2024年02月03日
    浏览(36)
  • 阿里云大数据ACA及ACP复习题(121~140)

    121.数据清洗(Data Cleaning)是用于检测和纠正(或删除)记录集,表或数据库中的不准确或损坏的记录。下列选项中,对数据清洗描述正确的是(ABC) A:数据清洗可以检测表中的不准确或损坏的记录 B:数据清洗可以识别不正确,不完整,不相关,不准确或其他有问题(“脏”)的数据

    2024年01月18日
    浏览(32)
  • E往无前 | 腾讯云大数据 ElasticSearch 高级功能:Cross Cluster Replication实战

    前言 Elasticsearch在platinum版本中,推出了Cross Cluster Replication特性(以下简称CCR),也即跨集群远程复制。 该特性可以解决两类问题: 1,数据迁移; 2,异地备份。 本文以实战为主,基本概念及原理可参考官网文档。 https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-ccr.h

    2024年02月12日
    浏览(54)
  • [转载]C++ 入门教程(41课时) - 阿里云大学

    本教程是专门为初学者打造的,帮助他们理解与 C++ 编程语言相关的基础到高级的概念。 在您开始练习本教程中所给出的各种实例之前,您需要对计算机程序和计算机程序设计语言有基本的了解。 运行结果: 你可以用 \\\"n\\\" 代替以上代码里的 \\\"endl\\\"。 C++ 是一种静态类型的、编

    2024年02月08日
    浏览(41)
  • MySQL授权用户访问数据操作方式

    在MySQL中,用户权限的种类有很多,其中比较常用的权限包括: SELECT:允许用户查询表中的数据。 INSERT:允许用户向表中插入数据。 UPDATE:允许用户更新表中的数据。 DELETE:允许用户删除表中的数据。 CREATE:允许用户创建新的数据库、表和视图。 DROP:允许用户删除数据库

    2024年02月10日
    浏览(34)
  • 【数据库】 mysql用户授权详解

    目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 mysql刚安装时,临时密码会存储在 /var/log/mysqld.log 1,查看临时密码 方法一:直接给出密码   方法二:查到的语句的最后为

    2024年02月11日
    浏览(45)
  • 【数据库二】数据库用户管理与授权

    CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同,在存储或检索过程中不进行大小写转换。 下表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别: 字节大小 char无论是否有值,都

    2024年02月09日
    浏览(32)
  • Mysql数据库——用户管理与授权

    用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。 1.新建用户 2.查看用户信息 3.重命名用户 RENAME USER \\\'zhangsan\\\'@\\\'localhost\\\' TO \\\'lisi\\\'@\\\'localhost\\\'; 4.删除用户 DROP USER \\\'lisi\\\'@\\\'localhost\\\'; 5.修改当前登录用户密码 SET PASSWORD = PASSWORD(\\\'abc123\\\'); 6.修

    2024年02月09日
    浏览(35)
  • 阿里云斩获2022全球分布式云大会两项大奖

    12 月 21日,“2022 全球分布式云大会·深圳站”正式举办。阿里云弹性计算团队凭借在算力领域的创新突破与全面的分布式云产品矩阵布局,荣获“2022 年度中国算力先锋 TOP3”、“2022 年度分布式算力市场领导力企业”两项大奖。 图一:2022年度中国算力先锋 TOP3 图二:2022年度

    2023年04月17日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包