本文为您介绍 Serverless Cloud Framework 的几种授权方式以及通过配置子账号权限进行实际操作演示。
前提条件
授权方式
扫码一键授权
通过
scf deploy
命令进行部署时,您可以通过扫描二维码,一键授权并快速部署,扫码授权后,会生成临时密钥信息(过期时间为60分钟)写入当前目录下的 .env
文件中:TENCENT_APP_ID=xxxxxx #授权账号的 AppIdTENCENT_SECRET_ID=xxxxxx #授权账号的 SecretIdTENCENT_SECRET_KEY=xxxxxx #授权账号的 SecretKeyTENCENT_TOKEN=xxxxx #临时 token
说明:
本地密钥授权
为了避免扫码授权过期进行重复授权,您可以采用密钥授权方式。在部署的根目录下创建
.env
文件,并配置腾讯云的 SecretId 和 SecretKey 信息:# .envTENCENT_SECRET_ID=xxxxxxxxxx #您账号的 SecretIdTENCENT_SECRET_KEY=xxxxxxxx #您账号的 SecretKey
说明:
永久密钥配置
通过
scf credentials
指令,您可以快速设置全局密钥信息并永久保存。该指令必须在已经创建好的 SCF 项目下进行配置,请确保您已经通过 scf init
或手动创建好带有 serverless.yml
的项目。全部指令
scf credentials 管理全局用户授权信息set 存储用户授权信息--secretId / -i (必填)腾讯云 CAM 账号 secretId--secretKey / -k (必填)腾讯云 CAM 账号 secretKey--profile / -n {name} 授权名称,默认为 "default"--overwrite / -o 覆写已有授权名称的密钥remove 移除用户授权信息--profile / -n {name} (必填)授权名称list 查看用户授权信息
配置全局授权信息
# 通过默认 profile 名称配置授权信息$ scf credentials set --secretId xxx --secretKey xxx# 通过指定 profile 名称配置授权信息$ scf credentials set --secretId xxx --secretKey xxx --profile profileName1# 更新指定 profile 名称里的授权信息$ scf credentials set --secretId xxx --secretKey xxx --profile profileName1 --overwrite
删除全局授权信息
$ scf credentials remove --profile profileName1
查看当前所有授权信息
$ scf credentials list
通过全局授权信息部署
# 通过默认 profile 部署$ scf deploy# 通过指定 profile 部署$ scf deploy --profile newP# 忽略全局变量,扫码部署$ scf deploy --login
子账号权限配置
配置步骤
如果您的操作账号为腾讯云子账号,没有默认操作权限,则需要主账号(或拥有授权操作的子账号)进行如下授权操作:
1. 在 CAM 用户列表 页,选取对应子账号,单击授权。
![](https://qcloudimg.tencent-cloud.cn/image/document/c9f1fe6eafb43a9abd12afb1b0a47830.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/c9f1fe6eafb43a9abd12afb1b0a47830.png)
2. 在关联策略页面,搜索并选中
QcloudSLSFullAccess
,单击确定,完成授予子账号 Serverless Cloud Framework 所有资源的操作权限。![](https://qcloudimg.tencent-cloud.cn/image/document/958ecbb75e7ad123068b045680e81d76.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/958ecbb75e7ad123068b045680e81d76.png)
3. 在 CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。
![](https://qcloudimg.tencent-cloud.cn/image/document/105277a4133d520ed61907a70f5a031b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/105277a4133d520ed61907a70f5a031b.png)
4. 单击关联策略,在添加策略页面单击从策略列表中选取策略关联 > 新建自定义策略。
关联策略页面:
![](https://qcloudimg.tencent-cloud.cn/image/document/2ed5cfdf8ed9050fd2fab7ce3fb3f80b.png)
新建策略页面:
![](https://qcloudimg.tencent-cloud.cn/image/document/66544b44a2767f626096ff7e04b1a562.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/2ed5cfdf8ed9050fd2fab7ce3fb3f80b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/66544b44a2767f626096ff7e04b1a562.png)
5. 选择按策略语法创建 > 空白模板,填入如下内容,注意角色参数替换为您的主账号 UIN:
{"version": "2.0","statement": [{"action": ["cam:PassRole"],"resource": ["qcs::cam::uin/${填入账号的 uin}::roleName/scf_QcsRole"],"effect": "allow"},{"resource": ["*"],"action": ["name/sts:AssumeRole"],"effect": "allow"}]}
6. 完成自定义策略配置后,回到第 4 步的授权页面,搜索刚刚创建的自定义策略,单击下一步> 确定,即可授予子账号 scf_QcsRole 的操作权限,此时,您的子账号应该拥有一个自定义策略和一个 QcloudSLSFullAccess 的预设策略,可以完成 Serverless Framework 的正常使用。
![](https://qcloudimg.tencent-cloud.cn/image/document/d5659d87e7496b59ee90afb5a8034ad8.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/d5659d87e7496b59ee90afb5a8034ad8.png)
说明:
scf_QcsRole 角色权限列表
策略 | 描述 |
QcloudCOSFullAccess | COS(对象存储)全读写访问权限。 |
QcloudSCFFullAccess | SCF(云函数)全读写权限。 |
QcloudSSLFullAccess | SSL 证书(SSL)全读写访问权限。 |
QcloudTCBFullAccess | TCB(云开发)全读写权限。 |
QcloudAPIGWFullAccess | APIGW(API 网关)全读写权限。 |
QcloudVPCFullAccess | VPC(私有网络)全读写权限。 |
QcloudMonitorFullAccess | Monitor(云监控)全读写权限。 |
QcloudSLSFullAccess | sls(Serverless Cloud Framework)全读写权限。 |
QcloudCDNFullAccess | CDN(内容分发网络)全读写权限。 |
QcloudCKafkaFullAccess | CKafka(消息队列 CKafka)全读写权限。 |
QcloudCodingFullAccess | CODING DevOps 全读写访问权限。 |
QcloudPostgreSQLFullAccess | 云数据库 PostgreSQL 全读写访问权限。 |
QcloudCynosDBFullAccess | 云数据库 CynosDB 全读写访问权限。 |
QcloudCLSFullAccess | 日志服务(CLS)全读写访问权限。 |
QcloudAccessForscfRole | 该策略供 Serverless Cloud Framework(sls)服务角色(scf_QCSRole)进行关联,用于 SCF 一键体验功能访问其他云服务资源。包含访问管理(CAM)相关操作权限。 |
子账号关联 CODING 账号
关联步骤
1. 再次确认您的子账号已完成 QcloudCODINGFullAccess 策略的添加。
2. 使用子账号登录 CODING 控制台,选择 腾讯云子账号 登录。![](https://qcloudimg.tencent-cloud.cn/image/document/514e566af49d2b416649c3967c6f3dd5.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/514e566af49d2b416649c3967c6f3dd5.png)
3. 输入腾讯云子账号信息,并完成登录。![](https://qcloudimg.tencent-cloud.cn/image/document/6d541f5d18f040e9da8872901a8af3af.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/6d541f5d18f040e9da8872901a8af3af.png)
4. 单击 个人信息,选择 个人账户设置,单击 绑定设置,在第三方服务绑定-腾讯云中,完成子账号的关联,完成关联的页面展示如下:
![](https://qcloudimg.tencent-cloud.cn/image/document/7e9c763a3e3fc057709093a560fb6858.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/7e9c763a3e3fc057709093a560fb6858.png)
注意:
如使用子账号登录时,提示“您已被锁定,如需解锁请联系管理员”,请按照如下步骤解锁:
1. 使用管理员账户登录,选择 团队设置中心 - 全局设置 - 成员管理 模块。
2. 在成员列表中找到需解锁的团队成员,单击 更多,选择 解锁成员。
![](https://qcloudimg.tencent-cloud.cn/image/document/61158c473d77940326cfa431b5602c24.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/61158c473d77940326cfa431b5602c24.png)