文档首页/ AgentSphere/ 最佳实践/ AgentSphere细粒度权限管理最佳实践
更新时间:2026-10-28 GMT+08:00
分享

AgentSphere细粒度权限管理最佳实践

在沙箱实验与仿真运行环境中,不同团队或不受信任的自动化脚本对计算资源的访问需求各不相同。由于沙箱内部运行的代码具有不可控性,如果鉴权范围过于宽泛,极易导致实验环境交叉污染、漏洞逃逸、高危误操作或底层资源恶意抢占。为了解决这些隐患,实现基于运行时上下文的细粒度权限控制尤为重要。

本沙箱权限管理指南是在华为云统一身份认证服务(IAM)的动态鉴权能力基础上打造的。系统支持基于IAM Token临时认证与纯Action级的动态条件控制,能够精准限制用户及临时进程对特定敏感接口(如网络变更、高危删除)的访问,从而有效地将风险锁死在沙箱边界内,确保多沙箱环境的绝对隔离与宿主机安全。

AgentSphere权限管理是在统一身份认证服务(IAM)的能力基础上,打造的细粒度权限管理功能。AgentSphere权限管理支持基于IAM的细粒度权限控制和IAM APIKEY认证,支持template级别的权限控制,从而有效地限制用户对特定资源的访问,确保资源使用的隔离性和安全性。

本示例主要介绍如何配置子用户的细粒度权限来创建沙箱。了解AgentSphere权限管理的更多内容,请参见权限管理。

AgentSphere依赖的云服务

AgentSphere是面向Agent应用打造的一站式基础设施产品组合,为Agent强化学习(RL)训练和Agent在线服务(如智能助手)两大场景提供高性能沙箱运行、多层次安全防护、持久化数据底座等关键能力。

在使用AgentSphere的过程中,可能依赖的云服务如下:

云服务名称

服务简介

Agent Gateway(智能体网关)

Agent出入站安全代理网关,支持公私网接入、访问控制(黑白名单)、URL管控、MCP/API代理。

Agent Identity(智能体身份)

Agent身份与访问控制,支持入站/出站身份认证、安全策略管控、凭证管理、资源授权。

IAM(统一身份认证服务)

APIKEY生命周期管理及细粒度权限管理。

SWR (容器镜像服务)

容器镜像的生命周期管理,沙箱镜像需要托管到SWR仓库。

VPC(虚拟私有云)

沙箱的出入站网络控制。

OBS(对象存储服务)

可挂载用户已有的对象存储,用于加载已有skill等数据。

SFSTurbo(高性能文件弹性服务)

多个沙箱之间可以共享存储。

AOM(应用运维服务)

沙箱的监控指标上报和展示。

LTS(云日志服务)

沙箱的标准输出日志采集和上报。

NAT(NAT网关)

当前OBS/SFSTurbo等存储在沙箱模式下不支持公网访问,需要通过NAT代理至公网。

KMS(密钥管理服务)

identity服务被动依赖,用于凭证的加解密。

CSMS(云凭据管理服务)

identity服务被动依赖,用于凭证轮转。

AgentSphere在IAM中预置了以下系统身份策略,均遵循最小权限原则(仅授予完成对应操作所需的最小权限),可直接授予子用户使用:

系统身份策略名称

描述

策略类别

AgentSphereReadOnlyPolicy

访问AgentSphere只读权限。

系统身份策略

AgentSphereFullAccessPolicy

访问AgentSphere所有权限。

系统身份策略

AgentSphereRuntimeDeploymentAgencyPolicy

访问AgentSphere运行时需要的获取SWR镜像的相关权限。

系统身份策略

IAM细粒度授权步骤

步骤一:创建用户与用户组

  1. 登录统一身份认证服务新版控制台。
  2. 在左侧导航栏中选择“用户组”,在页面右上角单击“创建用户组”。在弹出页面,输入“用户组名称”,单击“确定”。

    本示例需要创建2个用户组,分别为,例如group1(用于开发与测试)和group2(用于运维)。

    图1 新建的用户组

  3. 在左侧导航栏中选择“用户”,在右上角单击“创建用户”。根据需求配置“用户基本信息”,单击“下一步”。

    图2 创建用户

  4. 根据需求选择加入的用户组,单击“创建用户”。

    本示例共创建3个用户,分别代表开发、测试和运维,其中开发与测试加入group1,运维加入group2。

    在用户列表中可以看到新建的3个用户,如图所示。

    图3 新建的用户

步骤二:对用户组进行IAM授权

管理员分别对用户组group1和group2进行IAM授权,基于云服务管理用户组的相关权限。

  1. 在左侧导航栏中选择“用户组”,找到需要授权的用户组,单击“授权”。
  2. 在弹出页面中,在右上角输入“AgentSphere”,过滤出AgentSphere对应的系统身份策略。

    根据需要选择策略,智能体沙箱(AgentSphere)具有2种策略,了解AgentSphereFullAccessPolicy和AgentSphereReadOnlyPolicy策略的更多内容,请参考权限管理。

    本示例中,group1选择AgentSphereFullAccessPolicy策略,group2选择AgentSphereReadOnlyPolicy策略。

    图4 IAM授权

  3. 单击“确定”后,在弹出的页面单击"完成"授权,返回到统一身份认证管理页面。

步骤三:自定义身份策略,按需添加额外所需权限

  1. 在左侧导航栏中选择“身份策略”,单击右上角的“创建自定义身份策略”按钮。
  2. 在弹出页面中,选择所需要添加的云服务及对应的细粒度权限,单击“确认”完成自定义的身份策略创建。

  3. 在身份策略页面单击刚才创建的自定义身份策略查看策略详情,单击“授权记录”下的“附加”按钮,将自定义身份策略授权给需要的用户组。

  4. 选择需要授权的用户组,完成授权。

