面向 AI 助手:本页的 Markdown 版本位于 https://ark.volcengine.com/region:cn-beijing/docs/use-iam-to-manage-permissions.md,全部文档索引见 https://ark.volcengine.com/llms.txt。

使用 IAM 管理权限

访问控制(Identity and Access Management,简称 IAM) 是企业级云上资源权限精细化管控的核心基础设施。在多人、多团队协作场景下,使用 IAM 结合子账号机制,可以实现火山方舟(Ark)资源的安全隔离与合规访问。

最佳实践建议:在企业生产环境中,应坚决避免多人共享火山引擎主账号(即火山引擎账号)操作云资源,以降低极高的安全风险。推荐全面采用“子账号 + 最小权限原则”的访问控制策略。

本文档将指导企业开发者和系统管理员如何利用 IAM 对火山方舟的资源和控制台权限进行全生命周期管理。关于 IAM 的全局详细教程,请参考火山引擎 访问控制官方文档。

基本概念#

核心术语 实体说明与企业应用场景
主账号 (Root Account) 定义:火山引擎的顶级账号,是云资源的拥有者和计费主体,默认拥有该账号下所有资源的最高权限。
场景:仅限企业最高级管理员(如财务/IT总监)持有,用于创建 IAM 账号、支付账单。日常运维严禁使用主账号访问和操作具体资源。
IAM 用户/子账号 (IAM User) 定义:归属于主账号的子身份实体,不独立拥有资源或计费。必须授权后方可登录控制台或通过 API 访问资源。
场景:为企业内的每位开发者或系统(如 CI/CD 流水线)创建独立的 IAM 用户。详细说明见 IAM 用户。
用户组 (User Group) 定义:对具有相同职责的 IAM 用户进行分类管理的集合实体。
场景:按团队(如算法组、后端组)或角色(如管理员、访客)划分。授权时直接对用户组绑定策略,实现权限的批量下发与回收,极大降低运维成本。详细说明见 用户组管理。
角色 (Role) 定义:一种无永久凭证的虚拟身份,通过 STS (Security Token Service) 临时安全令牌被可信实体扮演。
场景:适用于跨账号授权、应用实例免密访问(如 ECS 访问方舟模型)等高阶安全场景。详细说明见 角色免密登录控制台。

权限策略管理#

策略(Policy)是定义权限边界的 JSON 描述文件,包含授权效果(Effect)、操作(Action)和资源(Resource)。IAM 支持两种策略类型:

  1. 系统策略 (System Policy):由火山引擎各产品团队创建与更新,用户可直接关联使用但无法修改。
  2. 自定义策略 (Custom Policy):由企业管理员自主编写与维护,支持极其精细的权限控制(如限制特定资源、特定 IP 或特定时间段)。

火山方舟预设策略(系统策略)#

为方便企业快速落地权限管控,火山方舟提供了多套开箱即用的预设策略:

策略名称 权限描述 适用企业角色 策略详情链接
ArkFullAccess 最高管理员权限:拥有对所有 Ark 服务的完全读写与配置权限。 算法负责人、核心研发、IT 运维 查看策略详情
ArkStandardGlobalAccess 标准管控权限:可查看并配置除模型开通外的所有资源。 普通算法工程师、后端研发 查看策略详情
ArkReadOnlyAccess 全局只读权限:可查看所有资源配置(如精调任务、推理接入点等),但无法修改。 产品经理、运营人员、审计人员 查看策略详情
ArkExperienceAccess 体验中心权限:仅可查看并体验模型广场中的预置模型。 业务试用人员、售前工程师 查看策略详情
ArkGlobalInitAccess 项目基础隔离权限:提供访问控制台所需的底层基础权限,必须配合其他项目级策略组合使用。
注意如配置项目级的管理权限,需要为子账号配置
ArkGlobalInitAccess权限,且不限制项目级别。示例请参见配置实战:为开发团队分配项目管理员权限。
需执行项目资源隔离的所有用户 查看策略详情
ServiceRoleForArk 服务关联角色:授权方舟平台以系统身份访问您账号下的其他关联云服务资源。 系统底层服务通信 查看角色详情

自定义权限策略配置#

在复杂企业场景中,系统预设策略往往无法满足“最小权限原则”。此时,建议企业安全架构师编写自定义权限策略。

最佳实践:定期审计自定义策略的使用情况,回收长期未使用的冗余权限;避免使用通配符 * 授予不必要的过大权限。自定义策略的版本更新需由企业自行维护。

企业级权限管控场景实践#

场景 1:模型调用与全生命周期管理#

以下示例演示如何通过自定义 JSON 策略,为算法工程师授予特定的模型管理权限(包括接入点的创建、启停、删除及 API 调用等)。
权限策略 JSON 示例:

