/ 数据湖探索 dli/ / 权限策略和授权项
更新时间:2024-11-04 gmt 08:00

权限策略和授权项-九游平台

如果您需要对您所拥有的dli服务进行精细的权限管理,您可以使用统一身份认证服务(identity and access management,简称iam),如果华为云账号已经能满足您的要求,不需要创建独立的iam用户,您可以跳过本章节,不影响您使用dli服务的其它功能。

默认情况下,新建的iam用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得该用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。

权限根据授权的精细程度,分为和。

  • 角色:角色以服务为粒度,是iam最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。
  • 策略:策略以api接口为粒度进行权限拆分,授权更加精细,可以精确到某个操作、资源和条件,能够满足企业对权限最小化的安全管控要求。

如果您需要允许或是禁止某个接口的操作权限,请使用策略。

账号具备所有接口的调用权限,如果使用账号下的iam用户发起api请求时,该iam用户必须具备调用该接口所需的权限,否则,api请求将调用失败。每个接口所需要的权限,与各个接口所对应的授权项相对应,只有发起请求的用户被授予授权项所对应的策略,该用户才能成功调用该接口。例如,用户要创建队列,那么这个iam用户被授予的策略中必须包含允许"dli:queue:create_queue"的授权项,该接口才能调用成功。

支持的授权项

策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与api相对应,授权项列表说明如下:

  • 权限:允许或拒绝对指定资源在特定条件下进行某项操作。
  • 对应api接口:自定义策略实际调用的api接口。
  • 授权项:自定义策略中支持的action,在自定义策略中的action中写入授权项,可以实现授权项对应的权限功能。
  • 依赖的授权项:部分action存在对其他action的依赖,需要将依赖的action同时写入授权项,才能实现对应的权限功能。
  • iam项目(project)/企业项目(enterprise project):自定义策略的授权范围,包括iam项目与企业项目。授权范围如果同时支持iam项目和企业项目,表示此授权项对应的自定义策略,可以在iam和企业管理两个服务中给用户组授权并生效。如果仅支持iam项目,不支持企业项目,表示仅能在iam中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。

    关于iam项目与企业项目的区别,详情请参见:iam与企业管理的区别

    仅在表1中的接口支持自定义授权,其他不在表格中的接口不支持自定义授权。

“√”表示支持,“x”表示暂不支持。

dli支持自定义策略授权项如下表所示。

表1 api授权项列表

权限

对应api接口

授权项

iam项目

(project)

企业项目

(enterprise project)

创建队列

post /v1.0/{project_id}/queues

dli:queue:createqueue

删除队列

delete /v1.0/{project_id}/queues/{queue_name}

dli:queue:dropqueue

提交作业

post /v1.0/{project_id}/jobs/submit-job

dli:queue:submitjob

×

取消作业

delete /v1.0/{project_id}/jobs/{job_id}

dli:queue:canceljob

×

查看其他用户具备的队列权限

get /v1.0/{project_id}/queues/{queue_name}/users

dli:queue:showprivileges

×

重启队列

put /v1.0/{project_id}/queues/{queue_name}/action

dli:queue:restart

×

扩缩容队列

put /v1.0/{project_id}/queues/{queue_name}/action

dli:queue:scalequeue

×

赋予指定用户弹性资源权限

put /v1.0/{project_id}/user-authorization

dli:elasticresourcepool:grantprivilege

×

移除指定用户弹性资源池权限

put /v1.0/{project_id}/user-authorization

dli:elasticresourcepool:revokeprivilege

×

创建数据库

post /v1.0/{project_id}/databases

dli:database:createdatabase

×

删除数据库

delete /v1.0/{project_id}/databases/{database_name}

dli:database:dropdatabase

×

修改数据库配置

post /v1.0/{project_id}/jobs/submit-job

dli:database:alterdatabaseproperties

×

将sql语句解释为执行计划

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:explain

×

创建表

post /v1.0/{project_id}/databases/{database_name}/tables

dli:database:createtable

×

创建视图

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:createview

×

创建函数

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:createfunction

×

描述函数

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:describefunction

×

删除函数

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:dropfunction

×

显示函数

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:showfunctions

×

创建角色

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:createrole

×

删除角色

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:droprole

×

显示角色

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:showroles

×

显示所有角色

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:showallroles

×

绑定角色

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:grantrole

×

解除角色绑定

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:revokerole

×

显示所有角色和用户的绑定关系

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:database:showusers

×

查看其他用户具备的数据库权限

get /v1.0/{project_id}/databases/{database_name}/users

dli:database:showprivileges

×

显示数据库

get /v1.0/{project_id}/databases

dli:database:displaydatabase

×

显示所有数据库

get /v1.0/{project_id}/databases

dli:database:displayalldatabases

×

显示所有表

