`
大涛学长
  • 浏览: 110661 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MaxCompute与DataWorks权限介绍和示例

阅读更多
**背景:**用户在使用MaxCompute与DataWorks这两种权限模型不清楚,并且对于相关MaxCompute的权限执行语句也不太熟悉,以至于在自己的实际操作中不能建立完整的权限策略,导致权限控制的混乱,甚至在开发过程中时常遇到权限问题的错误,导致延误业务的推动进展,该篇文档集主要的权限知识点与一体,常用的MaxCompute权限语句,以及经典的开发环境和生产环境之间的赋权示例给大家做出做出介绍。

**一、MaxCompute的安全模型**

![1](https://yqfile.alicdn.com/255487b7ccafbc3d139d0090569bf520a3284d74.png)

**二、DataWorks安全模型**

![2](https://yqfile.alicdn.com/1382f01f7b908033d6b61467b2aaca11d984440f.png)

**三、子账户添加的限制**

![3](https://yqfile.alicdn.com/8f5f44ee5288f679e9324598527832a5a82b92b4.png)

**四、MaxCompute的授权管理图**

![4](https://yqfile.alicdn.com/0fe8289be704b7b60e9d977392ccdb4b0f9f5760.png)

**五、授权场景和注意事项**

![5](https://yqfile.alicdn.com/ce234fde8e467363281e6a69f089755dfe419dd2.png)

**六、移除用户的注意事项**

![6](https://yqfile.alicdn.com/731f4833a8cb0a7b256bb4eafb98136c56cf019a.png)

**七、成员管理的相关语句**

**查看成员:**

```
Project owner或admin命令行执行
List users;   --查看成员列表
Show grants for <username>; -- 查看某成员权限
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**添加成员:**

```
1.DataWorks添加RAM子账号;
2.Project owner或admin命令行方式执行
add user <username>   --可为RAM子账户或其他云账户
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**删除成员:**

```
1.DataWorks删除RAM子账号;
2.Project owner或admin命令行方式执行:
remove user <username>
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**八、角色管理的相关语句:**

**查看角色:**

```
查看role列表:List roles;
查看role中的权限:describe role <role_name>
查看某用户在什么role中:show grants for <username>
查看某个role都指派给那些user:目前不支持!
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**创建角色:**

```
创建role:Create role <role_name>;
给角色授权:grant actions on object to <role_name>
添加用户到角色:grant <roleName> TO <full_username>
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**删除角色:**

```
删除角色中的用户:REVOKE <roleName> FROM <full_usename>;
撤销对角色的授权:revoke <privList> on <objType> <objName> from role <rolename>
删除角色: DROP ROLE <roleName>
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**九、policy授权介绍**

Policy授权则是⼀种基于主体的授权。通过Policy授权的权限数据(即访问策略)被看做是授权主体的⼀种 ⼦资源。只有当主体(⽤户或⻆⾊)存在时才能进⾏Policy授权操作。当主体被删除时,通过Policy授权的 权限数据会被⾃动删除。 Policy授权使⽤MaxCompute⾃定义的⼀种访问策略语⾔来进⾏授权,允许或 禁⽌主体对项⽬空间对象的访问权限。 

Policy授权机制,主要解决ACL授权机制⽆法解决的⼀些复杂授权场景,⽐如:

*   ⼀次操作对⼀组对象进⾏授权,如所有的函数、所有以 “taobao” 开头的表
*   带限制条件的授权,如授权只会在指定的时段内才会⽣效、当请求者从指定的IP地址发起请求时授权才 会⽣效、或者只允许⽤户使⽤SQL(⽽不允许其它类型的Task)来访问某张表。

Policy授权语句格式如下:

```
GET POLICY; --读取项目空间的Policy
PUT POLICY <policyFile>; --设置(覆盖)项目空间的Policy
GET POLICY ON ROLE <roleName>; --读取项目空间中某个角色的Policy
PUT POLICY <policyFile> ON ROLE <roleName>; --设置(覆盖)项目空间中某个角色的Policy
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

**policy基本术语**

