腾讯云 Serverless 应用中心 - 账号和权限配置
文档简介:
本文为您介绍 Serverless Cloud Framework 的几种授权方式以及通过配置子账号权限进行实际操作演示。
前提条件:
Serverless Cloud Framework 帮助您将项目快速部署到腾讯云 Serverless 应用中心,因此在部署前,请确认您已经 注册腾讯云账号 并完成 实名认证。
前提条件
Serverless Cloud Framework 帮助您将项目快速部署到腾讯云 Serverless 应用中心,因此在部署前,请确认您已经 注册腾讯云账号 并完成 实名认证。
授权方式
扫码一键授权
通过 scf deploy 命令进行部署时,您可以通过扫描二维码,一键授权并快速部署,扫码授权后,会生成临时密钥信息(过期时间为60分钟)写入当前目录下的 .env 文件中:
TENCENT_APP_ID=xxxxxx #授权账号的 AppIdTENCENT_SECRET_ID=xxxxxx #授权账号的 SecretIdTENCENT_SECRET_KEY=xxxxxx #授权账号的 SecretKeyTENCENT_TOKEN=xxxxx #临时 token
一键授权时获取的权限详情请参见 scf_QcsRole 角色权限列表。
说明
如果您的账号为腾讯云子账号,扫码部署前需要主账号先进行策略授权配置。配置详情请参见 子账号权限配置。
本地密钥授权
为了避免扫码授权过期进行重复授权,您可以采用密钥授权方式。在部署的根目录下创建 .env 文件,并配置腾讯云的 SecretId 和 SecretKey 信息:
# .envTENCENT_SECRET_ID=xxxxxxxxxx #您账号的 SecretIdTENCENT_SECRET_KEY=xxxxxxxx #您账号的 SecretKey
SecretId 和 SecretKey 可以在 API 密钥管理 中获取 。
说明
为了账号安全性,密钥授权时建议使用子账号密钥。子账号必须先被授予相关权限才能进行部署。配置详情请参见 子账号权限配置。
永久密钥配置
通过 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 用户列表 页,选取对应子账号,单击授权。


2. 在弹出的窗口内,搜索并选中 QcloudSLSFullAccess,单击确定,完成授予子账号 Serverless Cloud Framework 所有资源的操作权限。


3. 在 CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。


4. 单击关联策略,在添加策略页面单击从策略列表中选取策略关联 > 新建自定义策略。
关联策略页面:

新建策略页面:



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 的正常使用。


说明
除了授权调用默认角色 scf_QcsRole 外,也可给子账号授权调用自定义角色。通过自定义角色中的细粒度权限策略,达到权限收缩的目的。详情请参见 指定操作角色配置。
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)相关操作权限
|