场景示例

场景一:不授予子用户te_admin的权限,但是想让子用户能完全操控AgentSphere依赖的全部资源,进行业务快速验证

假设已新建用户组group1和子用户user1,且user1加入了group1。

  1. 为group1授予除IAM外所有依赖服务的FullAccess系统策略包含:

    • AgentSphereFullAccessPolicy
    • SWRFullAccessPolicy
    • VPCFullAccessPolicy
    • VPCEPFullAccessPolicy
    • AOMFullAccessPolicy
    • LTSFullAccessPolicy

    每个用户组最多授予10个策略。

  2. 自定义身份策略agentsphere-test,授予如下细粒度权限,用于APIKEY的增删改查及系统策略查询。

    {
      "Version": "5.0",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:serviceSpecificCredentials:createV5",
            "iam:serviceSpecificCredentials:deleteV5",
            "iam:serviceSpecificCredentials:listV5",
            "iam:serviceSpecificCredentials:updateV5"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam::getAccessKey",
            "iam::getAsymmetricSignatureSwitchV5",
            "iam:agencies:checkRole",
            "iam:agencies:checkRoleOnDomain",
            "iam:agencies:checkRoleOnProject",
            "iam:agencies:get",
            "iam:agencies:getServiceLinkedAgencyDeletionStatusV5",
            "iam:agencies:getV5",
            "iam:agencies:listV5",
            "iam:agencies:createV5",
            "iam:agencies:attachPolicyV5",
            "iam:credentials:showAccessKeyLastUsedV5",
            "iam:groups:checkRole",
            "iam:groups:checkRoleOnDomain",
            "iam:groups:checkRoleOnProject",
            "iam:groups:checkUser",
            "iam:groups:get",
            "iam:groups:getGroupV5",
            "iam:identityProviders:get",
            "iam:identityProviders:getMapping",
            "iam:identityProviders:getOIDCConfig",
            "iam:identityProviders:getProtocol",
            "iam:identityProviders:getSAMLMetadata",
            "iam:oidcProviders:getV5",
            "iam:policies:getV5",
            "iam:policies:listV5",
            "iam:policies:getVersionV5",
            "iam:roles:get",
            "iam:samlProviders:getV5",
            "iam:securityPolicies:getApiAclPolicy",
            "iam:securityPolicies:getConsoleAclPolicy",
            "iam:securityPolicies:getLoginPolicy",
            "iam:securitypolicies:getLoginPolicyV5",
            "iam:securityPolicies:getPasswordPolicy",
            "iam:securitypolicies:getPasswordPolicyV5",
            "iam:securityPolicies:getPrivacyTransferPolicy",
            "iam:securityPolicies:getProtectPolicy",
            "iam:securitypolicies:getTokenPolicyV5",
            "iam:users:get",
            "iam:users:getLoginProtectSetting",
            "iam:users:getUserV5",
            "iam:users:getVirtualMFADevice",
            "iam:users:showLoginProfileV5",
            "iam:users:showUserLastLoginV5",
            "agentnetwork:target:list",
            "lts:topics:*",
            "lts:groups:*",
            "sfsturbo:shares:*",
            "obs:*:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "csms:secret:create"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:cmk:createDataKey"
          ]
        }
      ]
    }

  3. 将自定义身份策略授权给用户组group1。

  4. 如果沙箱需要挂载OBS存储,则需要创建一个信任委托,将OBS权限委托给“安全沙箱元数据”服务。您在创建沙箱模板时将其中“运行时信任委托”参数设置为该委托即可挂载OBS存储。本场景为了快速验证,授予OBSFullAccess权限。

    1. 选择左侧导航栏中的“委托”,单击右上角的“创建信任委托”按钮。

    2. 设置委托名称为agentsphere-delegation-test,信任主体类型选择云服务,云服务选择“安全沙箱元数据”,单击“完成”。

    3. 找到agentsphere-delegation-test委托,单击“授权”,选择OBSFullAccess权限,单击“确定”。

  5. 登录AgentSphere的页面进行后续的功能验证即可。

场景二:授予子用户可以操作AgentSphere资源的权限,依赖的云服务资源仅有查看权限

假设已新建用户组group1和子用户user1,且user1加入了group1。

  1. 为group1授予AgentSphereFullAccessPolicy系统策略,该系统策略仅包含AgentSphere运行所需要的最小权限。
  2. 如果需要为沙箱挂载OBS/SFSTurbo存储的话,则需要新建自定义策略agentsphere-extend添加相关权限后,授予group1,具体的策略内容如下:

    {
      "Version": "5.0",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:agencies:getV5",
            "iam:agencies:listV5"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "sfsturbo:shares:getAllShares",
            "sfsturbo:shares:getShare"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "obs:bucket:listAllMyBuckets",
            "obs:bucket:listBucket",
            "obs:bucket:headBucket"
          ]
        }
      ]
    }

  3. 使用OBS和SFSTurbo挂载的时候,需要新建信任委托,委托名称为agentsphere-delegation-test,信任主体类型选择云服务,云服务选择“安全沙箱元数据”,单击“确认”即可。

  4. 新建自定义信任策略agentsphere-delegation-policy,添加好OBS/SFSTurbo权限后,将自定义策略权限授予给agentsphere-delegation-test委托,自定义策略权限如下:

    {
      "Version": "5.0",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sfsturbo:shares:getAllShares",
            "sfsturbo:shares:getShare"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "obs:bucket:listAllMyBuckets",
            "obs:bucket:listBucket",
            "obs:bucket:headBucket",
            "obs:object:*"
          ]
        }
      ]
    }

相关文档