更新时间:2023-12-28 GMT+08:00
分享

权限管理

如果您使用设备接入服务后,需要为企业中的员工设置不同的用户访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制云服务资源的访问。

IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。关于IAM的详细介绍,请参见《IAM产品介绍》

通过IAM,您可以在华为云账号中给员工创建IAM用户,并授权控制他们对华为云资源的访问范围。例如您的员工中有负责统计数据的人员,您希望他们拥有IoTDA的查看权限,但是不希望他们拥有增删设备接入服务资源等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用IoTDA的查看操作,控制他们对IoTDA资源的使用范围。

如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用设备接入服务的其它功能。

IoTDA权限

图1 IoTDA权限管理能力

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

IoTDA为项目级服务,授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华南-广州)对应的项目(cn-south-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问IoTDA时,需要先切换至授权区域。

设备接入提供“角色”和“策略”两种维度的权限管理。
  • 角色:IAM提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
  • 策略:IAM提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对IoTDA服务,管理员能够控制IAM用户仅能对某一个实例或者资源空间进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,IoTDA支持的API授权项请参见权限与授权项说明

    当添加了IoTDA FullAccess权限的子帐号在Console控制台界面使用其他功能时仍没有操作权限,需要您单独添加对应服务或功能的Admin或者FullAccess权限。具体详情如下:

    • GSL、DIS当前不支持细粒度鉴权,需要添加对应admin权限。
    • BCS、FunctionGraph,SMN,OBS,SWR,AOM,IAM,LTS,VPC,TMS,DMS(Kafka),VPCEP 等,FullAccess中缺少对应权限,需单独添加;

    更多相关功能需要的权限,请参见表1所示。

    由于缓存的存在,对用户、用户组授予IoTDA相关的角色后,大概需要等待15分钟角色才能生效;授予IoTDA相关的策略后,大概需要等待5分钟策略才能生效。

表1 外部依赖相关功能的权限

服务功能

权限

BCS

bcs:huaweiCloudChainInstance:list

bcs:huaweiCloudChainEndpoint:list

bcs:huaweiCloudChainChain:getChain

cs:huaweiCloudChainInstance:get

bcs:huaweiCloudChainContract:list

FunctionGraph

FunctionGraph:function:list

SMN

smn:topic:list

OBS

obs:bucket:ListAllMyBuckets

obs:bucket:ListBucket

SWR

swr:repository:listNamespaces

swr:instance:listCenters

AOM

aom:alarm:list

aom:metric:list

IAM

iam:projects:listProjects

iam:permissions:listRolesForAgency

iam:permissions:listRolesForAgencyOnProject

iam:permissions:checkRoleForAgencyOnProject

iam:permissions:grantRoleToAgencyOnProject

iam:roles:listRoles

iam:agencies:createAgency

iam:agencies:listAgencies

LTS

lts:topics:list

lts:groups:list

lts:groups:create

lts:topics:create

VPC

vpc:vpcs:list

vpc:subnets:get

vpc:securityGroups:get

TMS

tms:predefineTags:list

DMS(Kafka)

dms:instance:list

dms:instance:get

VPCEP

vpcep:endpointServices:list

vpcep:endpointServices:get

表2 IoTDA系统权限

系统角色/策略名称

描述

类别

Tenant Administrator

拥有该权限的用户拥有除IAM外,其他所有服务的所有执行权限

系统角色

Tenant Guest

拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。

系统角色

IoTDA FullAccess

拥有设备接入服务所有权限

系统策略

IoTDA ReadOnlyAccess

拥有设备接入服务只读权限

系统策略

表3 IoTDA操作与资源权限关系

操作名称

Tenant Administrator

Tenant Guest

IoTDA FullAccess

IoTDA ReadOnlyAccess

创建产品

x

x

查询产品列表

查询产品

修改产品

x

x

删除产品

x

x

创建设备

x

x

查询设备列表

查询设备

修改设备

x

x

删除设备

x

x

重置设备密钥

x

x

冻结设备

x

x

解冻设备

x

x

重置设备指纹

x

x

灵活搜索设备列表

下发设备消息

x

x

查询设备消息

查询指定消息id的消息

下发广播消息

x

x

下发设备命令

x

x

下发异步设备命令

x

x

查询指定id的命令

修改设备属性

下发设备消息

x

x

查询指定消息id的消息

查询产品列表

创建产品

x

x

查询产品

修改产品

x

x

删除产品

x

x

查询设备列表

注册设备

x

x

查询设备

修改设备

x

x

删除设备

x

x

重置设备密钥

x

x

查询设备影子数据

配置设备影子预期数据

x

x

下发设备命令

x

x

查询设备属性

修改设备属性

x

x

查询设备属性

查询设备影子数据

配置设备影子预期数据

x

x

创建AMQP队列

x

x

查询AMQP列表

查询单个AMQP队列

删除AMQP队列

x

x

生成接入凭证

x

x

创建规则触发条件

x

x

查询规则条件列表

查询规则条件

修改规则触发条件

x

x

删除规则触发条件

x

x

创建规则动作

x

x

查询规则动作列表

查询规则动作

修改规则动作

x

x

删除规则动作

x

x

创建规则

x

x

查询规则列表

修改规则

x

x

查询规则

删除规则

x

x

修改规则状态

x

x

添加设备组

x

x

查询设备组列表

查询设备组

修改设备组

x

x

删除设备组

x

x

管理设备组中的设备

查询设备组设备列表

绑定标签

x

x

解绑标签

x

x

按标签查询资源

查询资源空间列表

创建资源空间

x

x

查询资源空间

删除资源空间

x

x

创建批量任务

x

x

查询批量任务列表

查询批量任务

批量任务重试

x

x

批量任务停止

x

x

删除批量任务

x

x

上传批量任务文件

x

x

查询批量任务文件列表

删除批量任务文件

x

x

上传设备CA证书

x

x

获取设备CA证书列表

删除设备CA证书

x

x

验证设备CA证书

x

x

创建OTA升级包

x

x

查询OTA升级包列表

获取OTA升级包详情

删除OTA升级包

x

x

查询隧道列表

创建设备隧道

x

x

删除设备隧道

x

x

查询隧道详情

修改设备隧道

x

x

权限配置流程

IoTDA的权限配置和授权都在IAM控制台进行,配置流程如下:

图2 给用户授权IoTDA权限流程
  1. 创建用户组并授权:在IAM控制台创建用户组,并授权IoTDA权限,例如IoTDAReadOnlyAccess。
  2. 创建用户并加入用户组:在IAM控制台创建用户,并将其加入1中创建的用户组。
  3. 用户登录并验证权限:新创建的用户登录控制台,切换至授权区域,验证权限:
    • 在“服务列表”中选择IoTDA,进入主界面尝试创建设备,如果无法无法成功操作(假设当前权限仅包含IoTDAReadOnlyAccess),表示“IoTDAReadOnlyAccess”已生效。
    • 在“服务列表”中选择除IoTDA外(假设当前策略仅包含IoTDAReadOnlyAccess)的任一服务,若提示权限不足,表示“IoTDAReadOnlyAccess”已生效。
分享:

    相关文档

    相关产品