一、主账号配置过程
创建子账号配置角色,并为该角色赋予相应策略。以部署 API 网关触发的 SCF 函数为例:
二、创建子账号角色
1. 主账号登录 CAM 控制台,在左侧导航栏中,单击角色。
2. 在角色页面中,单击新建角色,并选择角色载体为腾讯云产品服务。
3. 在支持角色的服务中,选择 Serverless Framework (sls),单击下一步。
4. 选择预设策略 QcloudCOSFullAccess、QcloudAPIGWFullAccess、QcloudSCFFullAccess,单击下一步。
5. 配置角色标签。详情见 基于标签管理项目资源。
6. 填写角色名称(如 role),单击完成。
单击角色名,可以查看配置完成后角色页面:
三、配置角色策略
1. 在左侧导航栏,单击策略进入策略管理页。
2. 在策略管理页,单击新建自定义策略,并选择按策略语法创建。
3. 在策略模板中,选择空白模板,单击下一步。
4. 填写策略名和内容,并单击完成。
绑定角色策略,其中 “resource” 参数填入需要给子账号绑定的角色六段式:
{ "version": "2.0", "statement": [ { "action": [ "cam:PassRole" ], "resource": [ # 角色六段式(例:"qcs::cam::uin/123456789:roleName/test-role1") ], "effect": "allow" } ]}
注意:说明:
注意:角色资源描述可以在角色信息页面获取。
四、关联子用户策略
1. 在左侧导航栏,单击用户 > 用户列表,进入用户列表页。
2. 选择需要授权的子用户,单击操作列的授权。
3. 从策略列表中筛选出创建的策略与预设策略 QcloudSLSFullAccess ,单击确定,将策略赋予目标子账号,完成角色绑定。
4. (可选)如认为 QcloudSLSFullAccess 权限过大,你也可以自己创建自定义策略,为指定资源赋予 SLS 调用权限,策略模板如下:
{ "version": "2.0", "statement": [ { "action": [ "scf:*" ], "resource": [ #填入项目资源名称(例:"qcs::scf:ap-guangzhou::appname/*") ], "effect": "allow" } ]}
注意:说明:
注意:项目资源描述严格按照 CAM 规范进行,你也可以对资源再进行进一步细化,具体到函数名称或者 stage 名称。
五、子账号配置过程
本地创建 Serverless 项目,在配置文件 serverless.yaml 中添加全局配置项 configRole,输入角色名称,后台通过权限检测后即可完成部署:
# serverless.ymlcomponent: scf # (必填) 引用 component 的名称,当前用到的是 tencent-scf 组件name: scfdemo # (必填) 该组件创建的实例名称org: test # (可选) 用于记录组织信息,默认值为你的腾讯云账户 appidapp: scfApp # (可选) 该 SCF 应用名称stage: dev # (可选) 用于区分环境信息,默认值是 devglobalOptions: configRole: test-role1 # (可选) 填入指定角色名称inputs: name: scfFunctionName src: ./src runtime: Nodejs10.15 # 云函数的运行时环境。除 Nodejs10.15 外,可选值为:Python2.7、Python3.6、Nodejs6.10、Nodejs8.9、PHP5、PHP7、Go1、Java8。 region: ap-guangzhou handler: index.main_handler events: – apigw: name: serverless_api parameters: protocols: – http – https serviceName: description: The service of Serverless Cloud Framework environment: release endpoints: – path: /index method: GET
如你使用的是函数 URL,请将events修改为:
events: – http: parameters: netConfig: enableIntranet: true enableExtranet: true qualifier: $DEFAULT authType: NONE
六、子账号添加权限
子账号如果需要添加权限,需要将角色名称与需要添加的策略名称一起提供给主账号,主账号在 CAM 控制台 > 角色中完成权限添加。