腾讯云访问控制自定义访问策略

自定义访问策略语言是采用JSON对权限控制的一种抽象表述。腾讯云访问管理 授权策略语言可以表达精细的授权语义,可以指定对某个 API-Action 和Resource-ID 授权。
 
一个权限控制策略(Policy)包含一个或者一组声明(Statement)和版本号(Version)两个部分。一个声明(Statement)又包含一个或者一组资源(Resource)、操作方法(Action)和约束效力(Effect)三个部分。Statement用于定义通过指定的操作方法(Action),是否允许(Effect)对指定资源(Resource)进行操作。
 
资源Resource
Resource是对云服务提供的服务对象实体的抽象。全局的格式如下:
 
pcs:{$ServiceType}:{$RegionId}:{$AccountId}:{$ResourceType}/{$ResourceIdentifier}

pcs
腾讯云服务标识缩写英文:pcs(Pingan Cloud Service的首字母缩写。
 
{$ServiceType}
具体服务类型的英文名称简写,如:RAM, ecs, igw, elb, vpc, vpn, ecs, obs。
 
{$RegionId}
地域uuid,如Region-SouthChina。如果不区分地域,用*代替即可。
 
{$AccountId}
账号uuid(如:Tenant-h18HTXgEJ4),一般用*代替即可。
 
{$ResourceType}
资源类型, 一个服务类型里可包含多个资源类型,比如Instance。
 
{$ResourceIdentifier}
标识具体资源实例,可以是相应的name,id等。与资源类型一起,标识某种类型资源的某个实例,如instance/Instance-WiF4qB标识uuid为Instance-WiF4qB的云主机实例。
 
执行动作Action
Action用于描述用户执行的操作。可以是一个确定的值(例如:ListInstances),也可以使用通配符*表示一系列操作(例如List*,表示指定服务下所有Action名称以List开头的操作,包括ListInstances,ListSecurityGroups等)。
 
Action     Resource 说明
AddUserToGroup
 
pcs:RAM:*:${AccountId}:group/${GroupName}
 
将子用户添加到群组
 
pcs:RAM:*:${AccountId}:user/${LoginName}
 
AdminResetPassword
 
pcs:RAM:*:${AccountId}:user/*
 
重置子账号密码
 
AttachPolicyToGroup
 
pcs:RAM:*:${AccountId}:group/${GroupName}
 
为组附加授权
 
pcs:腾讯云访问管理:*:${AccountId}:policy/${PolicyName}
 
约束效力Effect
约束效力取值可以是Allow或者Deny。取值Allow表示允许进行操作,取值Deny表示拒绝操作。鉴权过程若遇到权限声明冲突,遵循Deny优先原则。
 
我们来看一个自定义访问策略示例,它表示允许对云主机实例Instance-TrcJCCYtYW和Instance-fR8YYjTu90的开机和关机操作的策略。
 
{
       "Statement":[
          {
              "Resource":[
                "pcs:ecs:*:*:instance/Instance-TrcJCCYtYW",
                "pcs:ecs:*:*:instance/Instance-fR8YYjTu90"
             ],
              "Action":[
                "ecs:StartInstance",
                "ecs:StopInstance"
               ],
              "Effect":"Allow"
          }
       ],
       "Version":"1"
    }

标签