Elastic在 ECE 2.3 的 GA 版中提供基于角色的访问控制和外部身份验证功能
做者Rory Hunterhtml
咱们很高兴地宣布,随着 Elastic Cloud Enterprise (ECE) 2.3 的发布,基于角色的访问控制和外部源身份验证功能现已正式推出。经过这些功能,您能够拥有 ECE 平台访问权限由角色控制的多个用户。您能够在 ECE 中本地添加用户,并链接您本身的目录服务器或身份提供商,以向现有用户授予访问权限。api
咱们最初在 ECE 2.2 中针对这些功能添加了公测版支持。除了在 2.3 版中消除了若干漏洞以外,咱们还添加了对 Active Directory 以及现有 LDAP 和 SAML 选项的支持。安全
为 ECE 启用 RBAC 会添加一个安所有署,这是一个管理全部身份验证配置和权限的系统部署。当用户尝试登陆时,ECE 将使用此安所有署来执行身份验证,并根据状况回退给系统用户。若是用户成功经过身份验证,ECE 则会应用用户分配的角色并将他们转换为细粒度权限,进而控制每一个用户能够查看的数据以及能够执行的操做。服务器
请注意,用户的 ECE 角色与用户为在 ECE 中托管的部署所保留的任何凭据是分开的。用户可能没有对 ECE 的访问权限,但具备对托管部署的管理访问权限,反之亦然。restful
ECE 在平台和部署级别提供了一组丰富的操做。为了减轻管理员在定义和维护他们本身角色定义方面的工做,ECE 提供了一组涵盖最多见用例的预约义角色。这些角色将随着更多功能的交付而不断更新,所以,您无需担忧将本身的定义保持最新状态。ide
角色描述以下。用户能够拥有多个角色并根据须要进行组合,例如,“平台管理员”能够执行任何操做,所以,无需为他们提供其余角色。可是,“平台查看人”能够查看任何内容但不能更改,所以,您可能会将其与“部署管理人”角色组合使用。ui
经过这一角色,用户可以以与安装过程当中建立的系统级 admin
用户(或 ECE 1.x 中的 root
)相同的方式查看全部数据,并在 ECE 中执行任何操做。这一角色一般仅由负责整个 ECE 平台的管理员拥有。UI 中的“平台”部分就是一个恰当的例子,由于它提供了有关(例如)分配器及其部署的信息,而且可以腾出分配器或将其置于维护模式。spa
这一角色提供对整个平台和托管部署仅查看的权限。关联的权限与 readonly
系统级用户拥有的权限相同。这对于自动化很是有用,例如监控 ECE 的状态。rest
这一角色容许用户在平台上建立和管理部署。具备这一角色的用户能够对部署执行任何操做:扩展、缩小、配置快照、重启节点和重置密码等等,但它不容许用户访问任何平台级别的操做和资源,例如部署模板、实例配置、分配器和系统部署等。code
这一角色适用于任何负责管理部署但不须要查看平台级信息(如开发团队负责人)的人员。
拥有这一角色的用户能够查看部署,但没法以任何方式修改它们。这一角色适用于支持人员或开发团队成员。
要在 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:
或 ldaps:
协议。若是选择基于 DNS 的负载平衡策略,则只能指定单个服务器。可信证书:
绑定凭据:
搜索模式设置:
组搜索设置:
角色映射:
完成后,单击Create profile(建立配置文件),ECE 即会从新配置安所有署。您如今应该使用各类 LDAP 用户进行登陆,检查他们是否能够进行身份验证,以及他们的角色是否正确。您能够从用户设置页面直接检查角色,也能够经过浏览 UI,确保他们可以查看的内容和执行的操做符合预期。
归纳来说,从 ECE 的角度看这个流程相似于 LDAP。您能够建立 SAML 或 Active Directory 身份验证提供程序,为其命名,指定 ECE 应如何与服务器通讯,以及定义应适用的映射。
有关配置 SAML 身份验证提供程序或 Active Directory 身份验证提供程序的完整说明,请参阅文档。
全部上述操做也可使用 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 文档。