创建iDME操作用户(IAM授权)
在iDME中,iDME控制台、应用设计态、体验版应用运行态、应用运行态API(包括体验版、基础版以及基础版-Lite类型)的调用和数字主线引擎是基于IAM系统策略和自定义策略的授权,可以通过用户组功能实现IAM用户的授权。当您需要将相关资源分配给企业中不同的员工或者应用程序使用时,可以通过添加IAM账号实现。
在进行IAM授权时,系统将根据用户选择的策略自动推荐授权范围方案,方便用户选择合适的授权作用范围。您可以根据实际情况,分别为用户组的企业项目视图和IAM项目视图配置不同的IAM策略,从而实现权限最小化原则的精准授权,降低资源操作过程中的风险。表1为iDME支持的所有授权范围方案。
可选方案 |
方案说明 |
---|---|
所有资源 |
授权后,IAM用户可以根据权限使用账号中所有iDME资源,包括企业项目、区域项目和全局服务资源。 |
指定企业项目资源 |
选择指定企业项目,IAM用户可根据权限在iDME控制台管理该企业项目中的iDME资源,如部署或卸载应用。仅开通企业项目后可选。 请注意,是否指定企业项目并不会影响用户正常使用应用设计态、运行态或数字主线引擎的功能。 如果您暂未开通企业项目,将不支持基于企业项目授权,了解企业项目请参考:什么是企业项目管理。如需开通,请参考:开通企业项目。 |
基于IAM能力的授权遵循最大权限优先授权规则。如果用户同时获得iDME多个策略的授权,且这些策略的授权范围方案不同时,将根据该用户具有的最高权限进行授权,确保用户可以在其权限范围内进行最广泛的操作,从而充分利用其权限。请注意,授权访问策略中的部分Action不支持企业项目维度的权限隔离,例如iam:users:listUsers。
关于iDME更多相关权限的介绍,详细可参考权限管理。
IAM授权流程

- 创建用户组并授权。
在IAM控制台创建用户组,并授予iDME权限,例如iDME ReadOnlyAccess。
- 创建用户并加入用户组。
在IAM控制台创建用户,并将其加入1中创建的用户组。
- 用户登录并验证权限。
新创建的用户登录控制台后,在“服务列表”中选择“工业数字模型驱动引擎”,尝试创建应用,如果无法成功操作(假设当前权限仅包含iDME ReadOnlyAccess),表示“iDME ReadOnlyAccess”已生效。
系统策略
IAM中预置的iDME系统策略当前包含iDME FullAccess、iDME AppOperationAccess、iDME EnvOperationAccess和iDME ReadOnlyAccess几种策略。
关于iDME系统策略的主要权限说明,详细请参见iDME系统策略。
- iDME FullAccess:工业数字模型驱动引擎服务所有权限。
- iDME AppOperationAccess:工业数字模型驱动引擎服务应用管理权限,拥有创建和修改应用的权限。
- iDME EnvOperationAccess:工业数字模型驱动引擎服务运行环境管理权限,拥有部署和卸载应用的权限。
- iDME ReadOnlyAccess:工业数字模型驱动引擎服务的只读策略,拥有应用列表、运行服务列表的只读权限。
自定义策略
如果系统预置的iDME策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制,自定义策略是对系统策略的扩展和补充。自定义策略中可以添加的授权项(Action)请参考权限策略和授权项。
目前支持以下两种方式创建自定义策略:
- 可视化视图创建自定义策略:无需了解JSON语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。
- JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见:创建自定义策略。
请注意,修改自定义策略后,权限不会立即生效,大概需要等待15分钟,权限才会自动生效。
以下为您介绍常用的iDME自定义策略样例。
- 示例1:授权用户仅有创建应用的权限
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dme:apps:get", "dme:apps:create", "iam:users:listUsers" ] } ] }
- 示例2:授权用户仅有部署应用的权限
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dme:apps:get", "dme:envs:get", "dme:envs:deployApp" ] } ] }
- 示例3:授权用户仅有应用列表的只读权限
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dme:apps:get" ] } ] }