You need to enable JavaScript to run this app.
导航
权限管理
最近更新时间:2025.06.23 17:29:31首次发布时间:2021.09.08 12:38:37
复制全文
我的收藏
有用
有用
无用
无用

火山引擎上的权限管理主要是通过访问控制 IAM实现,主账号(或有相关权限的用户)通常会根据团队成员的职责、工作内容为不同的成员创建子账号(子用户),并通过对子账号赋予相应的权限策略实现细粒度的访问控制。出于安全的考虑,在为子账号分配策略时应遵循最小权限原则。本文从用户、用户组和策略三个方面介绍如何在机器学习平台上进行权限管理。

用户

火山引擎提供了【用户】模块管理该账号下的所有子用户,在该模块下能够对子用户进行创建、删除、配置权限等操作。

创建子用户

使用前提
以主账号或者拥有【访问控制】权限的用户登录。
操作步骤

  1. 登录访问控制控制台用户页面
  2. 在左侧的导航栏依次单击【用户】-【新建用户】进入基本信息设置页面。关键参数如下:

参数名称

参数说明

用户名

  • 填写子用户的名称。必填

控制台登录

  • 为新用户配置子账号和密码,赋予用户通过控制台(Web 页面)访问平台的权限。选填
  • 需要通过 Web 页面访问平台的用户需要开启该权限。

自动生成密钥

  • 为用户生成 AK / SK。选填
  • AK / SK 作为用户的重要身份凭证,强烈建议开启。日常使用 OpenAPI / SDK / 命令行工具时均需要 AK / SK 进行身份验证。获得 AK / SK 后请妥善保管切勿泄露。
  1. 完成上述配置后单击【下一步】进入权限设置页面。通过勾选不同的 策略 赋予用户不同的权限,详见访问控制-用户管理
  2. 核对无误后提交表单完成子用户的创建,后续即可在【用户】列表 / 详情页中管理该用户。

修改用户的权限

使用前提

  1. 以主账号或者拥有【访问控制】权限的用户登录。
  2. 【用户】中存在 >= 1 个用户。

操作步骤

  1. 登录火山引擎控制台,单击顶部右上角的用户名称下的【访问控制】 进入对应页面。
  2. 在左侧的导航栏单击【用户】进入用户列表,单击待修改用户的名称进入用户详情页,在该页面下可以完成更换用户关联的策略或角色、新增 / 删除密钥、重置密码等操作。

管理当前用户的密钥(AK / SK)

使用前提

  1. 以主账号或者拥有【密钥管理】权限的用户登录。

操作步骤

  1. 登录火山引擎控制台,单击顶部右上角的用户名称下的【密钥管理】 进入对应页面,并按需对密钥进行新建、查看、复制、禁用、删除等操作。

Image

管理子用户的密钥(AK / SK)

使用前提

  1. 以主账号或者拥有【访问控制】权限的用户登录。

操作步骤

  1. 登录火山引擎控制台,单击顶部右上角的用户名称下的【访问控制】 进入对应页面。
  2. 单击【用户】进入对应页面后单击某个用户的名称进入用户详情页面并单击【密钥】。
  3. 在该页面下按需对密钥进行新建、查看、复制、禁用、删除等操作。

Image

用户组

用户组是若干用户(子账号)的集合,通过在用户组上绑定若干个权限策略,可使用户组内的成员均享有这些权限。若某个用户同时加入了多个用户组,该用户的权限将是多个用户组权限的并集。
通常主账号下如果包含多个子账号且需要以分组的形式划分权限时可以考虑使用【用户组】功能,该功能可实现多个子账号的批量授权,避免为每个子账号单独授权的重复劳动。

创建用户组及授权

使用前提

  1. 以主账号或者拥有【访问控制】权限的用户登录。

操作步骤

  1. 新建用户组:登录火山引擎控制台,单击顶部右上角的用户名称下的【访问控制】 进入对应页面。单击【用户组】进入用户组列表页,单击【新建用户组】,在弹出的页面中填写用户组名称即可创建一个用户组。
  2. 添加用户:单击【用户组】进入对应页面后单击想要加入的用户组的名称进入用户组详情页面。单击【添加用户】,在弹出的页面中勾选相应的用户即可加入该用户组。
  3. 为用户组绑定权限:在用户组详情页面依次单击【权限】-【全局权限】-【添加权限】,在策略列表中勾选相应的策略即可快速地为用户组中的所有用户授予对应的权限。
  4. 用户组的权限和用户都支持动态添加,当权限不足或出现新用户可再次进入用户组详情页添加权限或用户。

