本文介绍如何为 RAM 用户启用智能体沙箱控制台登录、创建并授予 RAM 权限策略,以及验证授权结果。
RAM 用户访问智能体沙箱(Agent Sandbox)控制台前,需要启用控制台登录,并获得相应资源的操作权限。通过自定义 RAM 权限策略,可以限定用户能够管理的 Team、API Key、Template、Sandbox 和 Volume 等资源。
通过阿里云 OpenAPI、SDK 或 CLI 调用公开接口时,也需要授予对应的 RAM 权限。
前提条件
所属阿里云账号已开通智能体沙箱服务。
已创建目标 RAM 用户,创建方法参见快速入门:创建RAM用户并授权。
操作者为阿里云账号(主账号)或具有管理 RAM 用户登录设置、创建权限策略和为用户授权这三项权限的 RAM 身份。
步骤一:启用控制台登录
已启用控制台登录的用户可跳过此步骤。详细操作参见管理RAM用户登录设置。
登录 RAM 控制台,选择,单击目标 RAM 用户名称。
在认证管理页签的登录信息区域,单击启用控制台登录。
开启控制台访问,设置登录密码,并按企业要求配置首次登录重置密码和多因素认证,单击确定。
步骤二:创建权限策略
根据用户的工作范围选择策略,并只保留所需权限:
用户需要执行的工作 | 授权范围 |
统一管理账号下的智能体沙箱资源。 | 智能体沙箱全部操作和资源。 |
管理某个项目或环境。 | 指定 Team 及其子资源。 |
仅执行特定操作。 | 所需 API 对应的操作和资源。 |
Action 指定允许执行的操作;Resource 指定允许操作的资源;Condition 指定策略生效的条件,例如限定地域或资源组。
以下示例中的 <region> 为资源所在地域,<account-id> 为资源所属阿里云账号 UID,<team-id> 为目标 Team ID。使用前请替换为实际值。
管理全部智能体沙箱资源
适用于负责账号内全部智能体沙箱资源的平台管理员。以下策略授予智能体沙箱全部操作权限,覆盖账号下的全部地域:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "sandbox:*",
"Resource": "*"
}
]
}如需限定地域,可将 Resource 改为 acs:sandbox:<region>:<account-id>:*。该策略仅授予智能体沙箱权限;访问其他云服务需要单独授权。
管理指定 Team
适用于管理某个项目或环境的人员。以下策略允许操作指定 Team 及其下的资源:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "sandbox:*",
"Resource": [
"acs:sandbox:<region>:<account-id>:teams/<team-id>",
"acs:sandbox:<region>:<account-id>:teams/<team-id>/*"
]
}
]
}第一条 ARN 对应 Team 本身,第二条对应 Team 下的子资源。此策略包含目标 Team 的修改和删除权限,但不授予创建其他 Team 的权限。
控制台中的 Team 列表和账号信息查询需要额外的查询权限,上述指定 Team 策略不包含这些权限。请按文末的 RAM Action 清单补充所需查询权限。按资源组授权 Team 列表查询时,用户可以看到该资源组内的 Team 列表;其他 Team 的操作权限仍需单独授予。
按操作精确授权
根据用户需要执行的操作,从文末的 RAM Action 清单选择所需权限,并通过资源 ARN 限定操作范围。Action 和 Resource 需要同时匹配;API 名称与 RAM Action 不一定相同,应以清单中的 Action 为准。
按资源组限制权限
资源组不是 ARN 的路径组成部分。需要限定资源组时,在权限策略的 Condition 元素中使用 acs:ResourceGroupId 条件键;资源所属组以 Team 的资源组为准,其下的 Template、Sandbox、API Key、Volume 等资源沿用该归属。
以下示例在 Team 级授权的基础上,用 Condition 元素把权限限定到指定资源组:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "sandbox:GetTeam",
"Resource": "acs:sandbox:<region>:<account-id>:teams/<team-id>",
"Condition": {
"StringEquals": {
"acs:ResourceGroupId": "<resource-group-id>"
}
}
}
]
}遇到权限不足时,请核对当前操作所需的 Action、目标资源 ARN,以及策略中的地域和资源组条件。
在 RAM 控制台保存策略
在 RAM 控制台,选择,单击创建权限策略。
选择脚本编辑,输入调整后的 JSON 策略,单击确定。
在创建权限策略对话框,输入策略名称(例如
SandboxTeamAccess)和备注,单击确定。
详细操作参见创建自定义权限策略。
步骤三:为 RAM 用户添加权限
在 RAM 控制台,选择。
找到目标 RAM 用户,单击操作列的新增授权。
资源范围选择账号级别,确认授权主体为目标 RAM 用户。
在权限策略中选择自定义策略,搜索并选中上一步创建的策略。
单击确认新增授权,完成授权。
此处选择账号级别,各策略授予的权限仍受其 Resource 和 Condition 限制。详细操作参见管理RAM用户的权限。
步骤四:登录并验证
使用目标 RAM 用户登录阿里云控制台,进入智能体沙箱控制台。登录方法参见RAM用户登录阿里云控制台。
切换到已授权资源所在的地域和资源组,选择目标 Team。
验证所需的查询和管理操作是否可用,并确认未授权的操作或资源仍被拒绝访问。
若无法登录,请检查控制台登录设置;若登录后提示权限不足,请核对当前身份、地域、资源组,以及策略中的操作和资源范围。用户从其他策略或用户组获得的权限也会参与鉴权;验证精细授权时,应一并检查这些授权。
相关文档
通过阿里云 SDK 或 CLI 调用接口,参见阿里云 SDK & API 说明。
通过 E2B SDK、E2B CLI 或兼容 API 使用 Sandbox 时,使用智能体沙箱 API Key 鉴权,参见创建 API Key。
Sandbox 访问存储等云服务所需的 RAM 角色及其权限,参见配置 RAM 角色。
RAM Action 清单
本节列出资源 ARN 表达式,并按资源类型列出操作所需的 RAM Action。各接口的调用说明参见 Sandbox API 门户中的公开接口文档。
资源 ARN
ARN 的基本格式为:
acs:sandbox:<region>:<account-id>:<resource-path><account-id> 为资源所属阿里云账号 UID,不是 RAM 用户 ID;<team-id>、<template-id>、<volume-id> 分别填写对应资源的 ID。Sandbox 授权中的 <template-id> 使用所属 Template 的实际 ID,不填写 Template 别名或 Sandbox ID。
资源范围 | ARN 表达式 |
全部资源 |
|
指定账号和地域的全部智能体沙箱资源 |
|
指定账号全部地域的智能体沙箱资源 |
|
账号内所有 Team |
|
指定 Team |
|
指定 Team 下的全部子资源 |
|
Team 内所有 Template |
|
指定 Template |
|
Team 内所有 Sandbox |
|
某 Template 下的 Sandbox |
|
Team 内所有 API Key |
|
Team 内所有 Volume |
|
指定 Volume |
|
Team 内所有 Quota |
|
Team 内所有 Template Cache |
|
指定 Template Cache |
|
下表列出各资源类型匹配账号内所有该类资源的 ARN。各接口是否支持跨 Team 查询,请以 Sandbox API 门户中对应接口的请求参数说明为准;要求提供 teamID 的接口仍须填写该参数,账号级 ARN 授权不能替代必填参数。仅需管理某个 Team 时,应优先使用上表的 Team 级范围。
资源范围 | ARN 表达式 |
账号内所有 Template |
|
账号内所有 Sandbox |
|
账号内所有 API Key |
|
账号内所有 Volume |
|
账号内所有 Quota |
|
账号内所有 Template Cache |
|
账号级 ARN 与指定资源 ARN 对应不同的请求范围。只有某个资源的查询权限,不代表可以列出账号内所有该类资源。下列各表按资源类型列出操作对应的 RAM Action 和用途;对于支持 teamID 的接口,仅具有 Team 级权限时应提供目标 Team ID。
Team 管理
RAM Action | 用途 |
| 创建 Team。 |
| 查询 Team 列表。 |
| 查询 Team 详情。 |
| 更新 Team 配置。 |
| 删除 Team。 |
sandbox:ListTeams 使用账号内所有 Team 的 ARN,不能通过单个 Team ARN 授权列表查询。按资源组限制查询时,需要在请求中指定对应的 resourceGroupID。sandbox:UpdateTeam 请求的 resourceGroupID 用于变更 Team 所属资源组,该操作会同时检查源资源组和目标资源组的权限。
API Key 管理
RAM Action | 用途 |
| 创建 API Key。 |
| 查询 API Key 列表。 |
| 查询 API Key 详情。 |
| 更新 API Key 配置。 |
| 重置 API Key。 |
| 删除 API Key。 |
API Key 的 RAM 授权粒度为 Team,即使查询、更新或删除某个 API Key,也使用 apikeys/*。更新请求包含 permissionPolicy 或 expectedPolicyVersion 时,需同时具备 sandbox:UpdateApiKey 和 sandbox:CreateApiKey 权限。
Template 管理
RAM Action | 用途 |
| 创建 Template 并提交构建。 |
| 查询 Team 下的 Template 列表。 |
| 查询 Template 详情。 |
| 更新 Template 配置。 |
| 删除 Template。 |
Template Cache 管理
RAM Action | 用途 |
| 创建 Template Cache。 |
| 查询 Template Cache 列表。 |
| 查询 Template Cache 详情。 |
| 删除 Template Cache。 |
Template Cache(模板镜像缓存)的 ARN 最后一段使用 <template-id>。Template Cache 与 Template 使用不同的资源路径和 Action,不能用 Template 权限替代 Template Cache 权限。
Sandbox 管理
RAM Action | 用途 |
| 创建 Sandbox。 |
| 查询 Sandbox 列表。 |
| 查询 Sandbox 详情。 |
| 暂停 Sandbox。 |
| 恢复 Sandbox。 |
| 释放 Sandbox。 |
| 更新 Sandbox 的超时时间。 |
Sandbox 按所属 Template 授权,资源路径为 teams/<team-id>/templates/<template-id>/*,不支持按单个 Sandbox ID 限定权限。
Volume 管理
RAM Action | 用途 |
| 创建 Volume。 |
| 查询 Volume 列表。 |
| 查询 Volume 详情。 |
| 更新 Volume 配置。 |
| 删除 Volume。 |
指定 Volume 的 ARN 使用 <volume-id>,不是挂载时引用的 Volume 名称。创建和列表查询通常使用 Team 内所有 Volume 的 ARN;按 ID 查询、更新和删除使用指定 Volume ARN。
Quota 管理
RAM Action | 用途 |
| 查询主账号的 Quota 列表。 |
| 查询指定 Team 的 Quota。 |
| 更新指定 Team 的 Quota。 |
| 删除指定 Team 的 Quota。 |
账号功能配置
RAM Action | 用途 |
| 查询账号功能配置。 |