1. 接口描述
接口请求域名: tke.tencentcloudapi.com 。
通过 CAM 策略强制节点池安全配置
创建原生节点池(CreateNodePool)接口已接入 CAM 条件鉴权,会根据请求参数计算出一组条件键(Condition Key)并传入 CAM 鉴权。您可以在 CAM/SCP 策略中基于这些条件键配置 deny 规则,从而强制约束节点池的安全配置(如必须开启磁盘加密、安全加固等)。
支持的条件键
| 条件键 | 含义 | 取值 | 取值判定说明 |
|---|---|---|---|
tke:NodePoolType |
节点池类型 | Native / External |
取请求的节点池类型,未指定时默认为 Native |
tke:SystemDiskEncrypted |
系统盘是否加密 | true / false |
系统盘加密属性为 ENCRYPT(大小写不敏感)时为 true,否则为 false |
tke:AllDataDisksEncrypted |
所有数据盘是否都已加密 | true / false |
全部数据盘加密属性均为 ENCRYPT 时为 true;未配置数据盘时也为 true;只要有任一数据盘未加密即为 false |
tke:SecurityAgentEnabled |
是否开启安全加固(Security Agent) | true / false |
开启安全加固时为 true,否则为 false |
说明:所有条件键的取值均为字符串
"true"/"false",请在策略中使用字符串形式匹配。
使用方式
在 CAM 策略中使用 bool_equal 匹配条件键值为 "false",配合 effect: deny,即可实现"未满足安全配置则拒绝创建节点池"的强制约束。
示例一:强制开启安全加固
创建节点池时若未开启安全加固(tke:SecurityAgentEnabled = "false"),则拒绝。
{
"version": "2.0",
"statement": [
{
"effect": "deny",
"action": ["tke:CreateNodePool"],
"resource": ["*"],
"condition": {
"bool_equal": {
"tke:SecurityAgentEnabled": "false"
}
}
}
]
}
示例二:强制数据盘加密
创建节点池时若存在未加密的数据盘(tke:AllDataDisksEncrypted = "false"),则拒绝。
{
"version": "2.0",
"statement": [
{
"effect": "deny",
"action": ["tke:CreateNodePool"],
"resource": ["*"],
"condition": {
"bool_equal": {
"tke:AllDataDisksEncrypted": "false"
}
}
}
]
}
示例三:强制系统盘加密
创建节点池时若系统盘未加密(tke:SystemDiskEncrypted = "false"),则拒绝。
{
"version": "2.0",
"statement": [
{
"effect": "deny",
"action": ["tke:CreateNodePool"],
"resource": ["*"],
"condition": {
"bool_equal": {
"tke:SystemDiskEncrypted": "false"
}
}
}
]
}
注意事项
- 上述条件键在未配置任何 CAM 策略时不会影响节点池创建,仅在您显式配置了对应
deny策略时才生效。 - 如需同时强制多项安全配置,必须在同一策略的
statement中配置多条deny规则,不能将多个条件键写入同一条condition。 tke:AllDataDisksEncrypted在无数据盘场景下取值为true(不存在未加密的数据盘),因此仅约束"已配置的数据盘必须加密",不会强制要求必须挂载数据盘。
默认接口请求频率限制:20次/秒。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
| 参数名称 | 必选 | 类型 | 描述 |
|---|---|---|---|
| Action | 是 | String | 公共参数,本接口取值:CreateNodePool。 |
| Version | 是 | String | 公共参数,本接口取值:2022-05-01。 |
| Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
| ClusterId | 是 | String | 集群 ID 示例值:cls-4h43fuxj |
| Name | 是 | String | 节点池名称 示例值:testnodepool |
| Type | 是 | String | 节点池类型 示例值:Native、External |
| Labels.N | 否 | Array of Label | 节点 Labels |
| Taints.N | 否 | Array of Taint | 节点污点 |
| Tags.N | 否 | Array of TagSpecification | 节点标签 |
| DeletionProtection | 否 | Boolean | 是否开启删除保护 示例值:true |
| Unschedulable | 否 | Boolean | 节点是否默认不可调度 示例值:false |
| Native | 否 | CreateNativeNodePoolParam | 原生节点池创建参数(Type字段设置为Native时需填写) |
| Annotations.N | 否 | Array of Annotation | 节点 Annotation 列表 |
3. 输出参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| NodePoolId | String | 节点池 ID 示例值:np-4h43fuxj |
| RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 创建 TKE 节点池
创建 TKE 节点池
输入示例
POST / HTTP/1.1
Host: tke.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateNodePool
<公共请求参数>
{
"DeletionProtection": true,
"Name": "nodepool",
"Tags": [
{
"ResourceType": "machine",
"Tags": [
{
"Value": "",
"Key": ""
}
]
}
],
"Labels": [
{
"Name": "",
"Value": ""
}
],
"ClusterId": "cls-3g5rc2ts",
"Taints": [
{
"Value": "",
"Key": "",
"Effect": ""
}
],
"Unschedulable": true,
"Type": ""
}
输出示例
{
"Response": {
"RequestId": "604fea70-fcc3-43b5-b17c-d2a5c8df4c16",
"NodePoolId": "np-7cxt3lom"
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Java: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for PHP: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Go: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Node.js: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for .NET: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for C++: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Ruby: CNB, GitHub, Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
| 错误码 | 描述 |
|---|---|
| FailedOperation | 操作失败。 |
| InternalError | 内部错误。 |
| InvalidParameter | 参数错误。 |
| OperationDenied | 操作被拒绝。 |
| ResourceNotFound | 资源不存在。 |