控制台权限
默认情况下,新创建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使用户组中的用户获得相应的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。
工业数字模型驱动引擎(Industrial Digital Model Engine,简称iDME)部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择 “区域级项目”,然后在指定区域(如华北-北京4)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效。如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问iDME时,需要先切换至授权区域。
- 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
- 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对iDME服务,租户(Domain)能够控制用户仅能对应用进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,iDME支持的API授权项请参见权限策略和授权项。
在进行IAM授权时,系统将根据用户选择的策略自动推荐授权范围方案,方便用户选择合适的授权作用范围。您可以根据实际情况,分别为用户组的企业项目视图和IAM项目视图配置不同的IAM策略,从而实现权限最小化原则的精准授权,降低资源操作过程中的风险。表1为iDME支持的所有授权范围方案。
可选方案 |
方案说明 |
---|---|
所有资源 |
授权后,IAM用户可以根据权限使用账号中所有iDME资源,包括企业项目、区域项目和全局服务资源。 |
指定企业项目资源 |
选择指定企业项目,IAM用户可根据权限在iDME控制台管理该企业项目中的iDME资源,如部署或卸载应用。仅开通企业项目后可选。 请注意,是否指定企业项目并不会影响用户正常使用应用设计态、运行态或数字主线引擎的功能。 如果您暂未开通企业项目,将不支持基于企业项目授权,了解企业项目请参考:什么是企业项目管理。如需开通,请参考:开通企业项目。 |
基于IAM能力的授权遵循最大权限优先授权规则。如果用户同时获得iDME多个策略的授权,且这些策略的授权范围方案不同时,将根据该用户具有的最高权限进行授权,确保用户可以在其权限范围内进行最广泛的操作,从而充分利用其权限。请注意,授权访问策略中的部分Action不支持企业项目维度的权限隔离,例如iam:users:listUsers。
如表2所示,包括了iDME提供的所有系统策略。
策略名称 |
描述 |
策略类别 |
---|---|---|
iDME AppOperationAccess |
工业数字模型驱动引擎服务应用管理权限,拥有创建和修改应用的权限。 |
系统策略 |
iDME EnvOperationAccess |
工业数字模型驱动引擎服务运行环境管理权限,拥有部署和卸载应用的权限。 |
系统策略 |
iDME ReadOnlyAccess |
工业数字模型驱动引擎服务的只读策略,拥有应用列表、运行服务列表的只读权限。 |
系统策略 |
iDME FullAccess |
工业数字模型驱动引擎服务所有权限。 |
系统策略 |
iDME AppOperationAccess
{ "Version": "1.1", "Statement": [ { "Action": [ "dme:apps:get", "dme:apps:create", "dme:apps:modify", "dme:envs:get", "iam:users:listUsers", "vpc:publicIps:get", "dme:tag:listTagsForResource" ], "Effect": "Allow" } ] }
iDME EnvOperationAccess
{ "Version": "1.1", "Statement": [ { "Action": [ "dme:apps:get", "dme:envs:get", "dme:envs:deployApp", "dme:envs:destroyApp", "vpc:publicIps:get", "dme:tag:listTagsForResource" ], "Effect": "Allow" } ] }
iDME ReadOnlyAccess
{ "Version": "1.1", "Statement": [ { "Action": [ "dme:apps:get", "dme:envs:get", "vpc:publicIps:get", "dme:tag:listTags", "dme:tag:listTagsForResource", "dme:tag:listResourcesByTag", "vpc:publicips:list" ], "Effect": "Allow" } ] }
iDME FullAccess
{ "Version": "1.1", "Statement": [ { "Action": [ "dme:apps:*", "dme:envs:*", "iam:users:listUsers", "vpc:vpcs:list", "vpc:securityGroups:get", "vpc:subnets:get", "vpc:publicIps:get", "vpc:publicIps:list", "vpc:publicIps:update", "dme:tag:*" ], "Effect": "Allow" } ] }