AI 治理中心 RAM 权限配置指南

更新时间:
复制 MD 格式

概述

团队协作开发 AI 应用时,需要通过 RAM 权限策略精细控制 RAM 用户(子账号)或 STS 临时凭证对 AI Registry(AI 治理中心)的访问范围,在保障协作效率的同时降低越权操作风险。

本文介绍两种配置方式:使用系统预定义策略快速授权,或创建自定义策略实现细粒度权限控制。

前提条件

  • 已拥有阿里云主账号,并已开通 AI 治理中心服务。

  • 已创建至少一个 AI 治理中心工作空间(命名空间)。

  • 已了解 ,并知道如何在 RAM 控制台创建用户和配置权限策略。

方式一、使用系统预定义策略(推荐新手使用)

AI 治理中心提供以下预定义权限策略,直接在 RAM 控制台将其附加给 RAM 用户或用户组即可,无需手动编写策略。

策略名称

说明

AliyunAIRegistryReadOnlyAccess

只读权限。包含客户端读取权限及控制台只读操作(查看工作空间、Prompt 等),但不能创建、修改或删除。

AliyunAIRegistryFullAccess

完全权限。可对 AI 治理中心下所有资源执行任意操作。

AliyunAIRegistryPromptFullAccess

Prompt 完全权限。可对 Prompt 资源执行创建、编辑、发布、删除、调试等全部操作。

AliyunAIRegistryNamespaceFullAccess

工作空间完全权限。可对工作空间(命名空间)执行创建、编辑、删除等全部操作。

AliyunAIRegistrySkillFullAccess

Skill 完全权限。可对 Skill 资源执行创建、编辑、发布、上下线、删除等全部操作。

操作步骤

  1. 登录 RAM 控制台。

  2. 在左侧导航栏选择身份管理 > 用户,找到目标 RAM 用户。

  3. 单击新增授权,在策略搜索框中输入 AIRegistry。

  4. 选择所需的预定义策略,单击确认新增授权。

  5. 以 RAM 用户身份登录 AI 治理中心控制台,确认可正常执行已授权操作。

只需查看资源信息时,选择 AliyunAIRegistryReadOnlyAccess;需要完整管理能力时,选择 AliyunAIRegistryFullAccess。

方式二、自定义权限策略

当预定义策略无法满足需求时(例如只允许访问特定工作空间、只允许操作特定类型的资源),可以创建自定义权限策略。

2.1 基本概念

自定义策略由以下要素组成:

  • Effect:Allow(允许)或 Deny(拒绝)。

  • Action:允许执行的操作类型。

  • Resource:策略生效的资源范围。

Action(操作类型)

AI 治理中心的 Action 分为两个层面:

通用 Action——客户端访问使用:

Action

说明

airegistry:Read

客户端只读权限,用于应用运行时通过 SDK / API 拉取资源(如 Prompt、Skill)。仅覆盖客户端读取场景,不包含任何控制台操作权限

airegistry:Write

客户端写权限,用于应用运行时通过 SDK / API 写入资源(如 Skill)。仅覆盖客户端写入场景,不包含任何控制台操作权限。当前 Skill 已开放客户端写接口,Prompt 暂未开放

接口级 Action——控制台操作使用(按具体 API 细粒度授权):

分类

Action

说明

工作空间

airegistry:CreateNamespace

创建工作空间

airegistry:CreateNamespaceWithSource

创建工作空间

airegistry:ListNamespaces

查询工作空间列表

airegistry:ListNamespaceBySource

查询工作空间列表

airegistry:GetNamespace

获取工作空间详情

airegistry:UpdateNamespace

更新工作空间

airegistry:DeleteNamespace

删除工作空间

Prompt

airegistry:ListPrompts

查询 Prompt 列表

airegistry:GetPrompt

获取 Prompt 详情

airegistry:CreatePrompt

创建 Prompt

airegistry:UpdatePrompt

更新 Prompt

airegistry:DeletePrompt

删除 Prompt

airegistry:ListPromptVersions

查询 Prompt 版本列表

airegistry:GetPromptVersion

获取 Prompt 版本信息

airegistry:GetPromptVersionDetail

获取 Prompt 版本详情

airegistry:CreatePromptVersion

创建 Prompt 版本

airegistry:UpdatePromptVersion

更新 Prompt 版本

airegistry:SubmitPromptVersion

发布 Prompt 版本

airegistry:DeletePromptVersion

删除 Prompt 版本

airegistry:GetPromptGovernance

获取 Prompt 治理信息

调试与优化

airegistry:InvokePromptDebugStream

调试 Prompt(流式)

airegistry:InvokePromptOptimizeStream

优化 Prompt(流式)

airegistry:GetSupportedModels

