如何在IAM自定义DLI细粒度策略

举报
jping 发表于 2020/07/07 17:37:26 2020/07/07
【摘要】 1 概述 DLI在服务本身维护一套完善的权限控制的同时,还支持通过统一身份认证服务细粒度鉴权,通过创建策略来管理DLI的权限,并且随着不断完善,细粒度鉴权会逐渐和DLI服务本身的权限管控同步。2 权限分类 目前DLI有权限控制的资源如下,详细信息可以参考DLI用户指南权限管理https://support.huaweicloud.com/usermanual-...

1      概述

    DLI在服务本身维护一套完善的权限控制的同时,支持通过统一身份认证服务细粒度鉴权,通过创建策略来管理DLI的权限,并且随着不断完善,细粒度鉴权会逐渐和DLI服务本身的权限管控同步。

2      权限分类

    目前DLI有权限控制的资源如下,详细信息可以参考DLI用户指南权限管理https://support.huaweicloud.com/usermanual-dli/dli_01_0440.html

资源名称

资源类型

权限大类

权限小类

资源路径

DLI队列

queue

队列权限

队列管理权限

queues.queuename

队列使用权限

DLI数据库

database

数据权限

数据库权限

databases.dbname

DLI

table

表权限

databases.dbname.tables.tbname

DLI

column

列权限

databases.dbname.tables.tbname.columns.colname

DLI作业

jobs

作业权限

Flink作业

jobs.flink.jobId

DLI程序包

resource

程序包权限

程序包权限

resources.resourcename

group

程序包组权限

groups.groupname

DLI跨源认证信息

datasourceauth

跨源认证权限

跨源认证权限

datasourceauth.name

3      创建策略

3.1      策略字段介绍

3.1.1        Version

版本信息,1.1 策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。

3.1.2        Effect

作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。

3.1.3        Action

   授权项,指对资源的具体操作权限,不超过100个。

说明:

·         格式为:服务名:资源类型:操作,例:dli:queue:submit_job

·         服务名为产品名称,例如dlievsvpc等,服务名仅支持小写。 资源类型和操作没有大小写,要求支持通配符号*,无需罗列全部授权项

·         资源类型可以参考2.2中的资源类型

·         操作:操作以IAM服务中已经注册的action为准

3.1.4        Condition

限制条件:使策略生效的特定条件,包括条件键和运算符。条件键表示策略语句的 Condition 元素中的键值,分为全局级条件键和服务级条件键(由云服务定义,请参见云服务帮助中心)。全局级条件键(前缀为g:)适用于所有操作,服务级条件键(前缀为服务缩写,如dli:,目前DLI未提供服务级条件键)仅适用于对应服务的操作。运算符与条件键一起使用,构成完整的条件判断语句。

3.1.5        Resource

    格式为:服务名:region:domainId:资源类型:资源路径, 通配符号*表示所有,资源路径可以参考2.2资源路径。

示例:

  • "dli:*:*:queue:*": 表示所有的队列

3.2      创建DLI自定义策略

从上述策略字段介绍中,可以看出actionresource都可以根据场景需要自己进行不同级别的设置。

3.2.1        定义Action

Action由服务名:资源类型:操作三段组成,通配符为*。操作信息可以参考:https://support.huaweicloud.com/usermanual-dli/dli_01_0441.html

示例如下:

dli:queue:submit_job

DLI队列的提交操作

dli:queue:*        

DLI队列的全部操作

dli:*:*            

DLI所有资源类型的所有操作

 

3.2.2        定义Resource

Resource<服务名:region:domainId:资源类型:资源路径>5段组成, 通配符号*表示所有。5个字段可以灵活的设置,资源路径可以按照场景需要,设置不同级别的权限控制,DLI资源路径和资源类型可以参考2.2资源路径。当需要设置该服务下所有资源时,可以不指定该字段。

示例如下:

DLI:*:*:database:databases.dbname.tables.*

DLI服务,任意region,任意账号ID下,数据库名为dbname下的所有表资源。

DLI:*:*:database:databases.dbname

DLI服务,任意region,任意账号ID下,数据库名为dbname的队列。

DLI:cn-north-1:xxx:database:databases.db.tables.tb.columns.col

DLI服务,cn-north-1,账号ID为xxx,数据库名为db,表名为tb,列名为col的资源。

DLI:*:*:database:queues.*

DLI服务,任意region,任意账号ID下,任意队列资源。

DLI:*:*:jobs:jobs.flink.1

DLI服务,任意region,任意账号ID下,作业Id为1的flink作业。

 

·         所有资源: 指该服务下的所有资源

将上述的所有字段拼接为一个json就是一个完整的策略了,其中actionresource均可以设置多个,当然也可以通过IAM提供的可视化界面创建,示例如下:

授权用户拥有DLI服务,任意region,任意账号ID下,任意数据库的创建删除权限,任意队列的提交作业权限,任意表的删除权限

{

    "Version": "1.1",

    "Statement": [

        {

            "Effect": "   Allow",

            "Action": [

                  "dli:database:create_database",

                  "dli:database:drop_database",

                  "dli:queue:submit_job",

                  "dli:table:drop_table"

            ],

            "Resource": [

                  "dli:*:*:database:*",

                "dli:*:*:queue:*",

                "dli:*:*:table:*"

            ]

        }

    ]

}


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。