移除用户

用户组不仅可以新增用户,也可将现有用户从用户组中移除,被移除的用户将失去该用户组中分配的所有权限。
使用前提

  1. 以主账号或者拥有【访问控制】权限的用户登录。

操作步骤

  1. 在【访问控制】页面中,单击【用户组】进入对应页面后单击用户组的名称进入用户组详情页面。
  2. 用户组详情页面中会显示该用户组中的所有用户,在想要移除的用户名后单击【移除】即可将该用户移除出该用户组,此时该用户对应的权限将被回收。

Image

系统预设策略

火山引擎提供了【策略管理】模块用于管理 系统预设策略用户自定义策略 。其中预设策略能够满足用户大部分的应用场景。

策略名称

策略说明

MLPlatformAdminAccess

  • 全读写策略。赋予该策略时可读写主账号下所有资源。
  • 该策略为机器学习平台最高权限,推荐平台管理者使用。

MLPlatformMemberAccess

  • 开发者策略。赋予该策略可读写主账号内所有资源,但无法创建资源组。
  • 该策略适用于机器学习平台非管理员的普通开发者。

MLPlatformDeveloperAccess

开发者权限,面向新版的机器学习平台。

MLPlatformReadonlyAccess

只读策略。赋予该策略的用户仅能查看主账号下的资源。

AccessKeyFullAccess

  • 允许用户管理自身的 AK / SK 的策略。
  • 赋予该策略的用户能创建 / 查看 / 禁用 / 删除自己的 AK / SK,对于脱离控制台操作的用户通常都需要该策略。

BillingCenterFullAccess(原名 BillFullAccess)

  • 允许用户管理账户内财务相关内容(如账单、订单等)的策略。
  • 该策略通常与 MLPlatformAdminAccess 组合使用,因为在创建资源组时需要用户具备交易相关的权限。

TOSFullAccess

  • 火山引擎对象存储(TOS)全读写的策略。
  • 该策略通常在用户直接使用 TOS 管理存储桶(Bucket)、上传下载和读写数据时需要。

CFSFullAccess

  • 火山引擎大数据文件存储(CloudFS)全读写的策略。
  • 该策略通常在用户需要挂载 TOS 共享文件系统,使用缓存加速能力时需要。

CRFullAccess

  • 火山引擎镜像仓库(CR)全读写的策略。
  • 该策略通常在用户直接使用 CR 时需要,比如将线下的历史镜像迁移到火山引擎上。

IAMFullAccess

  • 火山引擎镜像访问控制(IAM)全读写的策略。
  • 该策略通常在用户作为管理员,管理其它子用户并做权限配置时需要。
  • 当主账号与开发者们不是一个团队时建议为其中一个开发者配置该策略便于后续开发团队内部自己进行权限管理。

vePFSFullAccess

  • 火山引擎文件存储(vePFS)全读写的策略。
  • 该策略通常在用户挂载 vePFS 共享文件系统到开发机、自定义任务或在线服务的容器中时需要用到。

自定义策略

当存在某些预设策略无法满足的特殊权限需求时,用户可以通过编写自定义策略满足自身的定制需求。
自定义策略的写作规则详见策略语法,在编写过程中用户需要了解机器学习平台的 Action 和 Resource,这部分内容较为复杂,可在实际需要时通过工单咨询相关客服人员。

常见配置方式 v1

您是机器学习平台v1版本的用户,通过组合预设策略即可完成机器学习平台上开发者、管理员两种常见角色的划分。

资源管理员

