标签(Tag)与访问控制(RAM)相结合,可以实现更加精细化的权限控制。为资源绑定标签后,您可以通过RAM的自定义权限策略指定授权的标签,以此限制RAM身份(RAM用户或RAM角色)仅能对绑定该标签的资源进行访问和操作。使用标签控制资源访问的授权方式更灵活,扩展性更好,当新增资源时,只需要编辑资源的标签,无需批量更改权限策略。本文以RAM用户为例。
支持基于标签授权的资源类型
登录标签控制台,在标签支持的资源类型页面的资源类型鉴权列,查看各资源类型是否支持基于标签的访问控制。
工作原理
基于标签限制RAM用户权限的逻辑如下图所示。
自定义权限策略中是通过条件(Condition)指定授权的标签,标签支持的Condition如下:
Condition | 说明 |
| 请求中传递的标签信息。即用户在调用API的时候,请求参数里面必须携带的标签。 |
| 请求访问的资源上绑定的标签信息。即用户在操作某个资源的时候,资源上必须具备的标签。 |
工作流程
创建并绑定标签。
创建自定义权限策略。
在RAM控制台创建自定义权限策略,在策略的Condition元素中配置标签授权条件。具体操作,请参见创建自定义权限策略。
例如:以下权限策略表示允许对绑定了标签
owner:alice
和environment:production
的ECS实例进行管理操作。{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }
创建RAM用户并授权。
最佳实践
云服务 | 标签授权示例 |
云服务器ECS | |
弹性容器实例ECI | |
弹性伸缩ESS | |
服务器迁移中心SMC | |
云数据库RDS |