获取支持的模型列表

Skill

airegistry:CreateSkillDraft

创建 Skill 草稿

airegistry:UpdateSkillDraft

更新 Skill 草稿

airegistry:DeleteSkillDraft

删除 Skill 草稿

airegistry:SubmitSkillVersion

提交 Skill 版本

airegistry:PublishSkillVersion

发布 Skill 版本

airegistry:ForcePublishSkillVersion

强制发布 Skill 版本

airegistry:UpdateSkillBizTags

更新 Skill 业务标签

airegistry:UpdateSkillLabels

更新 Skill 标签

airegistry:OnlineSkill

上线 Skill

airegistry:OfflineSkill

下线 Skill

airegistry:UpdateSkillScope

更新 Skill 作用域

airegistry:GetSkillDetail

获取 Skill 详情

airegistry:GetSkillVersionDetail

获取 Skill 版本详情

airegistry:DownloadSkillVersion

下载 Skill 版本

airegistry:ListSkills

查询 Skill 列表

airegistry:DeleteSkill

删除 Skill

airegistry:UploadSkill

上传 Skill

airegistry:UploadSkillViaOss

通过 OSS 上传 Skill

airegistry:DownloadSkillVersionViaOss

通过 OSS 下载 Skill 版本

说明
  • airegistry:Read 仅用于客户端只读访问,airegistry:Write 仅用于客户端写入访问,均不包含控制台的任何操作权限。控制台操作必须通过接口级 Action 逐一授权。如果需要同时授予客户端读写和控制台操作权限,需要将 airegistry:Read、airegistry:Write 与所需的接口级 Action 组合配置。

  • 也可以使用 airegistry:* 作为 Action,表示同时授予客户端读写权限和所有接口级操作权限。

Resource(资源范围)

资源通过 ARN(Alibaba Cloud Resource Name)来标识,格式如下:

acs:airegistry:*:*:instance/saas/{工作空间 ID}/{domain}/{资源类型}/{资源名称}

其中:

  • 工作空间 ID:在 AI 治理中心控制台查看工作空间 ID。

  • domain:当前固定填写 DEFAULT。

  • 资源类型:prompt、skill、mcp、agent 等,按资源类别区分。

  • 资源名称:具体资源的名称。

使用通配符 * 可匹配多个资源。

2.2 授权粒度选择

根据实际需要,选择不同的授权粒度:

授权范围

Resource 填写示例

所有工作空间下的所有资源

