为确保您的云资源使用安全,如非必要都应避免直接使用火山引擎账号(即主账号)来访问火山方舟。推荐的做法是使用IAM身份(即IAM用户和IAM角色)来访问火山方舟。
名称 | 说明 |
---|---|
主账号 | 火山主账号
|
IAM用户或子账号 | IAM用户即IAM账号,是IAM的一种实体身份类型。
|
用户组 | 用户组是IAM的一种实体身份类型,用户组可以对职责相同的IAM用户进行分类并授权,从而更高效地管理IAM用户及其权限。
|
角色 | IAM角色是一种虚拟用户,可以被授予一组权限策略。与IAM用户不同,IAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演。扮演成功后,可信实体将获得IAM角色的临时身份凭证,即安全令牌(STS Token),使用该安全令牌就能以IAM角色身份访问被授权的资源。
|
权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。火山引擎访问控制(IAM)产品提供了两种类型的权限策略:系统策略和自定义策略。系统策略统一由火山引擎各产品团队创建,策略的版本更新由火山引擎维护,用户只能使用不能修改。自定义策略由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。
火山方舟(Ark)管理员用户,拥有所有Ark服务的权限。适合算法、研发等角色,可查看和配置全部资源。主账号或账号管理员可以通过下面链接查看策略详情:权限策略-ArkFullAccess。
火山方舟(Ark)基础功能使用权限,可查看并配置除模型开通外的所有资源。主账号或账号管理员可以通过下面链接查看策略详情:权限策略-ArkStandardGlobalAccess。
火山方舟(Ark)只读用户,拥有Ark服务的只读权限。适合产品、运营等角色,可查看全部资源,包括精调任务、仓库模型、推理接入点等。主账号或账号管理员可以通过下面链接查看策略详情:权限策略-ArkReadOnlyAccess。
火山方舟(Ark)体验中心权限,可查看并体验模型广场中的模型,适合前期体验方舟以及模型能力阶段的用户。 主账号或账号管理员可以通过下面链接查看策略详情:权限策略-ArkExperienceAccess。
火山方舟(Ark)的服务关联角色,授权后允许方舟平台访问您账号下的其他服务资源。主账号或账号管理员可以通过下面链接查看信任策略详情:角色详情-ServiceRoleForArk。
如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。
在基于IAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。
本用例演示了创建一条模型接入,并且拥有 模型接入的停止/删除/编辑/API调用的权限。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ark:GetEnd", "ark:List*", "tag:GetTagValues", "tag:GetTagKeys",
{ "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范围实现。即可以通过限定用户范围、用户组、Project或资源ID来缩小权限。
"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" ]
当您需要配置IAM账号,使其拥有账号下A项目的权限,但是不具备B项目的权限,即限定用户只在A项目开发/查看/体验。您可以通过组合策略来达成。
全局策略 | 项目策略 | 账号权限描述 |
---|---|---|
ArkGlobalInitAccess | ArkExperienceAccess | 火山方舟体验中心权限,可在项目内查看并体验模型广场中的模型。 |
ArkGlobalInitAccess | ArkReadOnlyAccess | 火山方舟只读权限,可在项目内使用体验中心,并查看所有资源,包括精调任务、仓库模型、推理接入点等。 |
ArkGlobalInitAccess | ArkStandardGlobalAccess | 火山方舟基础功能使用权限,可在项目内查看并配置除模型开通外的所有资源。 |
ArkGlobalInitAccess | ArkFullAccess | 火山方舟管理员权限,可在项目内查看并配置管理所有资源。 |
下面以为用户配置default (默认项目)
的管理员ArkFullAccess
权限为例,演示完整操作流程。
ArkGlobalInitAccess
策略,将下面的策略复制到 JSON编辑器中。{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetUser", "iam:ListUsers", "iam:ListAttachedUserPolicies", "iam:ListGroupsForUser", "iam:ListAttachedUserGroupPolicies", "tos:GetObject", "tos:ListBucketMultipartUploads", "tos:ListMultipartUploadParts", "tos:ListBucket", "tos:ListBuckets", "tag:GetTagValues", "tag:GetTagKeys", "vmp:*", "speech_saas_prod:ListApplications", "speech_saas_prod:BatchListMegaTTSTrainStatus", "speech_saas_prod:ResourcePacksStatus", "speech_saas_prod:FirstOrCreateArkMegaTTS", "speech_saas_prod:ApplicationCredentials", "speech_saas_prod:AliasResourcePack", "speech_saas_prod:ServiceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ark:GetEvaluationResult", "ark:GetAccountType", "ark:ListMigratableEndpoints", "ark:MigrateEndpoint", "ark:EndpointSupportedMethods", "ark:*EndpointRolling", "ark:ListModelUnit*", "ark:GetModelUnitQuota", "ark:ListModelRateLimit", "ark:UpdateDataset", "ark:ValidateMaasFinetuneDataset", "ark:*WhiteListConfig", "ark:ListActions*", "ark:GetAction*", "ark:ValidateKnowledgeBaseOpened", "ark:*TagResources", "ark:EstimateToken*", "ark:ListDataCollectionPermissions", "ark:ChatCompletion", "ark:BotChatCompletion", "ark:ListModelChargeItems", "ark:ListAvailableModels", "ark:GetModelTPMQuota", "ark:CreateAutoPEDataRecord", "ark:GetExamplePromptList", "ark:GetDatasetVersion", "ark:ListPresetDatasetVersions", "ark:GetRawApiKey", "ark:CreateModelUnit", "ark:ScaleModelUnit", "ark:RenewModelUnit", "ark:TerminateModelUnit", "ark:OpenModelChargeItem", "ark:UpdateDataCollectionPermission", "ark:ListFoundationModelVersionsWithGroups", "ark:ListTopRiskyResources", "ark:ListPresetFoundationModelVersionGroups" ], "Resource": [] }, { "Effect": "Allow", "Action": [ "ark:GetFoundationModel*", "ark:ListFoundationModelVersion*", "ark:CreateModelCustomizationJob", "ark:CreateModelCustomizationJobWithSettings", "ark:CreateEvaluationJob", "ark:*CreateEndpoint", "ark:ListAdminEvaluationResultDatasets", "ark:CreateInferenceService", "ark:CreateBatchInferenceJob", "ark:EstimateModelUnitPrice", "ark:GetModelUnitBenchmark", "ark:GetEndpointE2EEncryptionStatus", "ark:GetModelChargeItem" ], "Resource": [ "trn:ark:*:*:foundationmodel/*" ] } ] }
default (默认项目)
。同上步骤,您也可以为用户组配置策略,使其拥有某项目的权限。
项目可以根据资源的用途、权限和归属等维度对您拥有的云资源进行分组,从而实现企业内部多用户、多项目的资源分级管理。每个云资源只能属于一个项目,加入项目不会改变云资源之间的关联关系。
基于项目(即一组资源)进行IAM授权,有利于维护资源独立、数据安全;同时可以从项目维度查看资源消费账单,便于计算云资源使用成本。
本文以实例为例,介绍如何对云资源进行项目管理。项目管理功能的一般使用流程如下:
火山方舟已完成项目的对接,因此您可以在 火山引擎-费用中心 根据项目查看分账账单。
更多信息请查看文档项目分账。
资源标签是由一组KV键值对组成,您可以通过资源标签从不同维度对云资源进行分类和聚合管理,并且使用于标签制授权和资源分账等场景。火山方舟已经完成了系统标签 create_by
的对接,因此您可以在费用中心可以按照用户维度做分账。
您可前往“费用中心-账单管理-费用标签”,启用 sys:ark:createdBy
作为费用标签,启用后,该费用标签将会在账单明细数据中的“标签”列体现;