子用户需要具备机器学习平台所有权限时(特别是购买资源组、全局配置),需要为其分配平台管理员的权限:

  • MLPlatformAdminAccess(不能与 MLPlatformMemberAccess 叠加):有权限进行机器学习平台所有操作,包括资源购买、队列分配、全局配置。
  • AccessKeyFullAccess
  • BillFullAccess
  • TOSFullAccess:作为管理员需要添加该策略,便于直接使用对象存储(TOS)的控制台界面管理数据。
  • CFSFullAccess:如果普通开发者们需要挂载 TOS 共享文件系统到容器中使用,作为管理员强烈建议添加该策略,便于直接使用大数据文件存储(CloudFS)的控制台界面管理 CloudFS 的实例。
  • vePFSFullAccess:如果普通开发者们需要挂载 vePFS 共享文件系统到容器中使用,作为管理员需要添加该策略,便于直接使用 vePFS 的控制台界面管更对应的实例。
  • CRFullAccess:作为管理员需要添加该策略,便于直接使用火山引擎镜像仓库(CR) 迁移历史镜像到火山引擎。
  • VPCFullAccess:作为管理员需要添加该策略,便于进行网络相关的全局配置。
  • IAMFullAccess:作为管理员强烈建议添加该策略,便于直接操作访问控制(IAM)创建新的子账号并对子账号做权限管理。特别是在主账号不属于算法团队的情况下,建议在算法团队中配置一名管理员并附加 IAM 的策略,方便在新增工程师时能够及时地为其创建子用户并添加适当的权限。

算法开发人员

机器学习平台上最常见的子用户要数开发者,如算法工程师、数据工程师等。这类子用户需要在平台上完成数据处理、代码开发、模型训练、模型部署等多个重要环节,因此他们需要大部分的读写权限。除此之外,还有相当大规模的开发者需要管理自身的 API 密钥(AK / SK)的权限,否则在使用 OpenAPI、命令行以及 SDK 访问机器学习平台时将无法完成身份鉴证。而开发者中也有一定的区别,不同开发者所需的预置策略如下。

  • 开发者:仅进行机器学习作业,无法购买资源组也无需关心资源管理的子用户。
    • MLPlatformMemberAccess
    • AccessKeyFullAccess
    • TOSFullAccess:如果需要通过火山引擎对象存储(TOS)的控制台页面进行 Bucket 的创建及数据传输时可以关联该策略。
    • CRFullAccess:如果需要通过火山引擎镜像仓库(CR) 拉取或推送镜像时可以关联该策略。
    • 【可选】CFSFullAccess:如果需要挂载 TOS 共享文件系统到容器中使用可以关联该策略。
    • 【可选】vePFSFullAccess:如果需要挂载 vePFS 共享文件系统到容器中使用可以关联该策略。

默认的 TOS 权限

机器学习平台会为每个主账号自动创建一个 TOS 桶(名称的前缀为 ml-platform-auto-created-required) 用于存放用户从本地上传的代码、模型。子账号上传文件时需要拥有该桶的相关权限,因此平台在预置策略 MLPlatformAdminAccess 及 MLPlatformMemberAccess 中默认添加了该桶的读写权限。

  • 在不使用预置策略时,请联系管理员(主账号或拥有 IAM 配置权限的子账号)将如下内容添加到自定义策略并赋给对应的子账号,避免子账号因缺少权限导致无法从本地上传代码及模型。
{
    "Action": [
        "tos:List*",     # 用于列举桶内文件
        "tos:Get*",      # 用于下载文件、获取桶相关信息等操作
        "tos:Put*",      # 上传文件
        "tos:Head*"      # 用于判断桶是否存在,获取桶元数据
    ],
    "Effect": "Allow",
    "Resource": [
        # 将上述权限的作用范围限制在平台自动创建的桶中
        "trn:tos:::ml-platform-auto-created-required-*",    
        "trn:tos:::ml-platform-auto-created-required-*/*"
    ]
}

常见配置方式 v2

您是机器学习平台v2版本用户,可参考下面进行权限配置。

资源管理员

当子用户作为资源管理员,需要运维机器学习平台(veMLP)上的资源时,需要的权限主要涉及:

  • 全局配置:配置 veMLP 上的配套云基础资源,如私有网络 VPC、镜像仓库 CR、文件存储 vePFS 或 CloudFS、日志服务 TLS 以及监控 VMP。
  • 资源组:veMLP 上的资源创建及生命周期管理模块,需支付资源购置费用,配置与该资源关联的云网络、存储等资源。
  • 队列:veMLP 上的资源管理模块,可通过该模块为每个组以及个人用户分配资源配额,同时它也是 veMLP 平台的权限中心。 当只有队列的使用权限时,才能创建其他的负载作业。队列管理员可以直接管理队列内所有负载的生命周期。
  • 负载:开发机、自定义任务和推理服务的管理权限。

