有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

访问控制概述

如果您在使用碳引擎等服务时,服务由不同的人管理,但都共享您的云账号密钥,将存在以下问题:
您的密钥由多人共享,泄密风险高。
您无法限制其他人访问您的某些集群或者任务资源,易产生误操作造成安全风险。
此时,您就可以通过子账号实现不同的人管理不同的服务,来规避以上的问题。默认情况下,子账号没有使用盘查实例的权限。因此,我们就需要创建策略来允许子账号使用他们所需要的资源或权限。 访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用 CAM 创建子用户、用户组和角色,并通过策略控制其访问范围。CAM 支持用户和角色 SSO 能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
您最初创建的腾讯云主账号,拥有整个账号全部腾讯云服务和资源的完全访问权限,建议您保护好主账号的凭证信息,日常使用子用户或角色进行访问,并开启多因素校验和定时轮换密钥。
当您使用 CAM 的时候,可以将策略与一个用户或一组用户关联起来,策略能够授权或者拒绝用户使用指定资源完成指定任务。有关 CAM 策略的更多相关基本信息,请参照 策略语法。有关 CAM 策略的更多相关使用信息,请参照 策略。 若您不需要对子账户进行碳引擎相关资源的访问管理,您可以跳过此章节。跳过这些不会影响您对文档中其余部分的理解和使用。

入门

碳引擎策略必须授权使用一个或多个碳引擎操作或者必须拒绝使用一个或多个碳引擎操作。同时还必须指定可以用于操作的资源(可以是全部资源,某些操作也可以是部分资源),策略还可以包含操作资源所设置的条件。
碳引擎部分 API 操作不支持资源级权限,这意味着,对于该类 API 操作,您不能在使用该类操作的时候指定某个具体的资源来使用,而必须要指定全部资源来使用。

可授权的资源类型

