授权 RAM 用户访问控制台

更新时间:
复制 MD 格式

本文介绍如何为 RAM 用户启用智能体沙箱控制台登录、创建并授予 RAM 权限策略,以及验证授权结果。

RAM 用户访问智能体沙箱(Agent Sandbox)控制台前,需要启用控制台登录,并获得相应资源的操作权限。通过自定义 RAM 权限策略,可以限定用户能够管理的 Team、API Key、Template、Sandbox 和 Volume 等资源。

通过阿里云 OpenAPI、SDK 或 CLI 调用公开接口时,也需要授予对应的 RAM 权限。

前提条件

  • 所属阿里云账号已开通智能体沙箱服务。

  • 已创建目标 RAM 用户,创建方法参见快速入门:创建RAM用户并授权。

  • 操作者为阿里云账号(主账号)或具有管理 RAM 用户登录设置、创建权限策略和为用户授权这三项权限的 RAM 身份。

步骤一:启用控制台登录

已启用控制台登录的用户可跳过此步骤。详细操作参见管理RAM用户登录设置。

  1. 登录 RAM 控制台,选择身份管理 > 用户,单击目标 RAM 用户名称。

  2. 在认证管理页签的登录信息区域,单击启用控制台登录。

  3. 开启控制台访问,设置登录密码,并按企业要求配置首次登录重置密码和多因素认证,单击确定。

步骤二:创建权限策略

根据用户的工作范围选择策略,并只保留所需权限:

用户需要执行的工作

授权范围

统一管理账号下的智能体沙箱资源。

智能体沙箱全部操作和资源。

管理某个项目或环境。

指定 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 控制台保存策略

  1. 在 RAM 控制台,选择权限管理 > 权限策略,单击创建权限策略。

  2. 选择脚本编辑,输入调整后的 JSON 策略,单击确定。

  3. 在创建权限策略对话框,输入策略名称(例如 SandboxTeamAccess)和备注,单击确定。

详细操作参见创建自定义权限策略。

步骤三:为 RAM 用户添加权限

  1. 在 RAM 控制台,选择身份管理 > 用户。

  2. 找到目标 RAM 用户,单击操作列的新增授权。

  3. 资源范围选择账号级别,确认授权主体为目标 RAM 用户。

  4. 在权限策略中选择自定义策略,搜索并选中上一步创建的策略。

  5. 单击确认新增授权,完成授权。

此处选择账号级别,各策略授予的权限仍受其 Resource 和 Condition 限制。详细操作参见管理RAM用户的权限。

步骤四:登录并验证

  1. 使用目标 RAM 用户登录阿里云控制台,进入智能体沙箱控制台。登录方法参见RAM用户登录阿里云控制台。

  2. 切换到已授权资源所在的地域和资源组,选择目标 Team。

  3. 验证所需的查询和管理操作是否可用,并确认未授权的操作或资源仍被拒绝访问。

若无法登录,请检查控制台登录设置;若登录后提示权限不足,请核对当前身份、地域、资源组,以及策略中的操作和资源范围。用户从其他策略或用户组获得的权限也会参与鉴权;验证精细授权时,应一并检查这些授权。

相关文档

  • 通过阿里云 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 表达式

全部资源

*

指定账号和地域的全部智能体沙箱资源

acs:sandbox:<region>:<account-id>:*

指定账号全部地域的智能体沙箱资源

acs:sandbox:*:<account-id>:*

账号内所有 Team

acs:sandbox:<region>:<account-id>:teams/*

指定 Team

acs:sandbox:<region>:<account-id>:teams/<team-id>

指定 Team 下的全部子资源

acs:sandbox:<region>:<account-id>:teams/<team-id>/*

Team 内所有 Template

acs:sandbox:<region>:<account-id>:teams/<team-id>/templates/*

指定 Template

acs:sandbox:<region>:<account-id>:teams/<team-id>/templates/<template-id>

Team 内所有 Sandbox

acs:sandbox:<region>:<account-id>:teams/<team-id>/templates/*/*

某 Template 下的 Sandbox

