账号和权限配置

最近更新时间:2020-05-22 12:58:32

当前,Serverless Framework 在部署项目时,需要通过账号中 SLS_QcsRole角色 授权才可正常部署。该角色中包含 Serverless Framework 在部署中所需要用到的关联产品的对应策略,可以分为主账号和子账号两种情况进行配置。

主账号权限配置

目前支持通过微信扫码和账号密钥配置两种方式进行授权,由于主账号拥有创建角色和绑定策略的权限,因此可以通过下列方式关联 SLS_QcsRole 并进行访问:

微信扫码授权

在 Serverless Framework CLI 中运行serverless deploy命令进行部署,如果当前目录下未配置账号授权信息,则会在 Serverless Framework CLI 弹出二维码,直接使用微信扫描进行授权部署。

$ serverless deploy 

x x x x x x
x         x
x QR CODE x
x         x
x x x x x x

Please scan QR code login from wechat. 
Wait login... 102s › Serverless › Closed 

当前 Serverless Framework 将获取以下权限:

  • COS 所有操作
  • SCF(云函数)全读写权限
  • TAG(标签)全读写权限
  • CAM(访问管理)查看角色权限
  • CAM(访问管理)创建角色权限
  • VPC(私有网络)只读权限
  • Monitor(云监控)只读权限
  • SLS(Serverless Framework)全读写权限
  • CDN(内容分发网络)全读写权限
注意:

SLS(Serverless Framework)全读写权限为新版本 Serverless Framework 新增的权限。如您使用旧版本的密钥进行部署,如希望切换至新版本能力,则需要删除密钥并重新登录。

账号密钥配置授权

如您希望配置持久的环境变量/密钥信息,不需要每次都进行扫码部署,也可以在项目目录下创建.env文件,将 SecretId 和 SecretKey 信息并保存。

# .env
TENCENT_SECRET_ID=123  //您的SecretId 
TENCENT_SECRET_KEY=123 //您的SecretKey

由于 Serverless Framework 在部署时会默认检测是否为中国用户,如果开发环境在中国境外地域,但希望使用中国版体验的 Serverless Framework,则可以在 .env 文件中增加下列配置,即可指定默认提供中国版体验,包括交互式的一键部署流程(参考 快速入门)等。

# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123
SERVERLESS_PLATFORM_VENDOR=tencent
说明:

子账号权限配置

针对子账号的权限配置,如果希望支持扫码授权部署,则要确保子账号具备创建角色和绑定角色策略的权限。可以为子账号增加预设策略 QcloudCamRoleFullAccessQcloudCamSubaccountsAuthorizeRoleFullAccess

如果不开通上述两个权限,也可以在 访问管理控制台 通过主账号配置增加 SLS_QcsRole 从而开通对 Serverless Framework 的资源访问能力,该角色的角色载体为 sls.cloud.tencent.com,主要包含如下策略授权:

  • QcloudSLSFullAccess
  • QcloudSSLFullAccess
  • QcloudMongoDBFullAccess
  • QcloudAPIGWFullAccess
  • QcloudElasticsearchServiceFullAccess
  • QcloudCKafkaFullAccess
  • QcloudSCFFullAccess
  • QcloudMonitorFullAccess
  • QcloudCOSFullAccess
  • QcloudCDBFullAccess

此外,需要为子账号的用户绑定一条自定义策略,确保该账号具有使用 Serverless Framework 产品的接口权限,提供两种授权方式示例,参考如下:

授予子账号 Serverless Framework 所有资源的操作权限

  1. CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。
  2. 单击【关联策略】,在添加策略页面单击【从策略列表中选取策略关联】。
  3. 搜索并关联 QcloudSLSFullAccess,单击【下一步】。
  4. 单击【确定】,即可授予子账号 Serverless Framework 所有资源的操作权限。
    策略语法如下:
    {
     "version": "2.0",
     "statement": [
         {
             "action": [
                 "sls:*"
             ],
             "resource": "*",
             "effect": "allow"
         }
     ]
    }

授予子账号 Serverless Framework 特定资源的操作权限

如果希望子账号仅对 Serverless Framework 某些特定资源有操作权限,可通过如下步骤操作:

  1. CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。
  2. 单击【关联策略】,在添加策略页面单击【从策略列表中选取策略关联】。
  3. 并单击【新建自定义策略】,按策略语法创建一条自定义策略并关联到用户,参考策略语法如下:
    {
     "version": "2.0",
     "statement": [
         {
             "action": [
                 "sls:*"
             ],
             "resource": "qcs::sls:ap-guangzhou::appname/${appname}/stagename/${stagename}",
             "effect": "allow"
         }
     ]
    }

配置完毕后,则子账号仅对 ${appname}${stagename} 下的 Serverless 应用具有操作权限。

目录