因此在 veMLP 上的资源管理员子用户,为了使用的连续性建议,授予以下权限:

  • MLPlatformAdminAccess:机器学习平台(veMLP)管理员权限。
  • IAMFullAccess:访问控制(IAM)管理员权限。
  • CRFullAccess:镜像仓库(CR)管理员权限。
  • TOSFullAccess:对象存储(TOS)管理员权限。
  • TLSFullAccess:日志服务(TLS)管理员权限。
  • VMPFullAccess:托管Prometheus服务(VMP)管理员权限。
  • CFSFullAccess:大数据文件存储(CLoudFS)管理员权限。(如果使用 CLoudFS 产品)
  • vePFSFullAccess:文件存储(vePFS)管理员权限。(如果使用 vePFS 产品)

算法开发人员

当子用户只需要在机器学习平台(veMLP)上开发、训练和推理模型时,可以只需要授权开发人员的权限。以下权限主要涉及:

  • 队列:队列内资源的使用权限。
  • 负载:开发机、自定义任务和推理服务的创建和运维权限。

因此在 veMLP 上的资源管理员子用户,为了使用的连续性建议授予以下权限:

  • MLPlatformDeveloperAccess:机器学习平台(veMLP)算法开发人员权限。授予该策略的子用户将拥有开发机、自定义任务、推理服务和部署的读写权限(仅限自己创建的);也将授予镜像、实验管理等模块的 Get、List 等接口权限。

队列权限管理

队列是机器学习平台资源配额管理的模块,若子用户需要使用资源来创建各种负载时,需要先加入队列中(管理员或成员皆可)。下边解释一下队列的角色定义:

  • 队列管理员:队列资源的管理者,可以管理队列成员、空闲资源出借、队列内成员的负载声明周期。
  • 队列成员:可以使用队列内的资源创建负载。

创建队列&配置用户权限

  • 前提条件
    • 需要有 MLPlatformAdminAccess 权限
    • 需要有 IAMFullAccess 权限(若该权限比较大,可以参考自定义策略
    • 有运行中的资源组

步骤

操作介绍

Step1

完成队列的基础信息

  • 队列名称
  • 负载类型
  • 空闲资源出借(同资源组下空闲资源的抢占)
  • 队列资源分配

Image

Step2

分配队列权限

  • 在首次创建资源组时,需要同时指定管理员和成员;支持选择用户或者用户组。
    • 若选择的是用户时,平台将会自动创建用户组,并将所选用户加入到用户组中。
      • 管理员用户组命名:q-xxx-admin-group。
      • 成员用户组命名:q-xxx-developer-group。
  • 在给所选用户/用户组授权时,平台将依次执行以下操作:
    • 创建用户组(当选择用户时,执行该操作)。
    • 创建自定义策略。
    • 将自定义策略授权给用户组。
    • 完成创建和授权。
  • 队列的自定义策略
    • 在创建队列时,平台将自动创建 IAM 自定义策略,并对所选用户组完成策略授权。
    • 管理员自定义策略命名:q-xxx-admin-policy。
    • 成员自定义策略命名:q-xxx-developer-policy。

Image

Step3

管理用户用量上限

  • 在队列详情页可以编辑用户的用量上限,支持百分比和绝对值两种。

Image

注意

请注意,资源管理员需主动为队列管理员的成员添加 IAM 相关策略,否则队列管理员将无法正常编辑队列内成员。

管理用户权限

在队列创建后,若需要管理队列内管理员和成员的列表,可以通过编辑【管理用户】实现。

说明

目前暂不支持直接在访问控制中添加用户或策略。若有队列成员维护需求,请继续在 veMLP 控制台上进行操作。

  • 操作前提
    • 操作者是队列的管理员
    • 操作者应具备 IAMFullAccess 权限(若该权限范围较广,可配置自定义策略)

步骤

操作介绍

Step1

  • 点击【管理用户】,进入权限编辑页面
  • 选择要增加或者移除的用户/用户组
  • 完成后保存页面即可

Image

队列管理员和成员权限介绍

管理员策略

权限说明:

  1. 队列管理员有队列下任意负载的读写权限。
  2. 队列管理员有队列的读写权限。
  3. 在授权队列管理员时,新增管理员将会被授予 IAM 的部分权限用于管理队列。
{
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "ml_platform:*DevInstance*",
          "ml_platform:*Job*",
          "ml_platform:*Service*",
          "ml_platform:*Deployment*",
          "ml_platform:*CustomTask*"
        ],
        "Resource": [
          "trn:ml_platform:cn-beijing:2100xxx:devinstance/*",
          "trn:ml_platform:cn-beijing:2100xxx:job/*",
          "trn:ml_platform:cn-beijing:2100xxx:service/*",
          "trn:ml_platform:cn-beijing:2100xxx:deployment/*"
        ],
        "Condition": {
          "StringEquals": {
            "volc:ResourceTag/sys:ml_platform:resource_queue_id": "q-202504xxx7-txxxx"
          }
        }
      },
      {
        "Effect": "Allow",
        "Action": [
          "ml_platform:*DevInstance*",
          "ml_platform:*Job*",
          "ml_platform:*Service*",
          "ml_platform:*Deployment*",
          "ml_platform:*CustomTask*",
          "ml_platform:*ResourceQueue*"
        ],
        "Resource": [
          "trn:ml_platform:cn-beijing:2100xxx:resourcequeue/q-202504xxx7-txxxx"
        ]
      },
      {
        "Effect": "Allow",
        "Action": [
          "iam:AddUserToGroup",
          "iam:RemoveUserFromGroup",
          "iam:ListUsersForGroup",
          "iam:ListGroups",
          "iam:ListUsers",
          "iam:GetGroup",
          "iam:GetPolicy",
          "iam:AttachUserGroupPolicy",
          "iam:DetachUserGroupPolicy",
          "iam:ListEntitiesForPolicy"
        ],
        "Resource": [
          "*"
        ]
      }
    ]
  }

