访问管理实践

最近更新时间:2024-07-22 10:42:51

我的收藏

访问管理概述

访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用 CAM 创建子用户、用户组和角色,并通过策略控制其访问范围。CAM 支持用户和角色 SSO 能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。

功能

主账号资源的授权

可以将主账号的资源授权给其他人员,包括子账号或者是其它主账号,而不需要分享主账号相关的身份凭证。

精细化的权限管理

可以针对不同的资源为不同的人员授予不同的访问权限。例如,可以允许某些子账号拥有某个对象存储(Cloud Object Storage,COS)存储桶的读权限,而另外一些子账号或者主账号可以拥有某个 COS 存储对象的写权限等。上述资源、访问权限和用户都可以批量打包。

最终一致性

CAM 目前支持腾讯云的多个地域,通过复制策略数据,实现在跨地域的数据同步,虽然 CAM 策略的修改会及时提交,不过跨地域的策略同步会导致策略生效的延迟,同时 CAM 使用缓存来提高性能(目前是一分钟缓存),更新需要在缓存过期后生效。

应用场景

企业子账号权限管理
企业内不同岗位的员工需要拥有该企业云资源的最小化访问权限。例如,某个企业拥有很多云资源,包括 CVM 、 VPC 实例、 CDN 实例、 COS 存储桶和对象等。该企业拥有很多员工,包括开发人员、测试人员、运维人员等。 部分开发人员需要拥有其所在项目相关的开发机云资源的读写权限,测试人员需要拥有其所在项目的测试机云资源的读写权限,运维人员负责机器的购买和日常运营。当企业员工职责或参与项目发生变更,将终止对应的权限。
不同企业之间的权限管理
不同企业间需要进行云资源的共享。例如,某企业拥有很多云资源,该企业希望能专注产品研发,而将云资源运维工作授权给其他运营企业来实施。当运营企业的合同终止时,将收回对应的管理权限。

策略语法

策略(policy)由若干元素构成,用来描述授权的具体信息。核心元素包括委托人(principal)、操作(action)、资源(resource)、生效条件(condition)以及效力(effect)。如需了解更多详情,请参见 访问策略语言概述
说明:
策略语法在描述上没有顺序要求。操作(action)元素需区分英文大小写。
对于策略没有特定条件约束的情况, condition 元素是可选项。
在控制台中不允许写入 principal 元素,仅支持在策略管理 API 中和策略语法相关的参数中使用 principal。

核心元素

核心元素
描述
是否必填
版本 version
描述策略语法版本。目前仅允许值为2.0
委托人 principal
用于描述策略授权的实体。包括用户(开发商、子账号、匿名用户)、用户组
仅支持在策略管理 API 中策略语法相关的参数中使用该元素
语句 statement
用于描述一条或多条权限的详细信息。该元素包括 action 、 resource 、 condition 、 effect 等多个其他元素的权限或权限集合。一条策略有且仅有一个 statement 元素
操作 action
用于描述允许或拒绝的操作。操作可以是单个 API 操作或者多个 API 操作的集合。操作(action)元素需区分英文大小写,例如 action 为 name/cos:GetService
资源 resource
用于描述授权的具体数据。资源用六段式描述。每款产品的资源定义详情会有所区别。有关如何指定资源的信息,请参阅您编写的资源声明所对应的产品文档
生效条件 condition
用于描述策略生效的约束条件。条件包括操作符、操作键和操作值组成。条件值可包括时间、IP 地址等信息。有些服务允许您在条件中指定其他值
效力 effect
用于描述声明产生的结果,包括 allow(允许)和 deny(显式拒绝)两种情况

策略限制

限制项
限制值
一个主账号中的用户组数
300
一个主账号中的子账号数
1000
一个主账号中的角色数
1000
一个子账号可加入的用户组数
10
一个协作者可协作的主账号数
10
一个用户组中的子账号数
100
一个主账号可创建的自定义策略数
1500
直接关联到一个用户、用户组或角色的策略数
200
一个策略语法最大字符数
4096

策略示例

以下策略示例描述为:允许属于主账号 ID 为100000000001(APPID 为1250000000)下的子账号 ID 100000000011, 对北京地域的存储桶 examplebucket-bj 和广州地域的存储桶 examplebucket-gz 下的对象 exampleobject,在访问 IP 为10.*.*.10/24网段时,拥有上传对象下载对象的权限。
{
"version": "2.0",
"principal": {
"qcs": ["qcs::cam::uin/100000000001:uin/100000000011"]
},
"statement": [{
"effect": "allow",
"action": ["name/cos:PutObject", "name/cos:GetObject"],
"resource": ["qcs::cos:ap-beijing:uid/1250000000:examplebucket-bj-1250000000/*",
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-gz-1250000000/exampleobject"
],
"condition": {
"ip_equal": {
"qcs:ip": "10.1.1.0/24"
}
}
}]
}