通过IAM身份策略授予使用EVS的权限
如果您需要对您所拥有的云硬盘(Elastic Volume Service, EVS)进行基于策略授权模型的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:
- 根据企业的业务组织,在您的华为云账号中,给企业中不同职能部门的员工创建用户或用户组,让员工拥有唯一安全凭证,并使用EVS资源。
 - 根据企业用户的职能,设置不同的访问权限,以达到用户之间的权限隔离。
 - 将EVS资源委托给更专业、高效的其他华为云账号或者云服务,这些账号或者云服务可以根据权限进行代运维。
 
如果华为云账号已经能满足您的要求,您可以跳过本章节,不影响您使用EVS服务的其它功能。
本章节为您介绍使用身份策略的授权方法,操作流程如图1所示。
前提条件
在授权操作前,请您了解可以添加的EVS权限,并结合实际需求进行选择。EVS支持的系统身份策略,请参见基于策略授权的EVS系统策略。如果您需要对除EVS之外的其它服务授权,IAM支持服务的所有权限请参见系统权限。
示例流程
- 创建用户或创建用户组
     
在IAM控制台创建用户或用户组。
 - 将系统身份策略附加至用户或用户组
     
为用户或用户组授予云硬盘只读权限的系统身份策略“EVSReadOnlyPolicy”,或将策略附加至用户或用户组。
 - 用户登录并验证权限 
     
使用已授权的用户登录控制台,验证权限:
- 在“服务列表”中选择云硬盘,进入云硬盘主界面,单击右上角“购买磁盘”,尝试购买云硬盘,如果无法购买云硬盘(假设当前权限仅包含EVSReadOnlyPolicy),表示“EVSReadOnlyPolicy”已生效。
 - 在“服务列表”中选择除云硬盘外(假设当前策略仅包含EVSReadOnlyPolicy)的任一服务,如果提示权限不足,表示“EVSReadOnlyPolicy”已生效。
 
 
EVS自定义策略样例
- 示例1:授权创建云硬盘的权限 
     
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "evs:volumes:create", "evs:volumes:list", "evs:volumes:get", "evs:types:get", "evs:quotas:get", "ecs:cloudServerFlavors:get", "ecs:cloudServers:listServersDetails" ] } ] } - 示例2:多个授权项策略 
     
一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项。多个授权语句策略描述如下:
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "evs:volumes:create", "evs:volumes:list" ] }, { "Effect": "Allow", "Action": [ "evs:volumes:create", "evs:volumes:list", "evs:volumes:get", "evs:types:get", "evs:quotas:get", "evs:volumes:use" ] }, { "Effect": "Allow", "Action": [ "ecs:cloudServerFlavors:get", "ecs:cloudServers:listServersDetails", "ecs:cloudServers:showServer", "ecs:cloudServers:attach", "ecs:cloudServers:detachVolume" ] } ] } - 示例3:授权用户创建强制加密的云硬盘 
     
您可以添加一条自定义策略,用于限制用户只能创建加密的云硬盘。授权语句策略描述如下:
{ "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "evs:volumes:create" ], "Condition": { "Bool": { "evs:Encrypted": [ "false" ] } } } ] } - 示例4:授权用户创建强制备份的云硬盘 
     
您可以添加一条自定义策略,用于限制用户创建云硬盘时必须使用云备份功能。
 
      如果您在创建包年/包月云硬盘时,配置了强制备份,则只能选择已有的备份存储库。
授权语句策略描述如下:
{ "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "evs:volumes:create" ], "Condition": { "Null": { "cbr:VaultId": [ "true" ] } } } ] } 
  
    