You need to enable JavaScript to run this app.
导航
使用 IAM 用户进行项目权限划分
最近更新时间:2024.08.08 23:17:14首次发布时间:2023.12.28 21:23:00

IAM(Identity and Access Management)访问控制是火山引擎为您提供的管理用户身份和资源访问权限的管理系统。

本文为您介绍如何使用 IAM 用户(又称子账号)对控制台进行项目权限划分,以实现对子账号进行项目粒度的权限控制。

基本概念

  • 主账号:注册的火山引擎账号。
  • 子账号:通过主账号的访问控制功能创建的用户。
  • 用户组:即一组子账号的集合,您可以通过为用户组设置权限实现为组内用户统一授权。
  • 角色:是一种虚拟实体,在视频直播中授信跨服务关联角色后可使视频直播跨服务访问其他资源,如点播、图片和对象存储等。
  • 策略:即一组权限的集合,火山引擎访问控制提供自定义策略功能,各产品服务也提供满足各自业务使用的系统预设策略。

策略说明

策略是一组权限的集合,您可以为子账号绑定策略以对其进行相应的授权。

系统预设策略

视频直播当前提供 LIVEFullAccessLIVEReadOnlyAccess 两种系统预设策略供您为子账号进行绑定。

LIVEFullAccess:视频直播服务全部功能的管理权限。
LIVEReadOnlyAccess:视频直播服务全部功能的只读访问权限。

自定义策略

访问控制提供支持为视频直播服务提供自定义策略功能,您可以参考新建自定义策略,自定义精细化的策略权限。

前提条件

已开通视频直播服务。

操作步骤

创建项目

  1. 使用主账号登录火山引擎访问控制

  2. 左侧导航栏选择资源管理 > 项目

  3. 单击新建项目,填写项目名称单击确定

创建 IAM 用户并授权

  1. 使用主账号登录火山引擎访问控制

  2. 左侧导航栏选择身份管理 > 用户

  3. 单击创建用户,选择通过用户名创建,填写用户名等基本信息,配置登录设置。

    • 编程访问:勾选编程访问将为子账号自动生成 API 访问密钥,用户创建完成后可以使用子账号的 API 访问密钥发起请求。
    • 控制台访问:勾选控制台访问时需为子账号设置登录密码,用户创建完成后可以使用子账号的用户名及密码登录控制台进行访问。

  4. 单击下一步,进入子账号的权限设置页面,为其添加策略、作用范围选择指定项目。

    说明

    权限设置作用范围指定项目时支持选择多个项目。

  5. 单击下一步,检查配置无误后单击提交

后续操作

使用 IAM 用户访问视频直播控制台

  1. 打开火山引擎登录页面

  2. 选择 IAM 子用户登录,打开IAM 子用户登录页面。

  3. 填写主账号及子账号信息后单击立即登录

  4. 在产品与服务中心选择视频直播,进入视频直播控制台。

获取 IAM 用户的密钥并发起请求

  1. 使用主账号登录火山引擎访问控制

  2. 左侧导航栏选择身份管理 > 用户,进入用户列表页面。

  3. 单击 IAM 用户右侧的管理,进入用户详情页面,在用户详情的密钥页签查看当前 IAM 用户的密钥。

    说明

    • 您可以在密钥列表中对正在使用的 Access Key 进行禁用,禁用后密钥访问将失效,启用后密钥重新生效。

    • Access Key ID 和 Secret Access Key 是您访问火山引擎 API 的密钥,具有该 IAM 用户的全部权限,且每个IAM 用户最多创建两个。

    • 请您妥善保管并定期更换密钥,及时删除不再使用的密钥,密钥删除后密钥将彻底失效,不可恢复,请谨慎操作。

  4. 使用 IAM 用户访问密钥调用 SDK,代码示例如下(以 Java 的 CreateDomain 为例)。

    说明

    • 使用 IAM 用户的密钥初始化 LiveService 实例。其中访问密钥用于身份验证和授权,以便访问视频直播服务。
    • 调用示例提供的 createDomain 方法向视频直播发起添加域名的请求,该方法会将新建域名所需的参数传递给视频直播服务。
    • 实例使用 IAM 用户 AKSK 生成签名,并将签名添加进该请求中。以确保请求的身份验证和完整性,以防止未经授权的访问和数据篡改。
    package com.volcengine.example.live.v20230101;
    
    
    import com.volcengine.model.live.v20230101.*;
    import com.volcengine.service.live.v20230101.LiveService;
    
    public class CreateDomainExample {
        public static void main(String[] args) {
            // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
            // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET
            LiveService service = LiveService.getInstance();
            service.setAccessKey("ACCESS_KEY_ID");
            service.setSecretKey("ACCESS KEY_SECRET");
    
            CreateDomainBody body = new CreateDomainBody();
    
            try {
                CreateDomainRes resp = service.createDomain(body);
                System.out.println(resp);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }