配置阿里云 CLI 工具

更新时间:
复制 MD 格式

本文介绍如何为数字员工配置阿里云 CLI 工具,使数字员工能够通过 aliyun 命令调用阿里云产品 API,以及如何验证配置是否生效。

前提条件

配置阿里云 CLI 工具需要满足以下权限要求:

RAM 用户权限

当前登录账号需具备读取 RAM 角色策略的权限,否则进入工具执行页面时会提示"RAM 权限校验失败,无法操作配置",阿里云 CLI 配置将变为只读状态。请联系主账号添加以下权限:

  • ram:GetRole

  • ram:ListPoliciesForRole

  • ram:GetPolicyVersion

RAM 角色权限

配置阿里云 CLI 工具前,请确认数字员工关联的 RAM 角色已授予对应产品的 API 权限。只有 RAM 角色中已存在的 Action 权限,才会在工具配置界面中显示可选。

重要

阿里云 CLI 工具的配置基于 RAM 权限体系,而非直接对应 API 工具名称。当您需要为某个工具授权时,不能简单地将工具名作为 RAM Action 使用。

请通过以下步骤查找正确的 RAM Action:

  1. 识别目标工具:确定需要授权的 CLI 工具名称(如 aliyun elasticsearch ListAllNode)。

  2. 查阅 OpenAPI 文档:访问 阿里云 OpenAPI 门户,搜索对应的 API 名称(如 ListAllNode)。

  3. 获取真实 RAM Action:在 API 文档页面的"授权信息"章节,表格中“操作”列的值就是RAM Action。

  4. 在 RAM 中授权:使用查到的真实 RAM Action 在 RAM 角色策略中进行授权。

示例

假设您需要授权 aliyun elasticsearch ListAllNode 工具:

  • 错误做法:直接授予 elasticsearch:ListAllNode 权限 → 授权失败,因为该 RAM Action 不存在。

  • 正确做法:查阅 Elasticsearch 的 OpenAPI 文档,发现 ListAllNode 接口实际需要的 RAM Action 是 elasticsearch:DescribeInstance,在 RAM 角色策略中授予该权限后,工具即可正常使用。

配置方式

  1. 登录STAROps 控制台

  2. 在左侧导航栏,单击数字员工

  3. 数字员工列表中,找到目标数字员工,单击其名称进入详情页。

  4. 选择设置页签,点击执行策略,启用阿里云 CLI

  5. 启用后,进入工具规则配置。支持以下两种编辑方式:

可视化编辑

  1. 选择可视化编辑模式。

  2. 单击添加规则

  3. 在规则配置中,选择目标产品(如 Ess - 弹性伸缩)。

  4. RAM Action 区域,选择授权范围:

    • 全部 API:允许数字员工调用该产品所有已授权的 API。

    • 指定 RAM Action:单击选择 Action 勾选特定操作,或单击从 RAM 导入自动导入 RAM 角色中该产品的已有权限。

  5. 设置执行方式

    • 自动执行:数字员工判断需要调用时直接执行,无需用户逐次确认。

    • 每次询问:每次调用前向用户确认,适用于写操作或敏感操作。

  6. 单击确定完成规则创建。

脚本编辑

  1. 选择脚本编辑模式,直接编写 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>

  2. 配置完成后,设置执行方式(自动执行 / 每次询问)。

  3. 单击确定完成配置。

验证配置

配置完成后,通过以下方式验证阿里云 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 角色的权限约束。

请按以下步骤排查:

  1. 确认数字员工关联的 RAM 角色已授予目标 API 对应的 RAM Action。例如执行 aliyun ecs RunCommand 需要 ecs:RunCommand 权限,查找 API 真实 RAM Action 的方法请参见本文“前提条件”中的“RAM 角色权限”。

  2. 确认目标 RAM Action 是否在默认角色的权限范围内。数字员工默认关联服务关联角色 AliyunServiceRoleForSTAROps,其系统策略 AliyunServiceRolePolicyForSTAROps 仅包含只读权限(如 ecs:List*),不包含 ecs:RunCommand 等写操作权限,因此涉及写操作的命令在默认权限下会被拒绝。

说明

服务关联角色存在以下限制:

  • 服务关联角色不支持附加自定义策略,尝试附加时会返回 NotSupport.ServiceLinkedRole 错误。

  • 数字员工的角色下拉框仅显示默认服务关联角色 AliyunServiceRoleForSTAROps,暂不支持更换为自定义 RAM 角色。