工程

基于角色的访问控制和外部身份验证功能在 ECE 2.3 的 GA 版中提供

我们很高兴地宣布,随着 Elastic Cloud Enterprise (ECE) 2.3 的发布,基于角色的访问控制和外部源身份验证功能现已正式推出。通过这些功能,您可以拥有 ECE 平台访问权限由角色控制的多个用户。您可以在 ECE 中本地添加用户,并连接您自己的目录服务器或身份提供商,以向现有用户授予访问权限。

我们最初在 ECE 2.2 中针对这些功能添加了公测版支持。除了在 2.3 版中消除了若干漏洞之外,我们还添加了对 Active Directory 以及现有 LDAP 和 SAML 选项的支持。

工作原理?

为 ECE 启用 RBAC 会添加一个安全部署,这是一个管理所有身份验证配置和权限的系统部署。当用户尝试登录时,ECE 将使用此安全部署来执行身份验证,并根据情况回退给系统用户。如果用户成功通过身份验证,ECE 则会应用用户分配的角色并将他们转换为细粒度权限,进而控制每个用户可以查看的数据以及可以执行的操作。

请注意,用户的 ECE 角色与用户为在 ECE 中托管的部署所保留的任何凭据是分开的。用户可能没有对 ECE 的访问权限,但具有对托管部署的管理访问权限,反之亦然。

提供哪些角色?

ECE 在平台和部署级别提供了一组丰富的操作。为了减轻管理员在定义和维护他们自己角色定义方面的工作,ECE 提供了一组涵盖最常见用例的预定义角色。这些角色将随着更多功能的交付而不断更新,因此,您无需担心将自己的定义保持最新状态。

角色描述如下。用户可以拥有多个角色并根据需要进行组合,例如,“平台管理员”可以执行任何操作,因此,无需为他们提供其他角色。但是,“平台查看人”可以查看任何内容但不能更改,因此,您可能会将其与“部署管理人”角色组合使用。

平台管理员

通过这一角色,用户能够以与安装过程中创建的系统级 admin 用户(或 ECE 1.x 中的 root)相同的方式查看所有数据,并在 ECE 中执行任何操作。这一角色通常仅由负责整个 ECE 平台的管理员拥有。UI 中的“平台”部分就是一个恰当的例子,因为它提供了有关(例如)分配器及其部署的信息,并且能够腾出分配器或将其置于维护模式。

平台查看人

这一角色提供对整个平台和托管部署仅查看的权限。关联的权限与 readonly 系统级用户拥有的权限相同。这对于自动化非常有用,例如监控 ECE 的状态。

部署管理人

这一角色允许用户在平台上创建和管理部署。具有这一角色的用户可以对部署执行任何操作:扩展、缩小、配置快照、重启节点和重置密码等等,但它不允许用户访问任何平台级别的操作和资源,例如部署模板、实例配置、分配器和系统部署等。

这一角色适用于任何负责管理部署但不需要查看平台级信息(如开发团队负责人)的人员。

部署查看人

拥有这一角色的用户可以查看部署,但无法以任何方式修改它们。这一角色适用于支持人员或开发团队成员。

管理本机用户

要在 ECE 中开始使用 RBAC,最简单的方法就是创建本机用户。这些用户将保存在 Elasticsearch 本机 Realm 内的安全部署中,而且仅支持有限数量的属性:用户名、全名、电子邮件、密码、角色,以及它们当前是否已启用。

单击导航菜单中的“User”(用户),可查看您的身份验证提供程序,其中一个是“Native users”(本机用户)配置文件。打开这个配置文件就会将您转到一个所有本机用户的列表。该列表包括由 ECE 安装程序创建的两个系统用户。这些用户无法进行编辑或删除,并且无法在此处重置其密码,请参阅文档,了解有关如何重置密码的更多说明。

演示:创建本机用户

在“Native users”(本机用户)页面中,您可以创建、编辑和删除本机用户。这些用户可以像系统用户一样登录 ECE,他们的访问权限按照您分配给他们的角色进行控制。

用户设置页面

ECE 2.3 还添加了一个“User Settings”(用户设置)页面。单击该页面右上角的用户图标,然后单击“Settings”(设置)。如果您以本机用户身份登录,则可以编辑您的姓名和电子邮件,或更改密码。如果您使用外部身份验证提供程序中的用户登录,则会看到一个只读页面,其中包含一些基本信息、身份验证配置文件的名称和类型,以及您拥有的角色。

演示:编辑用户设置

外部身份验证提供程序