成员策略

队列成员,可以使用该队列创建任意负载(队列需要支持该负载选项),并有对应负载创建者的读写权限。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ml_platform:*DevInstance*",
        "ml_platform:*Job*",
        "ml_platform:*Service*",
        "ml_platform:*Deployment*",
        "ml_platform:*CustomTask*"
      ],
      "Resource": [
        "trn:ml_platform:cn-beijing:2100xxx:resourcequeue/q-202504xxx7-txxxx"
      ]
    }
  ]
}

自定义策略

队列创建者 IAM 策略

IAMFullAccess 权限过大,可考虑创建新的自定义策略并完成授权。

  • 前往【访问控制】-【策略】,点击【新建自定义策略】,完成如下的策略配置。
  • 将该策略授权给队列管理员。
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetGroup",
                "iam:AddUserToGroup",
                "iam:CreateGroup",
                "iam:AttachUserGroupPolicy",
                "iam:CreatePolicy",
                "iam:DetachUserGroupPolicy",
                "iam:GetPolicy",
                "iam:RemoveUserFromGroup",
                "iam:GetUser",
                "iam:ListUsers",
                "iam:ListGroups",
                "iam:ListUsersForGroup",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserGroupPolicies",
                "iam:ListAttachedUserPolicies"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

更换资源 Owner 策略

若在资源创建后,只想授予某个用户特定资源的权限时,可以通过自定义策略实现。(也可以选择将目标用户设置为队列管理员,有队列内所有负载的读写权限。)

  • 前往【访问控制】-【策略】,点击【新建自定义策略】。
  • 修改 资源动作、账号 Id、资源名称和资源 Id。
  • 将策略授权给特定子用户。

资源名称

动作

resourcegroup

ResourceGroup

service

Service

deployment

Deployment

devinstance

DevInstance

job

v2: Job
v1: CustomTask

resourcequeue

ResourceQueue

{
      "Effect": "Allow", 
      "Action": [
        "ml_platform:*DevInstance*" // 动作 
      ],
      "Resource": [
         // 标黄部分 {region}:{accountId}:{资源名称}:{资源id}
        "trn:ml_platform:cn-beijing:2100xxx:devinstance/di-202503xxxx2-gtxxxj"
      ]
}