tencent cloud

文档反馈

权限管理

最后更新时间:2024-04-22 17:54:01
    本文为您介绍 Serverless Cloud Framework 的几种授权方式以及通过配置子账号权限进行实际操作演示。

    前提条件

    Serverless Cloud Framework 帮助您将项目快速部署到腾讯云 Serverless 应用中心,因此在部署前,请确认您已经 注册腾讯云账号 并完成 实名认证

    授权方式

    扫码一键授权

    通过 scf deploy 进行部署时,您可以通过扫描二维码,一键授权并快速部署,扫码授权后,会生成临时密钥信息(过期时间为 60 分钟)写入当前目录下的 .env 文件中:
    TENCENT_APP_ID=xxxxxx #授权账号的 AppId
    TENCENT_SECRET_ID=xxxxxx #授权账号的 SecretId
    TENCENT_SECRET_KEY=xxxxxx #授权账号的 SecretKey
    TENCENT_TOKEN=xxxxx #临时 token
    一键授权时获取的权限详情请参见 scf_QcsRole 角色权限列表
    说明:
    如果您的账号为腾讯云子账号,扫码部署前需要主账号先进行策略授权配置。配置详情请参见 子账号权限配置

    本地密钥授权

    为了避免扫码授权过期进行重复授权,您可以采用密钥授权方式。在部署的根目录下创建 .env 文件,并配置腾讯云的 SecretId 和 SecretKey 信息:
    # .env
    TENCENT_SECRET_ID=xxxxxxxxxx #您账号的 SecretId
    TENCENT_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. 在弹出的窗口内,搜索并选中 QcloudscfFullAccess,单击确定,完成授予子账号 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 的操作权限,此时,您的子账号应该拥有一个自定义策略和一个 QcloudscfFullAccess 的预设策略,可以完成 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 Framework)全读写权限
    QcloudCDNFullAccess
    CDN(内容分发网络)全读写权限
    QcloudCKafkaFullAccess
    CKafka(消息队列 CKafka)全读写权限
    QcloudCodingFullAccess
    CODING DevOps 全读写访问权限
    QcloudPostgreSQLFullAccess
    云数据库 PostgreSQL 全读写访问权限
    QcloudCynosDBFullAccess
    云数据库 CynosDB 全读写访问权限
    QcloudCLSFullAccess
    日志服务(CLS)全读写访问权限
    QcloudAccessForscfRole
    该策略供 Serverless Framework(sls)服务角色(scf_QCSRole)进行关联,用于 scf 一键体验功能访问其他云服务资源。包含访问管理(CAM)相关操作权限。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持