You need to enable JavaScript to run this app.
导航

创建 IAM 子账号并授权

最近更新时间2024.01.26 14:07:22

首次发布时间2021.02.23 10:42:39

IAM 用户是 IAM 中的一种身份,对应某一个操作实体(运维工程师或者应用程序)。通过创建新的 IAM 子账号并授权,子账号用户便可以访问相关资源。本文为您介绍如何创建 IAM 子账户并给子账号添加项目权限。

简介

每个主账号均可以创建多个子账号,授予不同的权限。管理账号下不同身份对云资源的访问权限。

适用场景

  • 独立管理资源: 不同业务创建不同子账号。
  • 安全问题: 创建一个子账号,创建子账号 AK/SK,专门用于调用 OpenAPI 接口。有效避免主账号 AK/SK 泄露。

注意事项

  • 主账户的密钥具有账户的完全权限,密钥泄露可能会造成最大化的资产损失,强烈建议您建立子用户,按需分配权限,并使用子用户的密钥访问云资源。
  • Access Key ID和Secret Access Key 是您访问火山引擎 API 的密钥,具有该账户完全的权限,且最多只能创建两个。请您妥善保管和定期更换密钥,并及时删除原密钥。

创建子账号

  1. 登录视频点播控制台,通过右上角个人中心,单击访问控制按钮。

  2. 页面跳转至访问控制 > 身份管理页面,单击新建用户开始创建,每个用户即一个子账号

  3. 请选择您要新建用户的方式。选择任意创建方式:通过用户名创建、手机号创建等。

  4. 权限设置,选择关联策略及关联角色。单击左侧角色策略管理中创建和管理对应的策略、角色。

说明

用户创建成功后,您可以在用户详情中为用户添加权限。

策略管理

策略是对权限的一种描述,用户、用户组及角色都需要通过关联策略来获得权限。策略包含两种类型:

  • 系统预设策略: 是由火山引擎创建和管理的一些常见的权限集合,系统预设策略只能用于授权,用户不可编辑和修改。
  • 自定义策略: 是由您自行创建和编辑的策略,用于更精细化的权限管理场景。

系统预设策略

视频点播当前支持的系统预设策略如下表所示。

策略名备注
VodFullAccess视频点播所有功能全读写权限。适合运维、研发等角色,可查看和配置视频点播内全部资源。
VodQualityAccess视频点播质量平台只读权限。适合基础运营、排障场景,权限较少,一般不推荐。
VODQualityFullAccess视频点播质量平台全读写权限。适合运营、排障场景,可查看和配置质量平台资源。
VodReadOnlyAccess视频点播所有功能只读权限。适合产品、运营等角色,可查看视频点播内全部资源。

自定义策略

  1. 选择自定义策略页签,单击新建自定义策略按钮,进入新建自定义策略页面。

  2. 切换至 JSON 编辑器页签,输入策略名称、编辑策略内容。策略语法的详细说明,请见下方策略语法规范

策略语法规范

火山引擎访问控制权限策略通过 JSON 格式的 PolicyDocument 表达,由以下几个元素组成:

元素名说明
Statement策略声明,对策略语句进行封装。

Effect

指定策略所产生的结果是 “允许” 还是 “显式拒绝”,可选项为:

  • Allow(允许)
  • Deny(拒绝)
Action指定具体的操作,与云服务 API 的 Action 含义相同,因此在描述 Action 时需要添加前缀指定所属的云服务,Action 部分支持使用 “*” 和 “?” 两种通配符。视频点播服务的前缀为 vod

Resource

指定 Action 作用的资源。资源以 Trn 的形式配置,格式为:trn: {service}:{region}:{account}:{resourceType}/{spacename},其中:

  • trn:为固定前缀
  • {service}:对应的云服务代码(视频点播固定为 vod)
  • {region}:资源所在的地域(对于不区分地域的全局资源,此参数值为空)
  • {account}:资源所属的火山引擎账号 ID(可通过火山引擎官网页面右上角 用户 > 账号管理 > 主账号信息 获取)
  • {resourceType}:资源的类型,例如:space(视频点播)
  • {spacename}:资源的空间名称。

策略语法示例

策略名策略内容示例

${产品英文名}FullAccess

需要视频点播服务内全部 API 的权限(对于全部 API,可以直接用通配符 * 来表达):

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vod:*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

${产品英文名}ReadOnlyAccess

仅包含服务内全部读接口的权限(基于接口命名规范,数据读取接口命名以 List 和 Get 开头),而不包含写接口的权限:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vod:List*",
        "vod:Get*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

${产品英文名}${功能模块名或角色名}Access

需要包含指定模块内的接口的权限,可以使用通配符来表达重复的部分。例如接口名中间部分都包含 Resource 字段,因此可以这样来表达:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vod:*Resource*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

${产品英文名}ProductFullAccess

仅允许访问指定业务:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vod:*"
      ],
      "Resource": [
           "trn:vod::21000xxxxx:space/1633341028192xxxxxx"
      ]
    }
  ]
}

给子账号添加项目权限

项目管理是火山引擎提供的一种资源管理方式,您可以对不同业务或项目使用的云资源进行分组管理。基于项目(即一组资源)进行 IAM 授权,有利于维护资源独立、数据安全;同时可从项目维度查看资源消费账单,便于计算云资源使用成本。

视频点播主要是空间资源和项目关联:

alt

空间资源和项目关联说明如下:

  • 主账号将视频点播空间 A、空间 B 放在项目 1 下,给子账号 1 开通项目 1 的权限。
  • 主账号将空间 C 放在项目 2 下,给子账号 2 开通项目 2 的权限。

那么:

  • 子账号 1 登录控制台或使用 OpenAPI 时,只能查看并使用空间 A、空间 B,无法查看空间 C。
  • 相应的,子账号 2 登录控制台或使用 OpenAPI 时,只能查看并使用空间 C,以及该空间产生的数据用量,无法查看空间 A、空间 B。

子账号授予项目权限,以授予 VODFullAccess 为例,具体操作如下:

  1. 登录访问控制控制台,选择左侧导航栏策略管理

  2. 切换至系统预设策略页签,产品选择视频点播

  3. 单击 VODFullAccess 权限操作列表中管理按钮,切换至授权页签下的项目授权页签。

  4. 单击添加授权按钮,选择本次需要授权的子账号,并选择希望给子账号授予权限的项目,点击“确定”按钮,完成授权。

获取账号 AK/SK

获取账号密钥的操作如下:

  • 在身份管理中获取子账号 AK/SK
  • 在 API 访问密钥中获取主账号 AK/SK

在身份管理中获取子账号 AK/SK

  1. 选择左侧导航栏访问控制 > 身份管理中,找到子账号。单击管理按钮进入用户详情页面。

  2. 选择下方密钥页签,单击新建密钥按钮,自动生成一组 Access Key ID/Secret Key ID。

在 API 访问密钥中获取主账号 AK/SK

  1. 选择左侧导航 API 访问密钥,进入密钥列表页面,单击新建密钥按钮,在提示框中,单击继续创建按钮。

  2. 在密钥列表中自动生成一组 AK/SK 。