acs:sandbox:<region>:<account-id>:teams/<team-id>/templates/<template-id>/*

Team 内所有 API Key

acs:sandbox:<region>:<account-id>:teams/<team-id>/apikeys/*

Team 内所有 Volume

acs:sandbox:<region>:<account-id>:teams/<team-id>/volumes/*

指定 Volume

acs:sandbox:<region>:<account-id>:teams/<team-id>/volumes/<volume-id>

Team 内所有 Quota

acs:sandbox:<region>:<account-id>:teams/<team-id>/quotas/*

Team 内所有 Template Cache

acs:sandbox:<region>:<account-id>:teams/<team-id>/template-caches/*

指定 Template Cache

acs:sandbox:<region>:<account-id>:teams/<team-id>/template-caches/<template-id>

下表列出各资源类型匹配账号内所有该类资源的 ARN。各接口是否支持跨 Team 查询,请以 Sandbox API 门户中对应接口的请求参数说明为准;要求提供 teamID 的接口仍须填写该参数,账号级 ARN 授权不能替代必填参数。仅需管理某个 Team 时,应优先使用上表的 Team 级范围。

资源范围

ARN 表达式

账号内所有 Template

acs:sandbox:<region>:<account-id>:teams/*/templates/*

账号内所有 Sandbox

acs:sandbox:<region>:<account-id>:teams/*/templates/*/*

账号内所有 API Key

acs:sandbox:<region>:<account-id>:teams/*/apikeys/*

账号内所有 Volume

acs:sandbox:<region>:<account-id>:teams/*/volumes/*

账号内所有 Quota

acs:sandbox:<region>:<account-id>:teams/*/quotas/*

账号内所有 Template Cache

acs:sandbox:<region>:<account-id>:teams/*/template-caches/*

账号级 ARN 与指定资源 ARN 对应不同的请求范围。只有某个资源的查询权限,不代表可以列出账号内所有该类资源。下列各表按资源类型列出操作对应的 RAM Action 和用途;对于支持 teamID 的接口,仅具有 Team 级权限时应提供目标 Team ID。

Team 管理

RAM Action

用途

sandbox:CreateTeam

创建 Team。

sandbox:ListTeams

查询 Team 列表。

sandbox:GetTeam

查询 Team 详情。

sandbox:UpdateTeam

更新 Team 配置。

sandbox:DeleteTeam

删除 Team。

sandbox:ListTeams 使用账号内所有 Team 的 ARN,不能通过单个 Team ARN 授权列表查询。按资源组限制查询时,需要在请求中指定对应的 resourceGroupID。sandbox:UpdateTeam 请求的 resourceGroupID 用于变更 Team 所属资源组,该操作会同时检查源资源组和目标资源组的权限。

API Key 管理

RAM Action

用途

sandbox:CreateApiKey

创建 API Key。

sandbox:ListApiKeys

查询 API Key 列表。

sandbox:DescribeApiKey

查询 API Key 详情。

sandbox:UpdateApiKey

更新 API Key 配置。

sandbox:ResetApiKey

重置 API Key。

sandbox:DeleteApiKey

删除 API Key。

API Key 的 RAM 授权粒度为 Team,即使查询、更新或删除某个 API Key,也使用 apikeys/*。更新请求包含 permissionPolicy 或 expectedPolicyVersion 时,需同时具备 sandbox:UpdateApiKey 和 sandbox:CreateApiKey 权限。

Template 管理

RAM Action

用途

sandbox:CreateTemplate

创建 Template 并提交构建。

sandbox:ListTemplates

查询 Team 下的 Template 列表。

sandbox:GetTemplate

查询 Template 详情。

sandbox:UpdateTemplate

更新 Template 配置。

sandbox:DeleteTemplate

删除 Template。

Template Cache 管理

RAM Action

用途

sandbox:CreateTemplateCache

创建 Template Cache。

sandbox:ListTemplateCache

查询 Template Cache 列表。

sandbox:DescribeTemplateCache

查询 Template Cache 详情。

sandbox:DeleteTemplateCache

删除 Template Cache。

Template Cache(模板镜像缓存)的 ARN 最后一段使用 <template-id>。Template Cache 与 Template 使用不同的资源路径和 Action,不能用 Template 权限替代 Template Cache 权限。

Sandbox 管理

RAM Action

用途

sandbox:CreateSandboxInner

创建 Sandbox。

sandbox:ListSandboxesInner

查询 Sandbox 列表。

sandbox:GetSandboxInner

查询 Sandbox 详情。

sandbox:PauseSandboxInner

暂停 Sandbox。

sandbox:ResumeSandboxInner

恢复 Sandbox。

sandbox:DeleteSandboxInner

释放 Sandbox。

sandbox:UpdateSandboxTimeoutInner

更新 Sandbox 的超时时间。

Sandbox 按所属 Template 授权,资源路径为 teams/<team-id>/templates/<template-id>/*,不支持按单个 Sandbox ID 限定权限。

Volume 管理

RAM Action

用途

sandbox:CreateVolume

创建 Volume。

sandbox:ListVolumes

查询 Volume 列表。

sandbox:GetVolume

查询 Volume 详情。

sandbox:UpdateVolume

更新 Volume 配置。

sandbox:DeleteVolume

删除 Volume。

指定 Volume 的 ARN 使用 <volume-id>,不是挂载时引用的 Volume 名称。创建和列表查询通常使用 Team 内所有 Volume 的 ARN;按 ID 查询、更新和删除使用指定 Volume ARN。

Quota 管理

RAM Action

用途

sandbox:ListQuotas

查询主账号的 Quota 列表。

sandbox:DescribeQuota

查询指定 Team 的 Quota。

sandbox:UpdateQuota

更新指定 Team 的 Quota。

sandbox:DeleteQuota

删除指定 Team 的 Quota。

账号功能配置

RAM Action

用途

sandbox:GetFeatureConfigInner

查询账号功能配置。