
# 身份认证与访问控制
#### 身份认证
用户通过CloudRobo控制台访问CloudRobo服务，其本质都是通过CloudRobo提供的REST风格的API接口进行请求。
CloudRobo的接口均需要进行认证鉴权以此来判断是否通过身份认证。通过控制台发出的请求需要通过Token认证鉴权。
#### 访问控制
CloudRobo作为一个完备的AI开发平台，支持用户对其进行细粒度的权限配置，以达到精细化资源、权限管理之目的。为了支持客户对CloudRobo的权限做精细化控制，提供了3个方面的能力来支撑，分别是：IAM权限控制、委托授权和工作空间。
- IAM权限控制 用户使用CloudRobo的任何功能，都需要通过IAM权限体系进行正确的权限授权。例如：用户希望在CloudRobo创建资产，则该用户必须拥有 "cloudrobo:asset:create"的权限才可以完成操作（无论界面操作还是API调用）。
  管理员新创建的用户在没有配置细粒度授权策略时，默认具有CloudRobo所有权限。如果需要控制用户的详细权限，管理员可以通过IAM为用户组配置细粒度授权策略，使用户获得策略定义的权限，操作对应云服务的资源。基于策略授权时，管理员可以按CloudRobo的资源类型选择授权范围。
  
- 委托授权 为了完成数据准备、模型训练等功能的各种操作，CloudRobo在任务执行过程中需要访问用户的其他服务，例如训练过程中，需要访问OBS读取用户的训练数据。在这个过程中，就出现了CloudRobo"代表"用户去访问其他云服务的情形。从安全角度出发，CloudRobo代表用户访问任何云服务之前，均需要先获得用户的授权，而这个动作就是一个"委托"的过程。用户授权CloudRobo再代表自己访问特定的云服务，以完成其在CloudRobo平台上执行的相关任务。
  CloudRobo服务不会保存用户的Token认证凭据，在后台作业中操作用户的资源（如OBS桶）前，需要用户通过IAM委托向CloudRobo显式授权，CloudRobo在需要时使用用户的委托获取临时认证凭据用于操作用户资源。
  
- 工作空间 工作空间是CloudRobo面向企业客户提供的一个高阶功能，用于进一步将用户的资源划分在多个**逻辑隔离**的空间中，并支持以空间维度进行访问的权限限定。
  在开通工作空间后，系统会默认为您创建一个"default"空间，您之前所创建的所有资源，均在该空间下。当您创建新的工作空间之后，相当于您拥有了一个新的"CloudRobo分身"，您可以通过菜单栏的左上角进行工作空间的切换，不同工作空间中的工作互不影响。CloudRobo的用户需要为不同的业务目标准备数据、开发和部署模型、管理机器人，此时可以创建多个工作空间，把不同应用开发过程的输出内容划分到不同工作空间中，便于管理和使用。
  
 
#### 远程接入管理
使用本地IDE远程SSH连接CloudRobo的Notebook开发环境时，需要用到密钥对进行鉴权认证。
