限制对 DC/OS 服务组的访问

使用 DC/OS UI 在宽容模式下实现多租户

在本部分,您将看到如何使用 DC/OS UI 在宽容模式下实现多租户。

本教程演示如何在宽容[安全模式]下实现 DC/OS 服务的用户权限。(/mesosphere/dcos/cn/2.1/security/ent/#security-modes). 完成后,您将通过使用 DC/OS 权限获得多租户。

前提条件:

  • DC/OS Enterprise 在宽容模式.下。
  1. Services > Services > Create Group 创建服务组。

    图 1. 创建组页面

    在此示例中,创建了一个名为 和一个名为 prod-b 创建组之后,您应该看到两个文件夹。您可以在此处为用户组部署服务并为每个单元设置权限。

    组文件夹

    图 2. 新建组文件夹

  2. 创建用户和组并定义每个组所需的权限。

    1. 选择 Organization > Users 并创建新用户。在此示例中,创建了两个用户(CoryNick).

      图 3. 创建新用户

      完成后,您应该看到两个用户。

      所有用户

      图 4. 用户页面中的新用户

      接下来,我们将创建组并为 DC/OS 服务分配权限。

      • ,用于管理用户 Cory 的 DC/OS 服务。
      • prod-b-group,用于管理用户 Nick 的 DC/OS 服务。

      图 5. 创建新组

  1. 选择 Organization > Groups

  2. 选择 prod-a-group 并选择 ADD PERMISSION。在此示例中,权限被分配给 prod-a,以允许用户创建自己的服务!

  3. 选择 INSERT PERMISSION STRING 切换键以使用字符串格式进行输入。字符串区分大小写。

    此处添加了每个组所需的所有权限。这些权限允许用户访问 DC/OS 群集并部署自己的服务。这些权限也将限制每个组,以便他们只能看到自己的 DC/OS 服务。

  4. 为 prod-a-group 添加这些权限,然后单击 Close

    prod-a-group

    图 6. 为 添加权限prod-a-group

    以下是添加后的权限视图:

    图 7. 添加的组权限

  5. prod-b-group 添加这些权限并单击 关闭

    既然权限被分配给组,您可以将用户添加到组以继承权限。

  6. 选择 Organization > Users,然后选择 Cory

  7. 选择 Group Membership,然后在搜索框中键入 prod-b-group,然后单击选择。

  1. 以 Cory 身份登录到 DC/OS UI。您可以看到,用户 Cory 只能访问 ServicesCatalog 选项卡。同时,Cory 只能看到 prod-a 服务。

prod-a-group

图 9. 限制视图

注意:要退出当前用户,可单击右上角的用户名,然后选择注销.

我们将把 NGINX 服务部署到 prod-a-group.

  1. 选择 Services > Services,然后单击加号 (+) 来部署服务。

  2. 选择 JSON Configuration 并粘贴到以下应用定义中:

    图 10. JSON 文件视图

  1. 单击 REVIEW & RUN,然后单击 RUN SERVICE

  2. 针对 Nick 重复之前的步骤。确保指定 "id": "/prod-b/nginx",,例如:

  3. 在 Cory 或 Nick 登录时,单击 NGINX 启动图标,查看确认消息。

    NGINX

    图 11. 确认屏幕

接下来,我们将从超级用户视图查看 服务 选项卡。

  1. 注销当前用户,然后以具有权限的用户身份返回。您将看到,两个服务都在 和 prod-b-groups. 中运行。

    图 12. 超级用户视图