本文介绍如何为数字员工配置阿里云 CLI 工具,使数字员工能够通过 aliyun 命令调用阿里云产品 API,以及如何验证配置是否生效。
前提条件
配置阿里云 CLI 工具需要满足以下权限要求:
RAM 用户权限
当前登录账号需具备读取 RAM 角色策略的权限,否则进入工具执行页面时会提示"RAM 权限校验失败,无法操作配置",阿里云 CLI 配置将变为只读状态。请联系主账号添加以下权限:
ram:GetRoleram:ListPoliciesForRoleram:GetPolicyVersion
RAM 角色权限
配置阿里云 CLI 工具前,请确认数字员工关联的 RAM 角色已授予对应产品的 API 权限。只有 RAM 角色中已存在的 Action 权限,才会在工具配置界面中显示可选。
阿里云 CLI 工具的配置基于 RAM 权限体系,而非直接对应 API 工具名称。当您需要为某个工具授权时,不能简单地将工具名作为 RAM Action 使用。
请通过以下步骤查找正确的 RAM Action:
识别目标工具:确定需要授权的 CLI 工具名称(如
aliyun elasticsearch ListAllNode)。查阅 OpenAPI 文档:访问 阿里云 OpenAPI 门户,搜索对应的 API 名称(如
ListAllNode)。获取真实 RAM Action:在 API 文档页面的"授权信息"章节,表格中“操作”列的值就是RAM Action。
在 RAM 中授权:使用查到的真实 RAM Action 在 RAM 角色策略中进行授权。
示例
假设您需要授权 aliyun elasticsearch ListAllNode 工具:
错误做法:直接授予
elasticsearch:ListAllNode权限 → 授权失败,因为该 RAM Action 不存在。正确做法:查阅 Elasticsearch 的 OpenAPI 文档,发现
ListAllNode接口实际需要的 RAM Action 是elasticsearch:DescribeInstance,在 RAM 角色策略中授予该权限后,工具即可正常使用。
配置方式
登录STAROps 控制台。
在左侧导航栏,单击数字员工。
数字员工列表中,找到目标数字员工,单击其名称进入详情页。
选择设置页签,点击执行策略,启用阿里云 CLI。
启用后,进入工具规则配置。支持以下两种编辑方式:
可视化编辑
选择可视化编辑模式。
单击添加规则。
在规则配置中,选择目标产品(如 Ess - 弹性伸缩)。
在 RAM Action 区域,选择授权范围:
全部 API:允许数字员工调用该产品所有已授权的 API。
指定 RAM Action:单击选择 Action 勾选特定操作,或单击从 RAM 导入自动导入 RAM 角色中该产品的已有权限。
设置执行方式:
自动执行:数字员工判断需要调用时直接执行,无需用户逐次确认。
每次询问:每次调用前向用户确认,适用于写操作或敏感操作。
单击确定完成规则创建。
脚本编辑
选择脚本编辑模式,直接编写 JSON 格式的工具配置。
配置结构示例:
{ "enable": true, "statements": [ { "decision": "user_ack", "product": "Domain", "apiVersion": "2018-01-29", "actions": [ "domain:QueryDomain", "domain:QueryCommonInfo" ] } ] }字段
说明
enable是否启用阿里云 CLI,
true为启用decision执行方式:
allow为自动执行,user_ack为每次询问product产品名称(RAM Code 对应的产品标识,如
Ess)apiVersion产品 API 版本号
actions允许调用的 RAM Action 列表,格式为
<RAM Code>:<ActionName>配置完成后,设置执行方式(自动执行 / 每次询问)。
单击确定完成配置。
验证配置
配置完成后,通过以下方式验证阿里云 CLI 是否正常触发:
方式一:通过 Skill 触发
在 Skill 的 SKILL.md 文件中,显式指定使用 aliyun 命令执行查询或操作。数字员工在执行 Skill 时会自动调用对应的 CLI 工具。
示例 Skill 描述片段:
**Verify instance exists and get basic information:**
```bash
aliyun ecs describe-instances \
--biz-region-id <REGION_ID> \
--region <REGION_ID> \
--instance-ids '["<INSTANCE_ID>"]'
```方式二:在对话框中直接测试
在与数字员工的对话框中,直接输入 aliyun 命令进行测试:
aliyun ecs DescribeInstances --RegionId cn-hangzhou建议 测试阶段建议将待测命令对应的工具规则设置为每次询问模式,方便观察工具是否被正确触发,确认无误后再切换为自动执行。
常见问题
CLI 配置后命令执行失败
已在阿里云 CLI 的工具规则中授权目标 API,但数字员工执行命令后返回 Forbidden.RAM 错误(拒绝类型为 ImplicitDeny,当前身份为 aliyunserviceroleforstarops),说明数字员工关联的 RAM 角色缺少该 API 对应的 RAM Action 权限。工具规则只控制数字员工可以调用哪些 API,不会为 RAM 角色补充权限,实际调用仍受 RAM 角色的权限约束。
请按以下步骤排查:
确认数字员工关联的 RAM 角色已授予目标 API 对应的 RAM Action。例如执行
aliyun ecs RunCommand需要ecs:RunCommand权限,查找 API 真实 RAM Action 的方法请参见本文“前提条件”中的“RAM 角色权限”。确认目标 RAM Action 是否在默认角色的权限范围内。数字员工默认关联服务关联角色
AliyunServiceRoleForSTAROps,其系统策略AliyunServiceRolePolicyForSTAROps仅包含只读权限(如ecs:List*),不包含ecs:RunCommand等写操作权限,因此涉及写操作的命令在默认权限下会被拒绝。
服务关联角色存在以下限制:
服务关联角色不支持附加自定义策略,尝试附加时会返回
NotSupport.ServiceLinkedRole错误。数字员工的角色下拉框仅显示默认服务关联角色
AliyunServiceRoleForSTAROps,暂不支持更换为自定义 RAM 角色。