# 多租户和统一管理

## 概览

随着现代数据平台跨团队、跨业务单元扩展，支持**多租户**、确保**数据隔离性与治理**并**简化跨联邦集群的管理**变得尤为重要。

本文档提供了一份参考架构及功能清单，用于在多租户环境中实现安全、隔离且易于管理的 Alluxio 集群部署。

***

## 关键特性

### 1. 认证与授权

* 支持与企业身份提供商（如 OKTA）的集成。
* 通过身份验证后，用户会获得安全 token（JWT），并随请求传递。
* 由策略引擎（如 OPA ‑ Open Policy Agent）执行细粒度访问控制，可基于自定义规则评估每个请求。

### 2. 租户隔离

* 缓存管理隔离
  * 按租户配置缓存（TTL、配额、驱逐策略）
  * 独立运维控制

### 3. 集群联邦

* 当部署包含多个集群时，提供统一管理功能：
  * 监控
  * 许可证管理
  * 运维管理

确保即使扩展至数十个/数百个集群时仍可管理。

***

## 架构概览

<figure><img src="https://3373003307-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwnevsZwPNckCUenYadxu%2Fuploads%2Fgit-blob-fe72a4c0fd525f73f64eb79c4510c5fa0cb48885%2Fmulti-tenancy-architecture.png?alt=media" alt=""><figcaption></figcaption></figure>

示意图说明：采用API网关作为核心组件，统一处理跨Alluxio集群的认证授权。用户通过管理控制台或认证服务器获取 token, API网关验证后路由至对应集群coordinator。网关集成策略引擎 (OPA)进行访问决策，支持定向集群请求与组播操作。管理控制台提供集中式仪表盘，通过网关接口监控和管理所有集群。

### 组件

**1. 管理控制台**

* 提供可视化集群管理界面
* 展示跨集群监控数据
* 通过认证服务器验证用户身份
* 与API网关交互执行操作

**2. API 网关**

* 所有请求的统一入口
* 路由请求至对应集群
* 集成认证和授权功能

### 工作流示例：缓存 TTL 更新

1. **用户认证**

* 用户在管理控制台或认证服务器（如 OKTA）登录
* 认证成功后获得 JWT token

2. **请求提交**

* 用户向 API 网关发送请求，内容包括：
  * 获得的 JWT token
  * 期望的 TTL 值
  * 目标租户信息

3. **访问控制检查**

* API 网关验证 token 有效性。
* 策略引擎（OPA）校验用户是否有权限：
  * 修改缓存设置
  * 访问指定租户资源

4. **执行请求**

* 若授权通过，API 网关将请求转发至：
  * 特定集群 coordinator（单集群操作）
  * 所有相关coordinator（多集群操作）
* Coordinator 将变更应用至 worker节点
* 更新配置持久化保存

***

## 认证与授权

### 认证

初期采用 OKTA 进行统一身份认证。用户登录并通过验证后，OKTA 会为 API 网关生成 [JSON Web Token (JWT)](https://auth0.com/docs/secure/tokens/access-tokens/access-token-profiles)。JWT为编码的JSON对象，包含用户声明信息（如角色/组标识符）。

### 授权

授权机制确保用户仅能访问其被允许访问的资源。系统采用 [Open Policy Agent (OPA)](https://www.openpolicyagent.org/docs/latest/#running-opa) 作为策略引擎来执行访问控制。OPA 采用声明式语言 Rego 编写细粒度、上下文感知的策略，通过其决策 API 判断请求是否允许执行。

## 多租户

[用户角色访问控制](https://documentation.alluxio.io/ee-ai-cn/ai-3.6/start/overview/user-roles-access-control)提供Alluxio 系统内部用户访问与权限管理。可创建不同的用户角色，并为每个角色配置特定的访问层级和权限，确保用户仅能访问其被授权的资源。

## 集群联邦

关于在多可用区环境中如何搭建与管理 Alluxio 集群，请参见 [多可用区（Multi‑AZ）](https://documentation.alluxio.io/ee-ai-cn/ai-3.6/data-access/high-availability/multi-az)章节。

## 许可证管理

当集群数量较多时，可进行集中式许可证管理与下发与执行。详情请参见[许可证](https://documentation.alluxio.io/ee-ai-cn/ai-3.6/start/install/license)章节。
