tencent cloud

云市场

产品动态
产品简介
产品概述
应用看板介绍
购买指南
用户指南
新手指引
应用商店应用使用指南
应用看板使用指南
服务商指南
上架流程概述
云市场入驻流程
制作和管理安装包
商品管理
订单管理
用户应用实例
常见问题
用户相关问题
Marketplace 政策
隐私协议
数据处理和安全协议
Tencent Cloud Marketplace User Agreement
Tencent Cloud Marketplace Products Cooperation Agreement
Tencent Cloud Marketplace End User License Agreement(Standard Version)
Marketplace Product Cancellation and Refund Rules
联系我们
词汇表

定义应用权限策略

PDF
聚焦模式
字号
最后更新时间: 2026-01-30 17:02:53

概述

云市场支持软件进程在运行时角色 调用云 API,通过定义该角色的权限策略,可精细控制进程所拥有的云权限,满足客户对权限管控的需要。典型场景:
校验软件 LICENSE 状态。
在应用中访问对象存储 COS 桶,限制只能访问指定的存储桶(比如用户安装时选择的存储桶)。
在应用中对运行资源实施巡检,自动重启故障节点。

方案说明

您只需要在 package.yaml 文件中定义权限策略语法,即可控制应用的权限范围。

声明方式

package.yaml 文件中通过 role.policy 声明权限策略,语法和 CAM 权限策略一致,详情参见 CAM 权限策略语法结构。以下是一个示例:
args:
- name: app_cos
label: 选择存储桶
widget: cos-bucket-select

role:
policy:
version: "2.0"
statement:
# 权限 1:支持 LICENSE 校验
- action:
- cloudapp:DescribeLicense
resource: "*"
effect: allow
# 权限 2:支持重启应用实例标签下的 CVM
- action:
- cvm:RebootInstances
resource: "*"
condition:
"for_any_value:string_equal":
"qcs:tag":
- "CloudappId&${var.cloudapp_id}"
effect: "allow"
# 权限 3:支持访问安装时选中的 COS 存储桶
- action:
- "cos:*"
resource:
- "qcs::cos:${var.app_cos.region}:uid/${var.app_cos.app_id}:${var.app_cos.bucket}/*"
- "qcs::cos:${var.app_cos.region}:uid/${var.app_cos.app_id}:${var.app_cos.bucket}/"
effect: allow
注意:
通过 role.policy 声明权限策略遵循「所见即所得」的原则,运行时角色具有的所有权限都需要在 package.yaml 中显性声明。

在策略语法中使用变量

在策略中支持使用两类变量:系统变量安装参数,上述示例中:
权限 2 的示例中,使用了 var.cloudapp_id 系统变量,实现按标签授权。
权限 3 的示例中,使用了 var.app_cos 安装参数,实现资源级授权。

升级到新的策略语法

说明:
新的权限策略生成方案会向前兼容,原来通过 scopes.cloudAPI 声明的权限依然生效。
新的权限声明语法提供了更精细的权限控制,强烈建议您升级到新的声明语法,通过 role.policy 来声明权限策略。
原来的版本通过 scopes.cloudAPI 声明运行时角色具有的权限,示例如下:
scopes:
cloudAPI:
- cvm:DescribeInstances
以上的声明语法升级后如下:
role:
policy:
version: "2.0"
statement:
- action:
- cvm:DescribeInstances
- cloudapp:DescribeLicense
resource: "*"
effect: allow
升级过程中需要注意:
老版本默认添加 cloudapp:DescribeLicense 接口到权限策略,无需显性声明。新版本中,运行时角色的权限仅包含显性声明的接口,您需要在 role.policy 中显性声明 cloudapp:DescribeLicense,否则应用无法 对接 License
云市场 License 检查接口已升级,如果应用内校验接口已升级,请声明 DescribeLicense,若应用内还在使用 VerifyLicense 接口,则继续声明成 VerifyLicense。
使用新的语法之后,原来的 scopes.cloudAPI 字段需要删除。

完整示例

可以参见 自定义应用权限策略 演示说明。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