*   **主体(Principal) **主体(Principal)是指访问策略中的权限被指派的对象。⽐如,访问策略”允许张三在 2011年12⽉31⽇之前对资源SampleBucket执⾏CreateObject操作”中的主体是”张三”。
*   **操作(Action) **操作(Action)是指主体对资源的访问⽅法。⽐如,访问策略”允许张三在2011年12⽉ 31⽇之前对资源SampleBucket执⾏CreateObject操作”中的操作是”CreateObject”。
*   **资源(Resource) **资源(Resource)是指主体请求访问的对象。⽐如,访问策略”允许张三在2011年12 ⽉31⽇之前对资源SampleBucket执⾏CreateObject操作”中的资源是”SampleBucket”。
*   **访问限制(Access Restriction) **访问限制(Access Restriction)是指权限⽣效的限制条件。⽐如,访 问策略”允许张三在2011年12⽉31⽇之前对资源SampleBucket执⾏CreateObject操作”中的限制 条件是”在2011年12⽉31⽇之前”。
*   **效⼒(Effect) **授权效⼒包括两个⽅⾯:允许操作(Allow)和拒绝操作(Deny)。通常,Deny有更⾼ 的效⼒,在权限检查时会优先使⽤。 注意:“拒绝操作”和”撤销授权”是完全独⽴的两个概念,撤销授 权通常包括撤销对Allow和Deny这两种不同效⼒的授权,⽐如传统数据库⼀般⽀持Revoke和Revoke Deny两种操作

**授权语句(Statement)结构**

*   Effect: 指明该条语句的权限类型,取值必须为Allow或Deny。
*   Principal: 如果Policy在授权时是与⽤户或⻆⾊绑定,那么就不允许再指定Principal,⽐如 MaxCompute的Role Policy。 如果Policy在授权时是与项⽬空间或项⽬空间内的对象绑定,那么必 须指Principal,⽐如MaxCompute的Project Policy。
*   Action: 它表示授权操作,可以是⼀个或多个操作名,可⽀持通配符号” ” 和 ” ? ” 。 例 如 , A c t i o n = “ ” 表示所有的操作。
*   Resource: 它表示授权对象,可以是⼀个或多个对象名,可⽀持通配符号” ” 和 ” ? ” 。 例 如 R e s o u r c e = “ ” 表示所有的对象。
*   Condition Block: 条件块是该条授权语句所述权限得以⽣效的条件。条件块结构请参⻅下节的描述。

**十、Policy的实际使用授权案例**

基于以前的经验,我们在odps项目中创建了两个基本的角色,分别是开发角色dev、查询角色adhoc。

