当您的企业存在多用户协同访问服务的场景时,您可以创建多个RAM用户并按需为其分配最小权限,避免多用户共享阿里云账号(主账号)密码或访问密钥,从而降低企业的安全风险。
使用场景
以下两种场景需要创建RAM用户,并授予业务需要的最小化操作权限:
- RAM用户以API/SDK调用AI搜索开放平台服务时,以AccessKey实现调用者身份鉴权。 
- RAM用户通过AI搜索开放平台使用工作台功能,常见场景如: 
权限策略
系统权限策略
系统权限策略统一由阿里云创建,用户只能使用,不能修改,策略的版本更新由阿里云维护。AI搜索开放平台提供以下两种系统权限策略:
- AliyunOpenSearchFullAccess:管理开放搜索(OpenSearch)服务的权限。此权限策略包含权限点列表中的所有权限,谨慎为RAM用户授予此权限策略。 
- AliyunOpenSearchReadOnlyAccess:只读访问开放搜索(OpenSearch)服务的权限。此策略权限包含权限点列表中的所有管控API权限列表(List、Describe)读权限和流量API权限列表中的所有权限。 
自定义权限策略
自主创建权限策略,实现权限精细化管理。
权限点列表
管控API权限列表
| 操作类别 | API | RAM Action | Resource | 描述 | 
| 工作空间 | CreateWorkspace | searchplat:WriteWorkspace | workspaces/* | 创建工作空间以及开通AI搜索开放平台。 说明  AI搜索开放平台可免费开通,不使用不计费。 | 
| UpdateWorkspace | searchplat:WriteWorkspace | workspaces/{workspaceName} | 修改工作空间 | |
| GetWorkspace | searchplat:DescribeWorkspace | workspaces/{workspaceName} | 获取工作空间详情 | |
| ListWorkspaces | searchplat:ListWorkspaces | workspaces/* | 获取工作空间列表 | |
| ListServices | searchplat:ListServices | workspaces/{workspaceName} | 获取服务列表 | |
| 访问凭证 | CreateCredentials | searchplat:WriteCredentials | workspaces/{workspaceName} | 创建访问凭证 | 
| DeleteCredentials | searchplat:WriteCredentials | workspaces/{workspaceName} | 删除访问凭证 | |
| UpdateCredentials | searchplat:WriteCredentials | workspaces/{workspaceName} | 修改访问凭证 | |
| GetCredentials | searchplat:DescribeCredentials | workspaces/{workspaceName} | 获取访问凭证详情 | |
| ListCredentials | searchplat:DescribeCredentials | workspaces/{workspaceName} | 获取访问凭证列表 | |
| 计算剩余免费额度次数 | GetMeasure | searchplat:DescribeMeasure | workspaces/{workspaceName} | 获取工作空间剩余免费服务额度。 | 
| 体验数据 | CreateExperienceData | searchplat:WriteExperienceData | workspaces/{workspaceName} | 添加体验数据 | 
| DeleteExperienceData | searchplat:WriteExperienceData | workspaces/{workspaceName} | 删除体验数据 | |
| GetExperienceData | searchplat:DescribeExperienceData | workspaces/{workspaceName} | 获取体验数据详情 | |
| ListExperienceData | searchplat:DescribeExperienceData | workspaces/{workspaceName} | 获取体验数据列表 | |
| 异步任务 | CreateAsyncTask | searchplat:WriteAsyncTask | workspaces/{workspaceName} | 创建文档体验数据解析异步任务 | 
| GetAsyncTask | searchplat:DescribeAsyncTask | workspaces/{workspaceName} | 查看文档体验数据解析异步任务详情 | |
| ListAsyncTasks | searchplat:DescribeAsyncTask | workspaces/{workspaceName} | 查看文档体验数据解析异步任务列表 | |
| 效果测评 | CreateRagEvaluatorTask | searchplat:WriteEvaluation | workspaces/{workspaceName} | 创建评测任务 | 
| GetRagEvaluatorTask | searchplat:DescribeEvaluation | workspaces/{workspaceName} | 获取评测任务详情 | |
| ListRagEvaluatorTasks | searchplat:DescribeEvaluation | workspaces/{workspaceName} | 获取评测任务列表 | |
| DeleteRagEvaluatorTask | searchplat:WriteEvaluation | workspaces/{workspaceName} | 删除评测任务 | |
| 模型服务 | CreateFunctionInstance | searchplat:WriteFunction | workspaces/{workspaceName} | 创建服务/模型 | 
| CreateFunctionTask | workspaces/{workspaceName} | 立即激活服务配置 | ||
| UpdateFunctionInstance | workspaces/{workspaceName} | 更改服务/模型配置 | ||
| DeleteFunctionInstance | workspaces/{workspaceName} | 删除服务/模型配置 | ||
| ListFunctionInstances | searchplat:DescribeFunction | workspaces/{workspaceName} | 获取服务/模型配置详情列表 | |
| GetFunctionInstance | workspaces/{workspaceName} | 获取服务/模型配置详情 | ||
| GetTableFields | searchplat:GetTableFields | workspaces/{workspaceName} | 获取MaxCompute表结构 | |
| 模型服务-服务部署 | ListFunctionRestrictions | searchplat:ListFunctionRestrictions | workspaces/{workspaceName} | 获取功能限制项,包含可部署地域、模型类别、模型类型、模型。 | 
流量API权限列表
| API | Action | Resource | 描述 | 
| GetTextEmbedding | searchplat:GetTextEmbedding | workspaces/{workspaceName} | 文本向量化服务 | 
| GetTextSparseEmbedding | searchplat:GetTextSparseEmbedding | workspaces/{workspaceName} | 文本稀疏向量化服务 | 
| CreateDocumentAnalyzeTask | searchplat:CreateDocumentAnalyzeTask | workspaces/{workspaceName} | 创建异步请求文档解析服务 | 
| DescribeDocumentAnalyzeTask | searchplat:DescribeDocumentAnalyzeTask | workspaces/{workspaceName} | 获取异步请求文档解析结果服务 | 
| GetDocumentAnalysis | searchplat:GetDocumentAnalysis | workspaces/{workspaceName} | 获取同步文档解析结果服务 | 
| CreateImageAnalyzeTask | searchplat:CreateImageAnalyzeTask | workspaces/{workspaceName} | 创建异步请求图片解析服务 | 
| DescribeImageAnalyzeTask | searchplat:DescribeImageAnalyzeTask | workspaces/{workspaceName} | 获取异步请求图片解析结果服务 | 
| GetImageAnalysis | searchplat:GetImageAnalysis | workspaces/{workspaceName} | 获取同步图片解析结果服务 | 
| GetDocumentSplit | searchplat:GetDocumentSplit | workspaces/{workspaceName} | 文档切片服务 | 
| GetDocumentRank | searchplat:GetDocumentRank | workspaces/{workspaceName} | 排序服务 | 
| GetTextGeneration | searchplat:GetTextGeneration | workspaces/{workspaceName} | 内容生成大模型服务 | 
| GetQueryAnalysis | searchplat:GetQueryAnalysis | workspaces/{workspaceName} | 查询分析服务 | 
| GetEmbeddingTuning | searchplat:GetEmbeddingTuning | workspaces/{workspaceName} | 向量微调服务 | 
| GetWebSearch | searchplat:SearchWeb | workspaces/{workspaceName} | 联网搜索 | 
| GetMultiModalEmbedding | searchplat:GetMultiModalEmbedding | workspaces/{workspaceName} | 多模态向量化服务 | 
操作步骤
步骤一:创建RAM用户
RAM用户是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。RAM用户具备以下特点:
- RAM用户由阿里云账号(主账号)或具有管理员权限的其他RAM用户、RAM角色创建,创建成功后,归属于该阿里云账号,它不是独立的阿里云账号。 
- RAM用户不拥有资源,不能独立计量计费,由所属的阿里云账号统一付费。 
- RAM用户必须在获得授权后,才能登录控制台或使用API访问阿里云账号下的资源。 
- RAM用户拥有独立的登录密码或AccessKey。 
- 一个阿里云账号下可以创建多个RAM用户,对应企业内的员工、系统或应用程序。 
如何创建RAM用户请参见创建RAM用户。
步骤二:创建自定义权限策略
参照常见最小化权限组合示例,从权限点列表中选择权限点组合成业务最小化权限策略,创建自定义授权策略请参见创建自定义权限策略。
步骤三:授权RAM用户
为RAM用户授予RAM的系统策略或自定义策略后,RAM用户就能以策略中对应的权限访问阿里云资源。建议您遵循最小化原则,按需授予RAM用户必要的权限。如何授权请参见为RAM用户授权。
对RAM用户设置或更新权限配置后,延迟5分钟后生效。
常见最小化权限组合示例
示例1:允许RAM用户查看工作空间列表、查看服务剩余免费额度次数、在default空间中调用文档切片服务,对应的授权策略如下:
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "searchplat:ListWorkspaces",
            "Resource": "acs:searchplat:*:*:workspaces/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "searchplat:DescribeWorkspace",
                "searchplat:GetDocumentSplit",
                "searchplat:DescribeMeasure"
            ],
            "Resource": "acs:searchplat:*:*:workspaces/default"
        }
    ]
}示例2:允许RAM用户查看工作空间列表、查看服务剩余免费额度次数,在default空间中管理API Key、调用文档切片服务。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "searchplat:ListWorkspaces"
            ],
            "Resource": "acs:searchplat:*:*:workspaces/*"
        },
        {
            "Effect": "Allow",
           "Action": [
                "searchplat:DescribeWorkspace",
                "searchplat:WriteCredentials",
                "searchplat:GetDocumentSplit",
                "searchplat:DescribeCredentials",
                "searchplat:DescribeMeasure"
            ],
            "Resource": "acs:searchplat:*:*:workspaces/default"
        }
    ]
}