基于AI Skill的UCS多集群舰队策略治理合规最佳实践
UCS(华为云UCS)多集群舰队管理服务提供舰队级的集群纳管和分类分组能力,通过策略实例实现一致的合规治理。 本文介绍如何通过AI CLI工具加载“huawei-cloud-ucs-policy-governor”Skill,以一条提示词完成从发现策略定义到创建舰队组策略实例、启用策略执行、合规审计、逐步升级为deny的端到端治理完整流程。
前提条件
- 已安装AI CLI工具并配置华为云凭证环境变量:HUAWEI_CLOUD_AK、HUAWEI_CLOUD_SK、HUAWEI_CLOUD_REGION。
- 已安装hcloud CLI(7.2.2及以上版本),首次使用需执行“printf "y\n" | hcloud version”接受隐私声明。
- CCE集群或自管理Kubernetes集群已纳管到UCS,且已加入舰队组。本文的操作步骤假设读者已经拥有一个或多个已纳管到UCS的CCE集群或自管理集群,并已通过UCS控制台完成了集群纳管和舰队分组。 如果尚未完成,请先使用“huawei-cloud-ucs-cluster-onboarding-manager”Skill集群纳管到UCS,参考快速创建和管理容器舰队。
- “huawei-cloud-ucs-policy-governor”Skill采用预览优先设计:读操作(查询策略定义、查看执行状态)可立即执行,写操作(创建策略实例、启用策略执行、禁用策略)先返回预览方案,用户确认后再执行。
IAM权限要求
| API Action | 权限 | 用途 |
|---|---|---|
| ucs:clusterPolicyInstance:create | 创建策略 | 创建集群级策略实例 |
| ucs:clusterGroupPolicyInstance:create | 创建策略 | 创建舰队组级策略实例 |
| ucs:policyInstance:update | 更新策略 | 修改策略实例配置 |
| ucs:policyInstance:get | 获取策略 | 查看策略实例详情 |
| ucs:policyInstance:delete | 删除策略 | 删除策略实例 |
| ucs:policyInstance:list | 列出策略 | 列出所有策略实例 |
| ucs:policyDefinition:list | 列出定义 | 列出可用策略定义 |
| ucs:policyDefinition:get | 获取定义 | 查看策略定义详情 |
| ucs:clusterPolicy:enable | 启用策略 | 启用集群级策略执行 |
| ucs:clusterPolicy:disable | 禁用策略 | 禁用集群级策略执行 |
| ucs:clusterGroupPolicy:enable | 启用策略 | 启用舰队组级策略执行 |
| ucs:clusterGroupPolicy:disable | 禁用策略 | 禁用舰队组级策略执行 |
| ucs:policyJob:list | 列出任务 | 列出策略执行任务 |
| ucs:policyJob:get | 获取任务 | 查看策略执行任务详情 |
操作步骤
- 发现策略定义
创建策略实例前,需要先了解可用的策略定义,找到合适的constraintTemplateID。
在AI CLI中输入以下提示词即可开始:
我的集群已纳管到UCS,请帮我为生产舰队组创建一个安全基线策略实例, 先启用策略执行,从warn逐步升级到deny, 每个写操作先预览,我确认后再执行。
Skill首先会调用ListPolicyDefinitions, 返回所有可用的策略定义列表。策略定义按类别分为:
- 集群安全策略(ClusterSecurityPolicies):安全基线、Pod安全标准、特权容器限制
- 合规策略:CIS基准、合规审计、监管合规
- 资源策略:资源配额、资源限制、成本优化
- 网络策略:网络策略、入站/出站限制、服务网格规则

可以根据推荐筛选策略定义,Skill同时会评估集群纳管状态和舰队组归属情况,确认策略执行风险。
- 创建舰队组策略实例
确认策略定义后, Skill调用CreateClusterGroupPolicyInstance在舰队组上创建策略实例,设置enforcementAction=warn(初始建议使用 warn 模式,违规仅报告不阻止)。
Skill会预览方案,包含:
- 策略定义名称和作用范围
- 目标舰队组和成员集群列表
- 执行动作(warn)
- 策略参数配置
用户确认后Skill才执行创建操作。