```
create role dev;
create role adhoc;
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

我们对于角色的权限要求大概分如下两类:

*   A开发权限:不能修改project属性但可以读取project信息,有建表、建资源、建Job等各种常用权限;可以修改、删除自己在开发库中创建的表,但对于其他同学创建的表则只有读取权限。
*   B查询权限:只能读取project信息,不能建表、建资源、建Job;只能读取表,但没有任何修改、删除权限。

我们的安全策略大致是这样的:

*   开发库上,给所有开发同学赋予A开发权限。
*   生产库上,给所有开发同学赋予B查询权限。

 

 

 

[原文链接](https://link.zhihu.com/?target=https%3A//yq.aliyun.com/articles/739645%3Futm_content%3Dg_1000094672)

本文为阿里云内容,未经允许不得转载。
分享到:
评论

相关推荐

    winform通用权限开发框架示例

    在权限管理界面中,需要有清晰的角色和权限树视图,以便于用户和角色的关联操作。 6. **数据持久化**:权限信息需要存储在数据库中,以便于系统重启后仍然有效。使用Entity Framework等ORM工具可以方便地处理数据层...

    Java权限控制示例源代码.rar

    Java权限控制示例源码,写一个文件到c:/hello.txt,定义写到文件的信息,写信息到文件,关闭输出流。相关代码:  //写一个文件到c:/hello.txt  byte[] info = "Hello,这是测试信息".getBytes(); //定义写到文件的...

    shiro权限框架示例

    Shiro 的授权功能允许你定义角色(Role)和权限(Permission)。在示例中,可能会创建角色并分配给用户,然后通过hasRole()和isPermitted()等方法检查用户是否拥有执行特定操作的权限。这有助于实现细粒度的访问...

    通用的权限管理,ssh项目中权限管理的一个小示例

    总的来说,这个示例项目提供了一个基础的权限管理系统框架,可以帮助开发者理解如何在SSH环境下实现用户、角色和权限的管理。通过学习和实践这个示例,可以提升你在实际项目中实现复杂权限控制的能力,为构建安全的...

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 ...

    PyPI 官网下载 | alibabacloud_dataworks-public20200518-2.3.1.tar.gz

    1. **源代码**:通常包括Python模块和脚本,它们实现了与阿里云DataWorks服务的交互逻辑,如API调用、数据传输、任务管理等。 2. **文档**:可能包含README文件,提供了库的快速入门指南、安装步骤、使用示例等信息...

    阿里大数据计算服务MaxCompute-工具指南.pdf

    这个工具指南主要关注如何使用客户端工具与MaxCompute进行交互,实现数据的处理和分析。 首先,MaxCompute客户端是一个基于Java的程序,因此需要安装JRE 1.6版本才能运行。用户可以从官方链接下载客户端软件包,解...

    阿里云 专有云企业版 V3.6.0 DataWorks 运维指南 - 20180824.pdf

    DataWorks运维指南还涵盖了产品基本概念与架构介绍、安装和配置、运维和监控、故障排除等方面的知识点。用户可以通过本指南了解DataWorks的基本概念和架构,学习如何正确地安装和配置DataWorks产品,并学习如何运维...

    阿里云 专有云企业版 V3.7.0 MaxCompute 开发指南 20181203.pdf

    6. **安全与权限控制**:在开发指南中,会详细介绍如何设置和管理用户权限,确保数据的安全性和访问控制。这可能涉及到角色、权限策略、安全组等概念。 7. **错误处理与调试**:开发过程中,可能会遇到各种错误,...

    阿里云 专有云企业版 V3.6.0 DataWorks 技术白皮书 - 20180824.pdf

    同时,本文档还对 DataWorks 的使用和配置进行了详细的指导,并提供了相关的示例和案例。 此外,本文档还包括了一些重要的法律声明和通用约定,旨在提醒用户在使用 DataWorks 产品时需要注意的一些重要事项。 本...

    laravel-entrust-role-permission-panel, 使用 Laravel 和委托给角色分配权限的简单示例.zip

    laravel-entrust-role-permission-panel, 使用 Laravel 和委托给角色分配权限的简单示例 #Panel: 角色和权限这个 repo 只是一个简单的例子,使用委托和定制面板编辑角色和权限,或者你可以简单地将权限分配给角色,...

    MVC自定义权限控制示例代码

    标题提到的"MVC自定义权限控制示例代码"是一个很好的起点,它展示了如何通过继承`AuthorizeAttribute`来扩展MVC的安全功能。这个小样例可以帮助开发者更好地理解和实现基于角色或特定条件的访问控制。 首先,`...

    一个Delphi权限管理示例程序.rar

    一个Delphi权限管理示例程序,使用了数据库保存权限设置信息,比较简单点的权限设置程序,可为开发同类模块的Delphi爱好者提升程序参考。相关说明:由MainMenu1,ToolBar1动态维护权限  但这对四级内菜单有效  ...

    一个可扩展的VC 权限管理模块示例演示.rar

    一个可扩展的VC 权限管理模块示例演示,附完整源码,测试帐户 :admin admin。数据库为Access,这个权限管理模块可应用到你的软件项目中,可为你的软件添加权限管理的功能。  测试请把manager.mdb数据库复制到Debug...

    阿里云 专有云企业版 V3.7.0 DataWorks 用户指南 20181201.pdf

    通过图文并茂的示例,用户可以一步一步学会如何利用DataWorks进行数据的提取、转换和加载(ETL)工作,以及如何进行复杂的数据计算和分析。 ### 数据治理与价值实现 在数据处理的基础上,DataWorks还提供了强大的...

    阿里云 专有云企业版 V3.9.0 大数据计算服务(MaxCompute) 开发指南 20191017.pdf

    - 提供了命令示例和参数说明,帮助用户理解和执行相关操作。 4. **Java SDK**: - Java SDK是MaxCompute的开发接口,允许开发者使用Java语言进行数据处理和分析。 - 1.1章节可能涵盖了SDK的安装、配置、基本使用...

    阿里云 专有云企业版 V3.8.2 DataWorks 用户指南 20200420.pdf

    它不仅为用户提供了关于DataWorks产品使用的法律声明和通用约定,还细致地介绍了产品的核心概念、功能和应用场景,以及如何进行有效的规划与准备。通过这份用户指南的学习,用户不仅能够更加明确自身的权益和责任,...

    SQL Server自带示例数据库

    SQL Server 提供了强大的角色和权限管理系统,示例数据库可以帮助你理解如何设置用户权限、创建登录账户、分配角色以及使用动态管理视图检查当前权限状态。 7. **性能优化**: 通过对示例数据库进行性能测试,...

    仓储系统功能模块权限示例

    仓储系统功能模块权限列表示例。

    阿里云 专有云企业版 V3.12.0 DataWorks 用户指南 20200706.pdf

    本用户指南详细介绍了如何使用DataWorks的各项功能,帮助用户更好地理解和操作该系统。 1. **登录DataWorks控制台**: 用户首先需要通过阿里云官方网站或授权通道登录DataWorks的控制台。在这个阶段,用户需要有...

Global site tag (gtag.js) - Google Analytics