acs:airegistry:*:*:instance/saas/*

指定工作空间下的所有资源

acs:airegistry:*:*:instance/saas/{工作空间 ID}/*

指定工作空间下某类资源(Prompt)

acs:airegistry:*:*:instance/saas/{工作空间 ID}/DEFAULT/prompt/*

指定工作空间下某类资源(Skill)

acs:airegistry:*:*:instance/saas/{工作空间 ID}/DEFAULT/skill/*

精确到某个具体资源

acs:airegistry:*:*:instance/saas/{工作空间 ID}/DEFAULT/prompt/my-prompt

2.3 创建自定义策略步骤

  1. 登录 RAM 控制台。

  2. 在左侧导航栏选择权限管理 > 权限策略。

  3. 单击创建权限策略,选择脚本编辑模式。

  4. 参考下方示例编写策略内容,单击确定。

  5. 将创建好的策略附加给目标 RAM 用户或用户组。

  6. 以 RAM 用户身份登录 AI 治理中心控制台,确认可正常执行已授权操作。

2.4 常见场景策略示例

场景一:允许 RAM 用户通过客户端只读访问指定工作空间

适用于:应用运行时通过 SDK / API 拉取 Prompt 等资源,只需只读权限。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:Read",
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/*"
    }
  ],
  "Version": "1"
}

场景二:允许 RAM 用户管理指定工作空间的所有资源

适用于:让团队成员拥有某个工作空间的完整管理权限(控制台 + 客户端)。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:*",
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/*"
    }
  ],
  "Version": "1"
}

场景三:仅允许 RAM 用户管理 Prompt 资源

适用于:Prompt 工程师只需要操作 Prompt,不需要接触其他类型的资源。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:Read",
        "airegistry:GetPrompt",
        "airegistry:CreatePrompt",
        "airegistry:UpdatePrompt",
        "airegistry:DeletePrompt",
        "airegistry:ListPromptVersions",
        "airegistry:GetPromptVersion",
        "airegistry:GetPromptVersionDetail",
        "airegistry:CreatePromptVersion",
        "airegistry:UpdatePromptVersion",
        "airegistry:SubmitPromptVersion",
        "airegistry:DeletePromptVersion",
        "airegistry:GetPromptGovernance",
        "airegistry:InvokePromptDebugStream",
        "airegistry:InvokePromptOptimizeStream"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/prompt/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListNamespaces",
        "airegistry:ListNamespaceBySource",
        "airegistry:GetNamespace",
        "airegistry:GetSupportedModels"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/*"
    },
    {
      "Effect": "Allow",
      "Action": "airegistry:ListPrompts",
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/prompt"
    }
  ],
  "Version": "1"
}

ListPrompts 是集合级操作,其 Resource 为 .../prompt(不带 /*)。

如果不需要限定到特定工作空间,也可以使用预定义策略 AliyunAIRegistryPromptFullAccess。

场景四:允许客户端只读访问,同时允许在控制台管理 Prompt

适用于:应用运行时可通过客户端拉取资源,同时允许在控制台管理 Prompt。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:Read",
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:CreatePrompt",
        "airegistry:UpdatePrompt",
        "airegistry:DeletePrompt",
        "airegistry:CreatePromptVersion",
        "airegistry:UpdatePromptVersion",
        "airegistry:SubmitPromptVersion",
        "airegistry:DeletePromptVersion",
        "airegistry:InvokePromptDebugStream",
        "airegistry:InvokePromptOptimizeStream"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/prompt/*"
    }
  ],
  "Version": "1"
}

场景五:仅允许 RAM 用户管理 Skill 资源

适用于:Skill 开发者只需要操作 Skill,不需要接触其他类型的资源。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:Read",
        "airegistry:Write",
        "airegistry:UpdateSkillDraft",
        "airegistry:DeleteSkillDraft",
        "airegistry:SubmitSkillVersion",
        "airegistry:PublishSkillVersion",
        "airegistry:ForcePublishSkillVersion",
        "airegistry:UpdateSkillBizTags",
        "airegistry:UpdateSkillLabels",
        "airegistry:OnlineSkill",
        "airegistry:OfflineSkill",
        "airegistry:UpdateSkillScope",
        "airegistry:GetSkillDetail",
        "airegistry:GetSkillVersionDetail",
        "airegistry:DownloadSkillVersion",
        "airegistry:DeleteSkill",
        "airegistry:DownloadSkillVersionViaOss"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/skill/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListNamespaces",
        "airegistry:ListNamespaceBySource",
        "airegistry:GetNamespace"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "airegistry:ListSkills",
        "airegistry:CreateSkillDraft",
        "airegistry:UploadSkill",
        "airegistry:UploadSkillViaOss"
      ],
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/skill"
    }
  ],
  "Version": "1"
}

ListSkills、CreateSkillDraft、UploadSkill、UploadSkillViaOss 是集合级操作,其 Resource 为 .../skill(不带 /*)。

场景六:精确控制到某个具体资源

适用于:只允许 RAM 用户访问某一个特定的 Prompt。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "airegistry:*",
      "Resource": "acs:airegistry:*:*:instance/saas/{您的工作空间 ID}/DEFAULT/prompt/my-prompt"
    }
  ],
  "Version": "1"
}

2.5 注意事项

  • Deny 优先:当同一个用户同时匹配到 Allow 和 Deny 策略时,Deny 始终优先生效。如果需要"允许大部分操作但禁止某些操作",可以组合使用 Allow 和 Deny。

  • 工作空间隔离:AI 治理中心会自动校验请求者与工作空间的归属关系。即使 RAM 策略中配置了其他用户的工作空间 ID,也无法跨账号访问,无需担心数据泄露。

  • 策略中的工作空间 ID:将示例中的 {您的工作空间 ID} 替换为实际的工作空间 ID,可在 AI 治理中心控制台的工作空间列表中获取。

  • 最小权限原则:建议遵循最小权限原则,只授予用户完成工作所需的最小权限,避免使用过于宽泛的通配符。

常见问题

Q:RAM 用户访问时提示"无权限"怎么办?

A:检查以下几点:

  • 确认已为该 RAM 用户附加了正确的权限策略。

  • 确认策略中的工作空间 ID 与实际访问的工作空间一致。

  • 确认 Action 是否覆盖了所需的操作类型(airegistry:Read 或具体的接口级 Action)。

  • 如果使用了 Deny 策略,检查是否误拦截了需要的操作。

Q:如何让 RAM 用户只能访问部分工作空间?

A:在自定义策略的 Resource 中指定具体的工作空间 ID,而不是使用 * 通配符。如果需要授权多个工作空间,可以添加多条 Statement。

Q:使用 STS 临时凭证访问时如何配置?

A:STS 临时凭证的权限受 RAM 角色策略和调用 AssumeRole 时传入的 Policy 共同约束。确保 RAM 角色上附加了所需的 AI 治理中心权限策略,同时 AssumeRole 时的 Policy 不要缩小所需权限范围。