资源级权限指的是能够指定用户对哪些资源具有执行操作的能力。碳引擎的集群或者应用支持资源级权限,即表示针对支持资源级权限的碳引擎操作,控制何时允许用户执行操作或者允许用户使用的特定资源。 在访问管理(Cloud Access Management,CAM)中可授权的资源类型如下:
资源类型
授权策略中的资源描述方法
qcs::tan::$account:instance/*
碳引擎的盘查实例 介绍了当前支持资源级权限的碳引擎 API 操作,以及每个操作支持的资源和条件密钥。设置资源路径时,您需要将$account等变量参数修改为您实际的参数信息,同时您也可以在路径中使用 * 通配符。相关操作示例可参见 访问管理示例
注意:表中未列出的碳引擎 API 操作即表示该碳引擎 API 操作不支持资源级权限。针对不支持资源级权限的碳引擎 API 操作,您仍可以向用户授予使用该操作的权限,但是策略语句的资源元素必须指定为 *。

碳引擎的实例相关操作

API 操作
资源路径
CreateFactorUse
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeFactorUse
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateFactorUseFromLib
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyFactorUseAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteFactorUse
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
UploadDataSource
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
SaveDataSource
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
SaveCustomValue
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifySubFormulaFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifySubFormulaAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyPlanAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyEntryFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyDataSource
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyEntryAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyCategoryAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DownloadDataSourceTemplate
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeTasks
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeSubFormulas
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeRecommendParams
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribePlans
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeInstances
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeInstanceResultStatistics
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeFactorKeyword
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntryResultElement
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntryResultCurve
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntryResultCalendar
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntryFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeDataSources
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntries
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeCustomValues
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeCategories
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteTask
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteSubFormulas
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteRecommendParamsUse
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeletePlans
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteEntries
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteDataSource
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteCustomValue
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteCategories
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteBlockNode
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateTask
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateSubFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateRecommendParamUse
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreatePlan
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateEntry
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateCategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateBlockNode
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopySubFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopyPlan
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopyCategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopyEntry
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CheckEntryFormula
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
RerunTask
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateYear
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopyYear
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifySubcategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DeleteSubcategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CopySubcategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateSubcategory
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeSubCategories
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeCarbonCosPreSignedURL
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeCarbonCosSessionToken
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateEntryParamFill
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyEntryParamName
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeEntryParamFillValue
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
CreateEntryParamFillValue
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeInstanceSubCategoryTimeDistribution
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeInstanceCategoryTimeDistribution
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
ModifyDataSourceAttribute
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId
DescribeDataSource
qcs::tan::$account:instance/* qcs::tan::$account:instance/$InstanceId

操作级访问

API 操作
说明
DescribeInstanceResultCurve
获取实例结果历史曲线
DescribeFactorLibs
查询因子库列表
DescribeRecommendParamsUse
查询公式使用的参数推荐值
DescribeRecommendCategories
查询推荐参数值分类
CreateBlockNodes
批量创建节点
CreateBlockNodeAttribute
创建节点属性
CreateBlockNodeRecords
创建节点记录
CreateNodeGroup
创建节点分组
DeleteBlockNodeAttribute
删除节点属性
DescribeBlockNodeCreateBys
获取节点列表创建者
DescribeBlockNodes
获取节点列表
DescribeBlockNode
查询节点
DeleteNodeGroup
删除节点分组
DescribeEnumerations
查询枚举列表
DescribeNodeGroup
查询节点分组
DescribePrefixUnits
查询单位词头列表
DescribeUnits
查询单位列表
ModifyBlockNodeGroups
批量设置节点分组
ModifyBlockNodeAttribute
修改节点属性
ModifyBlockNode
编辑节点
ModifyNodeGroup
修改节点分组
MoveNodeGroup
移动节点分组
DescribeTemplates
查询模板
ModifyGroupAttribute
修改碳引擎盘查分组名称
DescribeInstanceStat
查询实例统计
DescribeGroups
获取盘查组列表
DescribeGroupResultCurve
获取分组累计排放曲线
DeleteGroups
删除盘查组
CreateGroup
创建盘查组
DescribeCosPreSignedURL
获取存储对象 preSignedURL
DescribeTemplateStandards
获取行业模板标准
DescribeGroupSubCategoryDistribution
获取盘查组子类排放分布
DescribeGroupCategoryDistribution
获取盘查组大类排放分布

授权策略语法

策略语法

CAM 策略:
{
"version":"2.0",
"statement":
[
{
"effect":"effect",
"action":["action"],
"resource":["resource"],
"condition": {"key":{"value"}}
}
]
}
版本 version 是必填项,目前仅允许值为"2.0"。
语句 statement 是用来描述一条或多条权限的详细信息。该元素包括 effect、action、resource,condition 等多个其他元素的权限或权限集合。一条策略有且仅有一个 statement 元素。
1. 影响 effect 描述声明产生的结果是“允许”还是“显式拒绝”。包括 allow(允许)和 deny(显式拒绝)两种情况。该元素是必填项。
2. 操作 action 用来描述允许或拒绝的操作。操作可以是 API (以 name 前缀描述)或者功能集(一组特定的 API,以 permid 前缀描述)。该元素是必填项。
3. 资源 resource 描述授权的具体数据。资源是用六段式描述。每款产品的资源定义详情会有所区别。碳引擎中的资源ID形如:tan-ins-xxxxxx。
4. 生效条件 condition 描述策略生效的约束条件。条件包括操作符、操作键和操作值组成。条件值可包括时间、IP 地址等信息。有些服务允许您在条件中指定其他值。该元素是非必填项。

碳引擎的操作

在 CAM 策略语句中,您可以从支持 CAM 的任何服务中指定任意的 API 操作。对于碳引擎,请使用以 name/tan: 为前缀的 API。例如:name/tan:DescribeInstances。 如果您要在单个语句中指定多个操作的时候,请使用逗号将它们隔开,如下所示:
"action":["name/tan:action1","name/tan:action2"]
您也可以使用通配符指定多项操作。例如,您可以指定名字以单词 "Describe" 开头的所有操作,如下所示:
"action":["name/tan:Describe*"]
如果您要指定碳引擎中所有操作,请使用 * 通配符,如下所示:
"action"["name/tan:*"]

碳引擎的资源路径

每个 CAM 策略语句都有适用于自己的资源。 资源路径的一般形式如下:
qcs:project_id:service_type::account:resource
project_id:描述项目信息,仅为了兼容 CAM 早期逻辑,无需填写。
service_type:产品简称,如 tan。
account:资源拥有者的根账号信息,如 uin/164256472。
resource:各产品的具体资源详情,如 instance/instance_id1 或者 instance/*
例如,您可以使用特定实例 (tan-ins-xxxxxx) 在语句中指定它,如下所示:
"resource":[ "qcs::tan::uin/164256472:instance/tan-ins-xxxxxx"]
您还可以使用 * 通配符指定属于特定账户的所有实例,如下所示:
"resource":[ "qcs::tan::uin/164256472:instance/*"]
您要指定所有资源,或者如果特定 API 操作不支持资源级权限,请在 Resource 元素中使用 * 通配符,如下所示:
"resource": ["*"]
如果您想要在一条指令中同时指定多个资源,请使用逗号将它们隔开,如下所示为指定两个资源的例子:
"resource":["resource1","resource2"]
下表描述了碳引擎能够使用的资源和对应的资源描述方法。 在下表中,$为前缀的单词均为代称。其中,account 指代的是账户 ID。
资源
授权策略中的资源描述方法
碳引擎盘查实例
qcs:tan::$account:instance/$InstanceId