实例管理
本章面向实例运维人员:为整个 DeviceChain 安装环境中的所有人运维该环境的超级用户。如果你只在某个租户内工作,就看不到这些界面,可以跳过本章。
管理控制台用于创建和删除租户、决定每个租户的套餐层级、管理登录的人员及其角色、接入外部身份提供商、审阅整个实例中发生的变更,以及设置实例范围的默认值。
打开管理控制台
超级用户登录后会直接进入管理控制台,无需选择租户。在租户控制台中,用户菜单也提供 Admin console(用户菜单)。管理控制台只对超级用户开放;其他人会被送回登录页面。
侧边栏在标志下方显示 Admin Console(管理控制台),页眉右侧有一个 Admin(管理)徽章。Platform(平台)下的条目有:
- Tenants(租户),包含 List(列表)、Tiers(层级)和 Deletions(删除)。
- Identities(身份),包含 List、Roles(角色)和 Identity providers(身份提供商)。
- AI Providers(AI 提供商)、Audit(审计)和 Settings(设置)。
租户
Tenants → List(租户 → 列表)是实例的租户注册表。租户是平台保存的一条记录,而不是平台去部署的东西:创建租户立即生效,不需要新的服务器或服务。
每一行显示租户的令牌和名称、以彩色标签表示的层级、状态以及任何自由格式的配置。正在删除的租户保留其行,标记为 Deleting(删除中)及删除开始的日期,直到删除完成。
创建租户
选择 New tenant(新建租户)。表单需要填写:
- Token(令牌):租户在整个平台中的 ID。它根据名称,按实例的令牌掩码生成,掩码显示在字段下方,旁边的按钮可再生成一个。之后不可更改。
- Name(名称):显示名称。
- Tier(层级):租户所遵循的套餐(参见层级)。每个租户都有一个层级。
- Config (JSON)(配置,JSON):可选的自由格式 JSON 对象。
- 租户自己的限额,见下文租户的设置。留空则继承。
然后选择 Create tenant(创建租户)。
租户页面
打开租户即可编辑它。页面显示名称及旁边的令牌、层级和状态徽章,以及两个操作:Disable(禁用;已禁用时为 Enable,启用)和 Delete(删除)。被禁用的租户不允许任何人进入,直到你重新启用。
选项卡上方的 Single sign-on(单点登录)面板说明该租户的人员是否必须通过单点登录登录。Require SSO(要求单点登录)会先让你确认,因为租户的密码会话会在下次刷新时结束。除非至少有一个已启用的身份提供商连接为该租户服务,否则会被拒绝。超级用户不受此限制,因此身份提供商故障不会把你锁在外面。参见要求单点登录。
Basic(基本信息)选项卡可编辑名称、层级和配置。令牌可见但不可更改。更改层级会在一分钟内生效。
租户的设置
Settings 选项卡保存这个租户所遵循的限额,适用于需要与其层级不同的情形。留空的字段会继承:先取层级的值,再取平台默认值。这些字段包括摄取速率和突发量、出站连接器的出站速率和突发量、External AI routing(租户是否同意把规则描述发送给外部 AI 模型,默认关闭)、AI 起草速率和突发量、Held command ceiling(暂存命令上限)、Shed priority(负载削减优先级)以及三个地理围栏限额:Geofence count(地理围栏数量)、Points per geofence(每个地理围栏的角点数)和 Geofence point budget(地理围栏角点总预算)。控制台中的每个字段都带有简短说明。Save changes(保存更改)会同时保存 Basic 和 Settings 选项卡。
Effective settings(生效设置)选项卡是只读的。它显示摄取、出站和 AI 起草速率及突发量的结果:层级的值、此租户的覆盖值,以及实际生效的值,并用徽章标明来源。暂存命令上限、负载削减优先级和地理围栏限额以同样的方式解析,但此选项卡不列出它们。设置的回退顺序是:自身的覆盖值、层级、平台默认值。平台默认值是真实的限额,绝不是“无限制”。当值来自某个服务自身的默认值时,控制台显示 Set by the service(由服务设定)。说明中的层级名称链接到该层级。
AI models(AI 模型)选项卡为租户的每项 AI 功能选择所用的 AI 模型。它需要可选的 AI 服务;在没有该服务的实例上,选项卡会说明该功能区未部署。限额和授权如何运作,请参阅租户层级和治理与配额。
删除租户
Delete 会打开确认框。请仔细阅读:删除无法撤销。租户的登录会立即被吊销,其设备、仪表板和历史数据随后在后台擦除,至少需要 12 小时。在此完成之前,租户的令牌保持保留状态。
删除进行期间,租户页面不再有 Disable 和 Delete 按钮以及单点登录面板,同时出现一个 Deletion(删除)选项卡。该选项卡以一行状态开头,说明删除正在等待什么。依次为:
- Waiting on(正在等待):仍保存着租户数据的一个或多个存储系统。
- 所有存储系统都报告已清理完毕,删除再多等一小段时间,以确认没有更多数据到达。
- 数据回收完成,令牌在重新可用之前处于保留期:默认约 12 小时。
- 所有检查均已通过,删除将在下一次清扫时完成。
状态下方的表格中,租户有数据的每个存储系统占一行,并显示其状态:
- Clean(已清理):那里没有留下该租户的任何东西。
- Retaining(保留中):数据仍被保留,并会一直保留到有人更改某些设置为止。控制台知道修复方法时,会在该行下方说明该怎么做。
- Retrying(重试中):一次尝试失败,下一次清扫会自动重试。
每行还显示已擦除的记录数和上次检查的时间。Detail(详情)列包含存储系统自己的备注。其中一些是很长的内部说明,解释系统有意不处理的内容,例如生命周期很短的登录记录;Clean 行上的备注只是脚注,不是需要处理的问题。删除进行期间,该选项卡会自动刷新;如果你刚删除后它是空的,说明第一次检查尚未运行,一分钟内就会开始。
删除列表
Tenants → Deletions(租户 → 删除)按从新到旧的顺序列出实例上的所有租户删除。使用 All(全部)、In progress(进行中)和 Completed(已完成)按钮进行过滤。每一行显示令牌、删除的请求时间、状态(附带与该租户 Deletion 选项卡相同的一行摘要)、已擦除的记录数,以及已清理或仍保存数据的存储系统数量。
这个列表是长期记录。删除完成后,租户的行和页面都会消失,因此已完成的删除只出现在这里。当有人要求你证明某个客户的数据已被擦除时,请打开它。完整时间线请参阅租户删除。
层级
层级是租户所购买的套餐:该层级的每个租户所遵循的默认限额,以及这些租户可使用哪些 AI 模型。Tenants → Tiers(租户 → 层级)列出它们,每个层级包括彩色标签、名称、描述和所含租户的数量。
拖动某行的手柄可更改层级的列出顺序。该顺序仅用于展示:它不是排名,也不据此计算任何内容。New tier(新建层级)创建层级。定义层级本身不会改变任何东西;只有在租户以该层级创建或迁移到该层级之后才会生效。
层级页面有三个选项卡。Basic 包含不可更改的令牌、名称、面向运维人员的描述,以及其标签的 Color(颜色)。颜色仅用于展示。
Settings 保存层级的 Ceilings(上限):摄取、出站和 AI 起草的速率及突发量。字段留空则使用平台默认值。仍可在租户自己的 Settings 选项卡上为其设置覆盖值。当层级下有租户时,保存后新的上限会在一分钟内对它们生效,无需重启。
层级还可以携带暂存命令上限、负载削减优先级和三个地理围栏限额,该层级的租户以同样方式继承它们。控制台没有在层级上提供这些字段:它们通过管理 API 设置,保存此选项卡时会保持原样。租户在其 Settings 选项卡上自己的值仍优先于层级的值。
AI models 选择该层级授予哪些 AI 模型,需要可选的 AI 服务。只要还有任何租户属于某个层级,该层级就不能删除。参见租户层级。
身份
Identities → List(身份 → 列表)是实例的人员目录。一个人就是一个以电子邮件地址为键的身份,可以是多个租户的成员。列表显示每个身份的电子邮件、姓名、状态、任何系统角色,以及所属租户的数量。
New identity(新建身份)需要填写电子邮件、密码、名和姓,以及任何 System roles(系统角色)。系统角色控制对管理控制台及其 API 的访问;普通人员请留空。租户成员关系在身份创建之后再添加。
身份页面顶部有 Disable 和 Delete。被禁用的身份无法登录,其会话在下次刷新时结束。删除会移除该身份及其所有成员关系。
- Access(访问)设置身份的 System roles(之后选择 Save 保存),并通过 Set password(设置密码)替换其密码。
- Memberships(成员关系)列出它所属的租户,每个都带有状态和租户角色。更改角色后选择 Save roles(保存角色),或对该成员关系执行 Disable 或 Remove(移除)。禁用成员关系只会让此人无法进入那一个租户。要添加成员关系,请在 Add to tenant(添加到租户)下选择租户和角色,然后选择 Add membership(添加成员关系)。
角色
Identities → Roles(身份 → 角色)是整个实例的角色目录。system 角色控制对管理控制台及其 API 的访问;tenant 角色控制成员在租户内可以做什么。每个角色列出其权限项(authorities),即它授予的权限。* 授予该角色范围内的全部权限。
打开某个角色可修改其名称、描述和 Authorities(权限项),然后选择 Save changes。角色一旦创建,其范围和令牌即固定。New role(新建角色)创建角色;Delete 会从所有持有者身上移除该角色。
身份提供商
Identities → Identity providers(身份 → 身份提供商)用于接入外部 OpenID Connect 提供商(例如 Google Workspace 或 Microsoft Entra ID),人员可通过它们登录。列表显示每个连接的名称、种类、颁发者、它代表的电子邮件域、其端点是否已获批准,以及状态。连接初始为禁用,在有人批准提供商的端点之前无法启用。
列表下方的 Link requests(关联请求)收集因匹配到某个现有身份、而该身份没有与该提供商建立关联而被拒绝的登录。请求在你 Approve(批准)之前不会授予任何权限;Reject(拒绝)会删除它。
New connection(新建连接)会打开表单。Kind(种类)决定连接面向的对象:
- Tenant(租户):为一个或多个租户自己的人员提供的提供商。通过它登录的人只能进入它所服务的租户,永远无法触及持有系统角色的身份。
- Instance(实例):运维人员自己的提供商。它只能通过显式操作与身份关联,并且必须要求某种认证方法(例如
mfa),或被确认为强制多因素登录的提供商。它不服务任何租户,只能以超级用户身份进入租户。
表单还需要令牌、名称、提供商的 Issuer(颁发者)、它给你的 Client ID(客户端 ID)和 Client secret(客户端密钥),以及可选的作用域、电子邮件声明,还有每次登录都必须携带的认证方法和声明。令牌和颁发者之后不可更改。客户端密钥是只写的:不会再次显示。如果提供商运行在你的网络内部,且其 TLS 证书由你自己的证书颁发机构签发,请把该 CA 证书(PEM)粘贴到 Private CA certificates(私有 CA 证书)下,或选择文件。
连接的页面有四个选项卡,顶部有 Enable(或 Disable)和 Delete。
Endpoints(端点)显示发现快照:提供商最近一次获取到的授权、令牌、签名密钥和登出端点,以及指纹和批准情况。登录只使用在此处获批的端点。在批准之前,该选项卡提供 Approve endpoints(批准端点),而 Enable 保持不可用。Refresh from provider(从提供商刷新)会重新获取端点;如果它们发生了变化,批准会被撤回,通过该连接的登录会被拒绝,你需要审阅并批准新的端点后才能恢复。
Settings 用于编辑连接。其 General(常规)部分显示固定的颁发者和 Callback address(回调地址,需在提供商处注册为重定向 URI),然后是名称、客户端 ID、作用域、电子邮件声明和必需的认证方法。其余部分处理客户端密钥、必需的声明、私有 CA,以及登出时是否同时在提供商处登出。
Private CA(私有 CA)部分适用于其 TLS 证书由你自己的证书颁发机构签发、位于你网络内部的提供商。你添加的证书仅对该提供商受信任,作为系统受信任根证书之外的补充,并且只接受证书,绝不接受私钥。Verify and save bundle(验证并保存证书包)会先用新的证书包连接提供商,如果其证书无法链到该证书包,则不保存任何内容。如果提供商随后给出不同的端点,批准会被撤回,需要你重新审阅。Remove bundle(移除证书包)会恢复为仅使用系统的根证书。
Tenants 明确指定通过此连接登录可以进入哪些租户,不能进入其他任何租户。更改列表后选择 Save tenants(保存租户)。
Domains(域)列出此连接所代表的电子邮件域,以及每个域由谁在何时声明。在 Add a domain(添加域)下添加一个,或 Remove 它。免费邮箱提供商和公共后缀会被拒绝,且一个域只能属于一个连接。
这些截图中的连接已获批准但仍处于禁用状态,因此目前还没有人能通过它登录。完整的分步设置请参阅配置单点登录,其行为请参阅单点登录。
AI 提供商
AI Providers 注册实例可用于用自然语言起草检测规则的 AI 模型。每个提供商有种类、模型、API 密钥,需要时还有端点。密钥是只写的:不会再次显示。提供商的页面有 Basic、Connection(连接)和 Test(测试)选项卡,Test provider(测试提供商)会通过它运行一条提示来检查连接。注册提供商并不会把它开放给任何人:你需要在 Packaging(套餐)下把它授予某个层级,才会出现在这些租户的菜单中。
AI 提供商界面需要可选的 AI 服务。这些截图中的实例没有运行它,因此页面报告该功能区未部署:
参见 AI 提供商。
实例审计
Audit 是实例范围的日志。它记录登录、失败的登录和会话刷新(Auth(认证)类别),以及跨所有租户对身份、角色、租户和身份提供商的变更(Mutation(变更)类别)。每行显示时间、类别、执行者、操作、租户和目标。
可用 All tenants(已完成删除的租户也会连同日期一起列出,因此其日志仍可访问)、All categories(全部类别)和 Filter by actor…(按执行者筛选)筛选。Export CSV(导出 CSV)下载所有符合条件的内容,方式与租户的审计导出相同。
该截图过滤为运维人员自己的变更。未过滤时,日志主要是登录记录。
设置
Settings 保存实例范围的设置,每项设置各占一个选项卡。默认值存在于平台代码中,只存储你的覆盖值,因此每个选项卡都显示 Default(默认)或 Overridden(已覆盖)徽章。Save override(保存覆盖值)存储你的值;Reset to default(重置为默认值)移除它。
Branding(品牌)设置每个租户在未自行设置时获得的默认应用标题、颜色、标志高度和标志,并带有实时预览。此处的标志是一个 https 地址,与其他内容一起通过 Save override 保存。参见白标。
Token masks(令牌掩码)设置控制台为新记录生成令牌的方式。掩码由字面文本加占位符组成:{slug}(取自记录的名称)、{uuid}、{alphanumeric-N} 和 {numeric-N}。default 条目适用于没有自己掩码的任何类型,每行都会预览一个示例令牌。Add a mask(添加掩码)为某个实体类型添加一行。参见令牌掩码。
Map(地图)设置每个租户起始使用的底图(底图),Language(语言)设置在租户未设置时控制台打开所用的语言(默认语言)。租户管理员可以为自己的租户覆盖品牌、地图和语言;参见租户设置。