本文介绍如何基于最小权限原则,为不同职责的 RAM 用户配置 STAROps 自定义权限策略。
本文适用于已经了解基础权限配置流程的安全管理员和运维管理员。
开始前,建议先阅读权限配置,理解使用者和数字员工 RAM Role 这两个授权对象之间的关系,以及 ram:PassRole 在其中承担的委派控制作用。
设计原则
配置 STAROps 权限时,建议遵循以下原则:
按职责授权。管理员、普通运维人员、长期任务运营人员和审计人员应使用不同策略。
分离用户权限和数字员工运行权限。RAM 用户能使用 STAROps,不代表数字员工能访问所有数据;数字员工能访问数据,也不代表用户能在控制台查看数据。
收敛 ram:PassRole。建议指定到服务角色或 STAROps 专用自定义角色,不建议长期使用
Resource: "*"。按业务线隔离数字员工。不同业务线使用不同数字员工、不同 RAM Role 和不同数据访问范围。
只读优先。巡检、报告、告警分析等场景优先授予只读权限。
谨慎授权写操作。涉及云资源变更、告警修改、配置下发或脚本执行时,应配合人工确认、审计和回滚。
模板选择
模板 | 适用对象 | 说明 |
模板一:运维管理员 | 负责管理数字员工、会话、Skill 和产物的管理员 | 权限较大,生产环境需要收敛 |
模板二:普通运维人员 | 日常与数字员工对话、查看会话和产物的使用者 | 需要对目标数字员工 RAM Role 具备 |
模板三:按数字员工粒度授权 | 只允许使用或管理指定数字员工的团队成员 | 需要对指定数字员工 RAM Role 具备 |
模板四:长期任务运营人员 | 负责创建和维护长期任务的运维人员 | 需要对任务所选数字员工 RAM Role 具备 |
模板五:长期任务只读 | 审计或管理复盘人员 | 只查看任务、会话和产物 |
模板六:Deny 高危删除操作 | 需要额外防护删除操作的生产环境 | 与允许策略配合使用 |
以下模板基于线上帮助文档生成,可直接复制到 RAM 自定义权限策略中。模板中的 ram:PassRole 默认以服务角色 AliyunServiceRoleForCloudMonitor 为例;如果数字员工绑定自定义 RAM Role,请将 Resource 替换为对应 RoleArn。
模板一:运维管理员(数字员工、会话、Skill 全部权限)
适用于负责 STAROps 日常管理的运维管理员。该模板允许管理数字员工、Skill、会话和产物,并包含 ram:PassRole 示例。
不建议把该模板直接授予所有运维人员。生产环境应按业务线、数字员工 ID、Workspace 和 RoleArn 继续收敛。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:CreateDigitalEmployee",
"cms:GetDigitalEmployee",
"cms:ListDigitalEmployees",
"cms:UpdateDigitalEmployee",
"cms:DeleteDigitalEmployee",
"cms:CreateDigitalEmployeeSkill",
"cms:GetDigitalEmployeeSkill",
"cms:ListDigitalEmployeeSkills",
"cms:UpdateDigitalEmployeeSkill",
"cms:DeleteDigitalEmployeeSkill",
"cms:ListDigitalEmployeeSkillVersions",
"cms:CreateThread",
"cms:GetThread",
"cms:GetThreadData",
"cms:ListThreads",
"cms:UpdateThread",
"cms:DeleteThread",
"cms:GetArtifact",
"cms:ListArtifacts",
"cms:CreateChat"
],
"Resource": [
"acs:cms:*:*:digitalemployee/*",
"acs:cms:*:*:digitalemployee/*/skill/*",
"acs:cms:*:*:digitalemployee/*/thread/*",
"acs:cms:*:*:digitalemployee/*/artifact/*"
]
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:Service": [
"operation-platform.aliyuncs.com",
"cloudmonitor.aliyuncs.com"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"cms:ListWorkspaces",
"cms:GetWorkspace",
"cms:GetEntityStore",
"cms:GetEntityStoreData"
],
"Resource": [
"acs:cms:*:*:workspace/*",
"acs:cms:*:*:workspace/*/entitystore"
]
},
{
"Effect": "Allow",
"Action": [
"starops:CreateDigitalEmployee",
"starops:GetDigitalEmployee",
"starops:ListDigitalEmployees",
"starops:UpdateDigitalEmployee",
"starops:DeleteDigitalEmployee",
"starops:CreateDigitalEmployeeSkill",
"starops:GetDigitalEmployeeSkill",
"starops:ListDigitalEmployeeSkills",
"starops:UpdateDigitalEmployeeSkill",
"starops:DeleteDigitalEmployeeSkill",
"starops:ListDigitalEmployeeSkillVersions",
"starops:CreateThread",
"starops:GetThread",
"starops:GetThreadData",
"starops:ListThreads",
"starops:UpdateThread",
"starops:DeleteThread",
"starops:GetArtifact",
"starops:ListArtifacts",
"starops:CreateArtifactUploadToken",
"starops:GetArtifactDownloadUrl",
"starops:CreateChat"
],
"Resource": [
"acs:starops:*:*:digitalemployee/*",
"acs:starops:*:*:digitalemployee/*/skill/*",
"acs:starops:*:*:digitalemployee/*/thread/*",
"acs:starops:*:*:digitalemployee/*/artifact/*"
]
}
]
}
模板二:普通运维人员(仅对话和查看)
适用于日常使用 STAROps 的 SRE、DevOps 或应用负责人。该模板允许查看数字员工、发起对话、查看会话和产物,不允许创建、修改或删除数字员工。由于对话时需要使用自定义数字员工绑定的 RAM Role,因此需要同时授予 ram:PassRole。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:GetDigitalEmployee",
"cms:ListDigitalEmployees",
"cms:CreateChat",
"cms:CreateThread",
"cms:GetThread",
"cms:GetThreadData",
"cms:ListThreads",
"cms:GetArtifact",
"cms:ListArtifacts"
],
"Resource": [
"acs:cms:*:*:digitalemployee/*",
"acs:cms:*:*:digitalemployee/*/thread/*",
"acs:cms:*:*:digitalemployee/*/artifact/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:ListWorkspaces",
"cms:GetWorkspace",
"cms:GetEntityStore",
"cms:GetEntityStoreData"
],
"Resource": [
"acs:cms:*:*:workspace/*",
"acs:cms:*:*:workspace/*/entitystore"
]
},
{
"Effect": "Allow",
"Action": [
"starops:GetDigitalEmployee",
"starops:ListDigitalEmployees",
"starops:CreateThread",
"starops:GetThread",
"starops:GetThreadData",
"starops:ListThreads",
"starops:GetArtifact",
"starops:ListArtifacts",
"starops:CreateArtifactUploadToken",
"starops:GetArtifactDownloadUrl",
"starops:CreateChat"
],
"Resource": [
"acs:starops:*:*:digitalemployee/*",
"acs:starops:*:*:digitalemployee/*/thread/*",
"acs:starops:*:*:digitalemployee/*/artifact/*"
]
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:Service": [
"operation-platform.aliyuncs.com",
"cloudmonitor.aliyuncs.com"
]
}
}
}
]
}
模板三:按数字员工粒度授权
适用于按业务线、应用或团队隔离数字员工的场景。示例中用户只能访问指定数字员工及其 Skill、会话和产物,并只能传递该数字员工绑定的 RAM Role。
复制后请将示例中的数字员工 ID、Workspace 和资源范围替换为实际范围。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:ListDigitalEmployees",
"cms:GetDigitalEmployee",
"cms:UpdateDigitalEmployee",
"cms:CreateChat",
"cms:CreateThread",
"cms:GetThread",
"cms:GetThreadData",
"cms:ListThreads",
"cms:UpdateThread",
"cms:DeleteThread",
"cms:GetDigitalEmployeeSkill",
"cms:ListDigitalEmployeeSkills",
"cms:ListDigitalEmployeeSkillVersions",
"cms:GetArtifact",
"cms:ListArtifacts"
],
"Resource": [
"acs:cms:*:*:digitalemployee/ops-agent-a",
"acs:cms:*:*:digitalemployee/ops-agent-a/skill/*",
"acs:cms:*:*:digitalemployee/ops-agent-a/thread/*",
"acs:cms:*:*:digitalemployee/ops-agent-a/artifact/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:ListWorkspaces",
"cms:GetWorkspace",
"cms:GetEntityStore",
"cms:GetEntityStoreData"
],
"Resource": [
"acs:cms:*:*:workspace/*",
"acs:cms:*:*:workspace/*/entitystore"
]
},
{
"Effect": "Allow",
"Action": [
"starops:GetDigitalEmployeeSkill",
"starops:ListDigitalEmployeeSkills",
"starops:ListDigitalEmployeeSkillVersions",
"starops:CreateThread",
"starops:GetThread",
"starops:GetThreadData",
"starops:ListThreads",
"starops:UpdateThread",
"starops:DeleteThread",
"starops:GetArtifact",
"starops:ListArtifacts",
"starops:CreateArtifactUploadToken",
"starops:GetArtifactDownloadUrl",
"starops:CreateChat"
],
"Resource": [
"acs:starops:*:*:digitalemployee/ops-agent-a",
"acs:starops:*:*:digitalemployee/ops-agent-a/skill/*",
"acs:starops:*:*:digitalemployee/ops-agent-a/thread/*",
"acs:starops:*:*:digitalemployee/ops-agent-a/artifact/*"
]
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:Service": [
"operation-platform.aliyuncs.com",
"cloudmonitor.aliyuncs.com"
]
}
}
}
]
}
模板四:长期任务运营人员(Mission 管理)
适用于负责创建、更新和观察长期任务的运营人员。长期任务必须选择绑定 RAM Role 的自定义数字员工;任务能访问的数据和资源,仍由该数字员工 RAM Role 决定。因此,长期任务运营人员也需要对任务所选数字员工 RAM Role 具备 ram:PassRole。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"starops:CreateMission",
"starops:GetMission",
"starops:ListMissions",
"starops:UpdateMission",
"starops:DeleteMission",
"starops:ListTasks",
"starops:ListDigitalEmployees",
"starops:ListThreads"
],
"Resource": [
"acs:starops:*:*:mission/*",
"acs:starops:*:*:digitalemployee/*",
"acs:starops:*:*:digitalemployee/*/thread/*"
]
},
{
"Effect": "Allow",
"Action": [
"starops:GetArtifact",
"starops:ListArtifacts"
],
"Resource": "acs:starops:*:*:digitalemployee/*/artifact/*"
},
{
"Effect": "Allow",
"Action": [
"cms:CreateMission",
"cms:GetMission",
"cms:ListMissions",
"cms:UpdateMission",
"cms:DeleteMission",
"cms:ListTasks",
"cms:ListDigitalEmployees",
"cms:ListThreads"
],
"Resource": [
"acs:cms:*:*:mission/*",
"acs:cms:*:*:digitalemployee/*",
"acs:cms:*:*:digitalemployee/*/thread/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:GetArtifact",
"cms:ListArtifacts"
],
"Resource": "acs:cms:*:*:digitalemployee/*/artifact/*"
},
{
"Effect": "Allow",
"Action": [
"cms:ListWorkspaces",
"cms:GetWorkspace"
],
"Resource": "acs:cms:*:*:workspace/*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:Service": [
"operation-platform.aliyuncs.com",
"cloudmonitor.aliyuncs.com"
]
}
}
}
]
}
模板五:长期任务只读
适用于安全审计、管理复盘和任务结果检查。该模板只允许查看长期任务、任务状态、数字员工、会话和产物,不允许创建、更新或删除长期任务。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"starops:GetMission",
"starops:ListMissions",
"starops:ListTasks",
"starops:ListDigitalEmployees",
"starops:GetDigitalEmployee",
"starops:ListThreads"
],
"Resource": [
"acs:starops:*:*:mission/*",
"acs:starops:*:*:digitalemployee/*",
"acs:starops:*:*:digitalemployee/*/thread/*"
]
},
{
"Effect": "Allow",
"Action": [
"starops:GetArtifact",
"starops:ListArtifacts"
],
"Resource": [
"acs:starops:*:*:digitalemployee/*/artifact/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:GetMission",
"cms:ListMissions",
"cms:ListTasks",
"cms:ListDigitalEmployees",
"cms:GetDigitalEmployee",
"cms:ListThreads"
],
"Resource": [
"acs:cms:*:*:mission/*",
"acs:cms:*:*:digitalemployee/*",
"acs:cms:*:*:digitalemployee/*/thread/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:GetArtifact",
"cms:ListArtifacts"
],
"Resource": [
"acs:cms:*:*:digitalemployee/*/artifact/*"
]
},
{
"Effect": "Allow",
"Action": [
"cms:ListWorkspaces",
"cms:GetWorkspace"
],
"Resource": [
"acs:cms:*:*:workspace/*"
]
}
]
}
PassRole 授权路径
ram:PassRole 控制 RAM 用户能否把某个 RAM Role 传递给 STAROps 使用,不授予数据访问权限。授予时请按以下路径处理:
先确认数字员工绑定的 RoleArn。
如果数字员工选择服务角色 ServiceRoleForCloudMonitor,Resource 使用
acs:ram::*:role/aliyunserviceroleforcloudmonitor。如果数字员工选择自定义 RAM Role,Resource 使用该角色的 RoleArn,例如
acs:ram::*:role/starops-production-sre。在 RAM 控制台创建自定义权限策略,并将策略授权给需要使用该数字员工的 RAM 用户或用户组。
模板二、模板三、模板四都需要包含这类 PassRole 授权;模板五只做只读审计,通常不授予。
服务角色 ServiceRoleForCloudMonitor 的 PassRole 示例:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram::*:role/aliyunserviceroleforcloudmonitor",
"Condition": {
"StringEquals": {
"acs:Service": [
"operation-platform.aliyuncs.com",
"cloudmonitor.aliyuncs.com"
]
}
}
}
]
}
数字员工最佳实践
自定义权限策略只解决"RAM 用户能做什么"。数字员工本身也需要按最小权限设计,否则容易出现一个高权限 Agent 被多个团队复用的问题。
按场景拆分数字员工
建议将数字员工按职责拆分,而不是创建一个全能数字员工:
只读巡检数字员工:用于日志查询、指标分析、告警诊断和报告生成。
变更执行数字员工:用于受控执行云产品配置更新、资源变更或脚本操作。
长期任务数字员工:用于周期性巡检、报告和持续分析。
业务线数字员工:按支付、搜索、物流等业务线隔离数据和操作范围。
不同数字员工应绑定不同 RAM Role。只读场景可优先选择服务角色 ServiceRoleForCloudMonitor;涉及更新云产品配置或资源变更时,请使用自定义 RAM Role,并只授予必要写权限。
按 RAM Role 收敛运行权限
数字员工绑定的 RAM Role 决定它运行时能访问哪些数据和资源。建议:
每个生产数字员工使用独立 RAM Role。
Role 命名体现业务线和职责,例如
starops-payment-readonly、starops-payment-change。按 Workspace、日志项目、资源组、地域或云产品资源范围收敛授权。
只读和写操作使用不同 RAM Role。
不把账号管理员 Role 或生产全量运维 Role 作为数字员工运行 Role。
按使用者收敛 PassRole
只给需要创建、更新或使用自定义数字员工的人授予。
Resource 指定到服务角色或 STAROps 专用自定义角色。
通过
acs:Service限定只能传递给 STAROps 相关服务。普通只读审计人员不授予
ram:PassRole。
长期任务单独治理
长期任务会异步执行,必须使用绑定 RAM Role 的自定义数字员工。建议:
长期任务使用专门的数字员工和 RAM Role。
巡检、报告类任务优先使用只读 RAM Role。
需要执行变更动作的长期任务,使用独立数字员工、独立 RAM Role 和人工确认流程。
定期审查长期任务绑定的数字员工和 RoleArn,避免任务长期持有过大的运行权限。
配置 MCP 和 AliyunCLI 时单独评估
系统内置员工不支持 MCP、AliyunCLI 等扩展配置。自定义数字员工启用这些能力前,建议确认:
工具能力是否必须开启。
工具能访问的云产品和资源范围是否受 RAM Role 限制。
高风险工具是否有人工确认、执行记录和回滚方案。
是否需要为工具型数字员工单独创建 RAM Role。
策略验证与排查
完成配置后,建议按以下顺序验证:
验证项 | 验证方法 | 重点检查 |
用户能否看到目标数字员工 | 登录 STAROps 查看数字员工列表 | Get/List 数字员工权限 |
用户能否发起会话 | 与目标数字员工对话 | CreateChat、CreateThread、GetThread 权限 |
用户能否创建长期任务 | 创建一个测试长期任务 | Mission Create/Update 权限 |
创建或更新数字员工是否 PassRole 失败 | 保存绑定 RoleArn 的数字员工 | RAM 用户 |
数字员工能否读取目标数据 | 查询目标 Workspace、日志或云资源 | 数字员工 RAM Role 权限策略 |
用户能否查看报告和产物 | 打开任务报告或会话产物 | Artifact Get/List 权限 |
排查时,先判断问题发生在用户操作阶段,还是数字员工运行阶段。用户操作失败,检查 RAM 用户权限;绑定或使用 Role 失败,检查 ram:PassRole;数字员工运行失败,检查 RAM Role 信任策略和权限策略。
发布前检查
发布到生产环境前,建议确认:
已将示例中的数字员工 ID、RoleArn、Workspace、日志项目替换为真实范围。
已删除不需要的 Action 和 Resource。
已避免在生产环境使用
Resource: "*"的ram:PassRole。已区分只读数字员工和变更执行数字员工。
已确认具备写操作能力的数字员工有人工确认、审计和回滚流程。
已为长期任务选择绑定 RAM Role 的自定义数字员工。
已使用 RAM 用户完成一次真实场景验证。