背景
最近有很多小伙伴提到自己在对子账号进行授权时不知道该如何进行操作,同时相信很多使用访问管理的用户在进行子账号操作时也会遇到没有权限的报错提示。对于初次接触的小伙伴,在腾讯云官网的文档查看操作方法时可能又不知道如何下手。今天就给大家分享一篇简单易懂的CAM(访问管理)操作指南,希望能帮助大家轻松解决CAM日常操作的问题。
NO.1 什么是CAM策略设置?
如果把账号理解成一个大型的仓库,那对应不同的服务就像是仓库里不同货物的小隔间,子账号和协作者就类似于仓库的管理员和使用者。但对于一个刚生成的子账号来说,这个大型的仓库对这个子账号完全关闭的(deny),这时需要CAM(访问管理)来做通行证的发放,针对不同的子账号设置不同的权限策略,就相当于是告诉这些仓库的管理员,哪些小仓库是你可以进去的,哪些小仓库是你不能进去的,哪些小仓库你可以搬运里面的东西,哪些仓库你只能看不能动。有了这些权限的划分,云上资源的管理会更加得清晰方便。
NO.2 如何通过页面报错快速执行CAM策略设置?
在这里相信大家会遇到和我一开始一样的疑问,权限管理设置相当复杂,不同的权限又会互相冲突,而且自定义策略又要牵扯到计算机语言,是不是很让人头疼?这里分享一个相对简单的使用思路。
1、假设现在子账号需要进行资源管理,以访问服务器为例,如果直接登录子账号去执行这个操作,会看到如下图页面提示的报错:
[request id:b667xxxx-bxxc-4xxf-xxxx-aaxxxxxxxe1]you are not authorized to perform operation (cvm:DescribeInstances) resource (qcs::cvm:sh:uin/1000xxxxxx93:instance/*) has no permission (b66789c4)
2、那么接下来,我们可以先退出,登录主账号然后打开访问管理-自定义策略:
3、选择按策略生成器创建:
4、依次将报错中的信息粘贴复制在如下图的位置:
[request id:b667xxxx-bxxc-4xxf-xxxx-aaxxxxxxxe1]you are not authorized to perform operation (cvm:DescribeInstances) resource (qcs::cvm:sh:uin/1000xxxxxx93:instance/*) has no permission (b66789c4)
服务(service):即你想授权的这项资源或者对应的产品,注意搜索的时候最好输入中文简称
操作(Action):需要执行的操作,只需要将报错中perform operation (cvm:DescribeInstances) 的DescribeInstances复制粘贴然后选择对应的名称即可。
资源(resource):仍然是将报错中resource (qcs::cvm:sh:uin/1000xxxxxxx93:instance/*) 的qcs::cvm:sh:uin/1000xxxxxxx93:instance/*复制粘贴到此即可。
5、点击下一步,然后即可看到自动生成的策略语句:
6、完成后将生成的自定义策略关联到子账号即可。
PS:我们可以利用这个非常人性化的页面报错,去不断地给子账号进行更加细化的授权,总之当需要进行授权的时候,就先执行对应的操作,等待报错后通过报错信息来快速设置一个匹配的策略即可。
NO.3 如果设置后策略没有生效怎么办?
在遇到此问题时,需要先理解策略执行的相关逻辑。如上图所示:默认情况下,所有请求都将被拒绝。
CAM 会检查当前用户关联的所有策略,判断策略是否匹配。
Ø 判断是否匹配 deny 策略,“是”则最终判定为 deny ,不允许访问云资源;“否”则进行下一步判断。
Ø 判断是否匹配 allow 策略,“是”则最终判断为 allow ,允许访问云资源;“否”则最终判定为 deny,不允许访问云资源。
总结
简单来讲,子账号有多个策略的情况下,只要其中有一条策略设置是deny,对应的这条操作不管有多少个allow运行访问都是无法生效的。所以当大家在遇到权限设置无法生效时,建议可以先看下其他关联策略是不是有deny的情况。
此外,CAM目前支持管理的产品还在添加中,如果遇到部分策略设置无法操作,建议先看下此产品是否支持CAM进行访问哦:https://cloud.tencent.com/document/product/598/10588