腾讯云访问控制自定义访问策略
自定义访问策略语言是采用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"
}