json
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ark:CreateEndpoint",
                "ark:ListFoundationModels",
                "ark:ListCustomModels",
                "ark:ListFoundationModelVersions",
                "ark:ListEndpoints",
                "ark:StopEndpoint",
                "ark:StartEndpoint",
                "ark:GetEndpoint",
                "ark:DeleteEndpoint",
                "ark:UpdateEndpoint",
                "ark:GetModelChargeItem",
                "ark:InnerGetModelUnitPrice",
                "ark:GetEndpointExampleCode",
                "ark:GetApiKey",
                "tag:GetTagValues",
                "tag:GetTagKeys"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

细粒度资源隔离(Resource 限制): 若需严格限制该策略仅对特定项目的特定接入点生效,可将 Resource 字段从全局的 "*" 替换为具体的资源 ARN(Amazon Resource Name 风格的标识符),从而极大缩小爆炸半径:

json
"Resource": [
                "trn:iam::2100000xxx:user/username",
                "trn:iam::2100000xxx:group/usergroupname",
                "trn:iam::2100000xxx:project/projectname",
                "trn:ark:cn-beijing:2100000xxx:endpoint/ep-20240407133918-vdsmd3"
                ]

场景 2:按资源项目管理账号权限#

大型企业通常存在多个业务线(如 AIGC 业务部、智能客服部)。火山引擎提供 资源项目(Resource Project) 功能,通过将 IAM 策略与特定项目绑定,实现跨部门的资源与数据强隔离。
配置基于项目的管控时,必须组合使用 ArkGlobalInitAccess(全局基础权限)与特定的项目级别策略:

权限需求层级 全局生效策略 (不限制项目) 项目内生效策略 (限制到具体项目) 最终呈现效果
项目内体验 ArkGlobalInitAccess ArkExperienceAccess 用户仅能在指定项目内体验模型广场中的功能,无法触及其他项目。
项目内只读 ArkGlobalInitAccess ArkReadOnlyAccess 用户可查看指定项目下的所有精调任务、接入点等,不能进行变更。
项目内标准操作 ArkGlobalInitAccess ArkStandardGlobalAccess 用户可管理指定项目内除模型开通外的所有资源(适用于项目主力研发)。
项目内全权管理 ArkGlobalInitAccess ArkFullAccess 用户作为该项目的超级管理员,可配置和管理该项目内一切方舟资源。

资源精细化管理与分账#

为满足企业的成本核算与合规审计需求,建议深度使用资源项目与标签体系。

资源项目管理 (Resource Project)#

资源项目是企业内部环境隔离(如 Dev/Test/Prod)或部门隔离的最佳载体。

  • 逻辑分组:每个云资源只能属于一个项目,项目间的资源默认逻辑隔离。加入项目不会改变云资源底层的关联关系。
  • 独立核算:基于项目进行 IAM 授权不仅可维护数据安全,企业还可通过项目维度输出消费账单,精准计算各业务线的 AI 资源消耗成本。
  • 扩展阅读:火山方舟分账最佳实践 | 项目分账指南

标签管理 (Tagging)#

标签由一组 Key:Value 键值对组成,提供比项目更灵活的多维聚合能力。

  • 应用场景:通过标签实现按负责人追踪(如 Owner:ZhangSan)、按业务域分类(如 Domain:NLP)。支持基于标签进行权限控制(ABAC)及精细化分账。
  • 扩展阅读:云资源标签管理

配置实战:为开发团队分配项目管理员权限#

本节以企业常见的授权流程为例,演示如何为特定用户组配置 default(默认项目) 的 ArkFullAccess 权限。
前置条件:您必须使用主账号或具有 IAM 管理员权限(如关联了 AdministratorAccess 策略)的子账号登录控制台。
操作步骤:

  1. 定位用户/用户组: 登录火山引擎控制台,导航至 访问控制 - 用户页面。

  2. 发起授权: 在目标用户或用户组右侧的 操作 列中,单击 添加权限。

  3. 配置全局基础权限: 在 授权策略 搜索框中查找并勾选 ArkGlobalInitAccess。

    • 关键点:此时 限制到项目资源 必须选择 否(因基础管控界面读取权限需在全局生效)。
  4. 配置项目业务权限: 继续在搜索框中查找并勾选 ArkFullAccess。

    • 关键点:此时 限制到项目资源 必须选择 是,并在下拉菜单中选择目标项目(本例选择 default(默认项目))。
  5. 确认与生效: 检查策略与项目匹配无误后,单击 提交 按钮。权限变更即刻生效。目标团队成员重新登录后,即可在 default 项目下自由调度火山方舟资源。