如果您已有 LDAP、Active Directory 或 SAML 服务器,则可以将 ECE 配置为使用它们进行身份验证和授权。您甚至可以配置多个服务器,并按照您以与 Elasticsearch 相同方式设置的顺序尝试身份验证。使用现有的身份验证源意味着您只需在一个位置管理用户。外部提供程序的角色映射配置允许您在 ECE 中将用户属性映射到角色,因此,用户属性的任何更改(如组成员身份)都会由 ECE 自动获取。

在身份验证提供程序概述页面中,单击“Add provider”(添加提供程序)并选择一个类型。在下一页,将配置该提供程序。下面让我们逐步完成基本 LDAP 设置的配置选项。

演示:创建 LDAP 提供程序

LDAP 身份验证提供程序

常规设置:

  1. 每个配置文件都有一个名称。除了使用它来标记配置文件外,这个名称还用来生成一个 Realm ID。请注意,创建配置文件后,Realm ID 将不会再更改。
  2. 必须至少设置一个 LDAP 服务器,包括开始时的 ldap:ldaps: 协议。如果选择基于 DNS 的负载平衡策略,则只能指定单个服务器。
  3. 选择负载平衡策略时,请记住上述限制。

可信证书:

  1. 如果您的 LDAP 服务器以客户端需要保存特定 SSL/TLS 证书的方式受到保护,则需要准备捆绑文件并通过 URL 将其提供给 ECE。如需了解更多详细信息,请参阅文档
  2. 如果您的捆绑包受密码保护,请在此处提供密码。

绑定凭据:

  1. 如果凭据需要绑定到 LDAP 服务器,您可以在此处设置它们。
  2. 或者,如果不需要凭据,则单击“Bind anonymously”(匿名绑定)切换按钮。

搜索模式设置:

  1. 您可以针对用户搜索指定每条详细信息。有关这些字段的信息,请参阅文档。至少,您可能需要设置“Base DN for users”(用户的基本 DN),例如“cn=users,dc=example,dc=com”。
  2. 或者,如果您需要使用模板来执行 LDAP 查询,请单击“Template”(模板)单选按钮,然后提供一个或多个模板。

组搜索设置:

  1. 与搜索模式设置非常相似,您可以配置 ECE 应如何搜索用户组。您可能需要设置“Base DN for groups”(组的基本 DN),例如“ou=groups,dc=example,dc=com”。

角色映射:

  1. 用户需要拥有一个或多个角色才能通过 ECE 执行任何操作。针对成功通过身份验证的所有用户,您可以指定一些将分配给他们的默认角色。例如,您可以向所有用户授予“Deployments viewer”(部署查看人)角色,以便他们可以查看 ECE 中托管的所有部署而无法编辑任何内容。
  2. 另一种分配角色的方法是通过角色映射。这些只是简单规则,指明如果用户 DN 或组 DN 匹配某个值,则会分配一个或多个指定的角色。您可以根据需要拥有任意数量的映射,例如,为 IT Ops 用户提供“Deployment viewer”(部署查看人)的映射,为所有开发人员提供“Deployment manager”(部署管理人)的映射,以及为所有管理员提供“Platform viewer”(平台查看人)的映射。

完成后,单击Create profile(创建配置文件),ECE 即会重新配置安全部署。您现在应该使用各种 LDAP 用户进行登录,检查他们是否可以进行身份验证,以及他们的角色是否正确。您可以从用户设置页面直接检查角色,也可以通过浏览 UI,确保他们能够查看的内容和执行的操作符合预期。

Active Directory 和 SAML 身份验证提供程序

概括来讲,从 ECE 的角度看这个流程类似于 LDAP。您可以创建 SAML 或 Active Directory 身份验证提供程序,为其命名,指定 ECE 应如何与服务器通信,以及定义应适用的映射。

有关配置 SAML 身份验证提供程序Active Directory 身份验证提供程序的完整说明,请参阅文档。

REST API 支持

所有上述操作也可以使用 REST API 来执行。例如,要提取所有用户的列表,甚至是当前已禁用的用户:

GET /api/v1/users?include_disabled=true

假设您需要授予新的系统管理员 Sarah 的权限。您可以按如下所示为她创建一个新的本机用户:

POST /api/v1/users
{
  "user_name": "sarah",
  "security": {
    "roles": ["ece_platform_admin"],
    "password": "deadb33f"
  }
}

如果您随后想更改 Sarah 的访问权限,则可以发送一个仅包含要更改字段的 PATCH 请求,在本例中角色为:

PATCH /api/v1/users/sarah
{
  "security": {
    "roles": ["ece_platform_viewer"]
  }
}

最后,您可以使用 DELETE 请求删除 Sarah 的帐户:

DELETE /api/v1/users/sarah

有关身份验证提供程序端点的详细信息和示例,请参阅 REST API 文档

即刻开始使用

有关 ECE 2.3 中的完整更改列表,请务必查看发行说明。如果您想自己试用,可立即开始免费试用 30 天