get /v1.0/{project_id}/databases

dli:database:displayalltables

×

赋予指定用户数据库权限

put /v1.0/{project_id}/user-authorization

dli:database:grantprivilege

×

移除指定用户数据库权限

put /v1.0/{project_id}/user-authorization

dli:database:revokeprivilege

×

删除表

delete /v1.0/{project_id}/databases/{database_name}/tables/{table_name}

dli:table:droptable

×

显示表结构

get /v1.0/{project_id}/databases/{database_name}/tables/{table_name}

dli:table:describetable

×

查询表

get /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview

dli:table:select

×

显示表配置

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:showtableproperties

×

显示建表语句

get /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview

dli:table:showcreatetable

×

显示所有分区

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:showpartitions

×

设置表配置

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertablesetproperties

×

添加列

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertableaddcolumns

×

在分区表中添加分区

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertableaddpartition

×

重命名表分区

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertablerenamepartition

×

删除分区表的分区

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertabledroppartition

×

恢复表分区

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertablerecoverpartition

×

重命名表

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertablerename

×

设置分区路径

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:altertablesetlocation

×

插入表数据

post /v1.0/{project_id}/jobs/submit-job,语句调用

dli:table:insertintotable

×

重写表数据

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:insertoverwritetable

×

查看其他用户具备的表权限

get /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users

dli:table:showprivileges

×

清空表

post /v1.0/{project_id}/jobs/submit-job

dli:table:truncatetable

×

更新表

post /v1.0/{project_id}/jobs/submit-job

dli:table:update

×

删除表数据

post /v1.0/{project_id}/jobs/submit-job

dli:table:delete

×

修改列信息

post /v1.0/{project_id}/jobs/submit-job

dli:table:altertablechangecolumn

×

删除列

post /v1.0/{project_id}/jobs/submit-job

dli:table:altertabledropcolumns

×

显示数据段

post /v1.0/{project_id}/jobs/submit-job

dli:table:showsegments

×

合并数据段

post /v1.0/{project_id}/jobs/submit-job

dli:table:compaction

×

修改视图

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:table:alterview

×

显示表结构

post /v1.0/{project_id}/jobs/submit-job,执行对应sql

dli:table:describetable

×

赋予指定用户数据表权限

put /v1.0/{project_id}/user-authorization

dli:table:grantprivilege

×

移除指定用户数据表权限

put /v1.0/{project_id}/user-authorization

dli:table:revokeprivilege

×

查看其它用户的安全认证信息权限列表

get /v1.0/{project_id}/datasource/auth-infos/{auth_name}/users

dli:datasourceauth:showprivileges

×

使用安全认证信息

post /v1.0/{project_id}/jobs/submit-job

dli:datasourceauth:useauth

×

删除安全认证信息

delete /v2.0/{project_id}/datasource/auth-infos/{auth_info_name}

dli:datasourceauth:dropauth

×

更新安全认证信息

put /v2.0/{project_id}/datasource/auth-infos

dli:datasourceauth:updateauth

×

赋予指定用户安全认证权限

put /v1.0/{project_id}/user-authorization

dli:datasourceauth:grantprivilege

×

移除指定用户安全认证权限

put /v1.0/{project_id}/user-authorization

dli:datasourceauth:revokeprivilege

×

移除指定用户作业权限

put /v1.0/{{project_id}}/authorization

dli:jobs:revokeprivilege

×

查询列

post /v1.0/{project_id}/jobs/submit-job,sql语句调用

dli:column:select

×

赋予指定用户列权限

put /v1.0/{project_id}/user-authorization

dli:column:grantprivilege

×

移除指定用户列权限

put /v1.0/{project_id}/user-authorization

dli:column:revokeprivilege

×

查询flink作业列表

get /v1.0/{project_id}/streaming/jobs

dli:jobs:listall

×

查询flink作业详情

get /v1.0/{project_id}/streaming/jobs/{job_id}

dli:jobs:get

×

创建flink sql作业

post /v1.0/{project_id}/streaming/sql-jobs

dli:jobs:create

×

创建flinkjar作业

post /v1.0/{project_id}/streaming/flink-jobs

dli:jobs:create

×

更新flinksql作业

put /v1.0/{project_id}/streaming/sql-jobs/{job_id}

dli:jobs:update

×

更新flinkjar作业

put /v1.0/{project_id}/streaming/flink-jobs/{job_id}

dli:jobs:update

×

删除flink作业

delete /v1.0/{project_id}/streaming/jobs/{job_id}

dli:jobs:delete

×

批量运行flink作业

post /v1.0/{project_id}/streaming/jobs/run

dli:jobs:start

×

停止flink作业

post /v1.0/{project_id}/streaming/jobs/stopob_id/stop

dli:jobs:stop

×

相关文档

网站地图