访问控制(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 支持两种策略类型:
- 系统策略 (System Policy):由火山引擎各产品团队创建与更新,用户可直接关联使用但无法修改。
- 自定义策略 (Custom Policy):由企业管理员自主编写与维护,支持极其精细的权限控制(如限制特定资源、特定 IP 或特定时间段)。
火山方舟预设策略(系统策略)#
为方便企业快速落地权限管控,火山方舟提供了多套开箱即用的预设策略:
| 策略名称 | 权限描述 | 适用企业角色 | 策略详情链接 |
|---|---|---|---|
| ArkFullAccess | 最高管理员权限:拥有对所有 Ark 服务的完全读写与配置权限。 | 算法负责人、核心研发、IT 运维 | 查看策略详情 |
| ArkStandardGlobalAccess | 标准管控权限:可查看并配置除模型开通外的所有资源。 | 普通算法工程师、后端研发 | 查看策略详情 |
| ArkReadOnlyAccess | 全局只读权限:可查看所有资源配置(如精调任务、推理接入点等),但无法修改。 | 产品经理、运营人员、审计人员 | 查看策略详情 |
| ArkExperienceAccess | 体验中心权限:仅可查看并体验模型广场中的预置模型。 | 业务试用人员、售前工程师 | 查看策略详情 |
| ArkGlobalInitAccess | 项目基础隔离权限:提供访问控制台所需的底层基础权限,必须配合其他项目级策略组合使用。 注意如配置项目级的管理权限,需要为子账号配置 ArkGlobalInitAccess权限,且不限制项目级别。示例请参见配置实战:为开发团队分配项目管理员权限。 |
需执行项目资源隔离的所有用户 | 查看策略详情 |
| ServiceRoleForArk | 服务关联角色:授权方舟平台以系统身份访问您账号下的其他关联云服务资源。 | 系统底层服务通信 | 查看角色详情 |
自定义权限策略配置#
在复杂企业场景中,系统预设策略往往无法满足“最小权限原则”。此时,建议企业安全架构师编写自定义权限策略。
最佳实践:定期审计自定义策略的使用情况,回收长期未使用的冗余权限;避免使用通配符
*授予不必要的过大权限。自定义策略的版本更新需由企业自行维护。
企业级权限管控场景实践#
场景 1:模型调用与全生命周期管理#
以下示例演示如何通过自定义 JSON 策略,为算法工程师授予特定的模型管理权限(包括接入点的创建、启停、删除及 API 调用等)。
权限策略 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 风格的标识符),从而极大缩小爆炸半径:
"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 策略)的子账号登录控制台。
操作步骤:
-
定位用户/用户组: 登录火山引擎控制台,导航至 访问控制 - 用户页面。
-
发起授权: 在目标用户或用户组右侧的 操作 列中,单击 添加权限。
-
配置全局基础权限: 在 授权策略 搜索框中查找并勾选
ArkGlobalInitAccess。- 关键点:此时 限制到项目资源 必须选择 否(因基础管控界面读取权限需在全局生效)。
-
配置项目业务权限: 继续在搜索框中查找并勾选
ArkFullAccess。- 关键点:此时 限制到项目资源 必须选择 是,并在下拉菜单中选择目标项目(本例选择
default(默认项目))。
- 关键点:此时 限制到项目资源 必须选择 是,并在下拉菜单中选择目标项目(本例选择
-
确认与生效: 检查策略与项目匹配无误后,单击 提交 按钮。权限变更即刻生效。目标团队成员重新登录后,即可在
default项目下自由调度火山方舟资源。