创建策略实例必须使用正确的scope-specific操作:集群级使用CreateClusterPolicyInstance(参数 --clusterid),舰队组级使用CreateClusterGroupPolicyInstance(参数 --clustergroupid)。不存在通用的CreatePolicyInstance操作。
- 启用策略执行
策略实例创建后,需要启用策略执行才能使策略生效。Skill将调用EnableClusterGroupPolicy,自动启用策略。

启用策略也必须使用scope-specific操作:集群级使用EnableClusterPolicy(参数 --clusterid),舰队组级使用EnableClusterGroupPolicy(参数 --clustergroupid)。不存在通用的EnablePolicy操作。
- 查看执行任务状态
策略启用后,Skill调用ListPolicyJobs查看策略执行任务的状态,调用 ShowPolicyJob 查看具体的执行任务详情。
执行任务状态值:
- Success: 策略执行部署成功,合规检查已生效
- InProgress: 策略执行正在部署中,合规检查待启动
- Failed: 策略执行失败,需要查看任务详情定位问题

如果执行任务失败,Skill会提供诊断建议(如集群未纳管、舰队组无成员、IAM权限不足等)。
- 合规审计
策略执行成功后,进行合规审计确认舰队整体合规状态。Skill调用ListPolicyInstances查看所有策略实例状态,通过ListPolicyJobs和ShowPolicyJob查看合规审计结果。

如果发现违规,Skill会提供修复建议:
- 查看违规详情,定位受影响的Kubernetes资源
- 通过DownloadFederationKubeconfig获取集群访问凭证,在集群上修复违规
- 禁用策略 → 重新启用策略触发新的执行任务
- 确认新的执行任务状态为Success
- 策略升级 — warn → deny
修复违规并验证合规后,将策略的enforcementAction从warn升级为deny:
- 通过UpdatePolicyInstance将enforcementAction更新为deny(需提供policyinstanceid,Skill会先通过ShowPolicyInstance查询实例ID)
- 重新启用策略验证合规: 先用DisableClusterPolicy禁用策略,再用EnableClusterPolicy--retry=true 重新启用
- 再次查看执行任务状态,确认所有策略实例状态为Available,所有执行任务状态为Success

- 配置策略范围
策略创建完成后,可通过策略的命名空间范围和参数配置控制策略的精确行为。
在AI CLI中输入以下提示词更新策略范围:表1 作用范围配置方式 配置方式
说明
适用场景
限定命名空间
仅在指定命名空间中生效
安全基线策略,仅应用于关键命名空间
全命名空间
在所有命名空间生效
general 类型策略的默认行为,通用治理规则
不指定命名空间
由策略定义的targetKind决定
targetKind为Pod的策略生效在所有Pod
修改策略范围,排除kube-system等系统命名空间。


ListPolicyInstances和ListPolicyDefinitions不支持过滤参数,只返回全量数据。如需定位特定策略实例,提供policyinstanceid让Skill使用ShowPolicyInstance查看详情,再通过UpdatePolicyInstance更新参数配置。
常见问题诊断
当策略治理过程中遇到问题,可在AI CLI中直接描述现象,Skill会调用相应诊断工具返回结构化报告。
| 问题现象 | 诊断提示词 |
|---|---|
| 策略执行任务一直显示Failed | 策略执行任务状态显示Failed,请诊断。 |
| 策略实例创建失败 | 创建前先查看策略定义列表,找正确的constraintTemplateID。 |
| 集群未纳管到UCS | 请先纳管集群再启用策略执行。 |
| 舰队组没有成员集群 | 请先向舰队组添加集群。 |
| IAM权限不足 | 报IAM denied,请在IAM控制台创建自定义策略并授权。 |
| ListPolicyInstances结果和预期不符 | 我需要查看策略实例,查看实例ID。 |
| 策略实例已存在冲突 | 报409 Conflict,查看是否已注册。 |
| 策略实例需要更换目标范围 | 想更换策略的作用范围,需要先删除旧的再创建新的。 |
| 策略定义列表为空 | 请列出策略定义。 |
| 合规审计结果过时 | 请查看舰队合规状态。 |