配置sudo自定义 (AEN 4.2.1)#

如果您的组织的IT安全策略不允许root访问或对使用sudo有限制,在安装AEN后,您可以自定义AEN以满足他们的要求。

您的组织可以选择实施以下任何或所有内容:

这些自定义必须在将文件复制到服务器节点后在终端窗口中完成。

从服务账户中移除所有root访问权限

因为useradd需要root权限,以下过程限制了AEN管理用户账户。

  1. 修改/etc/sudoers.d/wakari_sudo文件内容为:

    Defaults:wakari !requiretty, visiblepw
    Runas_Alias    OP = ALL,!root
    wakari ALL=(OP) NOPASSWD: ALL
    

    注意:如果您使用的服务帐户名称不是wakari,请输入该名称而不是wakari

  2. 修改 /opt/wakari/wakari-compute/etc/wakari/config.json 文件以读取:

    "MANAGE_ACCOUNTS": false,
    

使用此选项意味着您的IT部门必须在操作系统级别创建和管理所有用户账户。

在操作系统级别的账户存在后,您可以在主AEN网页上创建一个使用相同名称的AEN账户。您选择的密码与账户的操作系统级别密码没有任何关联。

或者,您可以配置系统以使用LDAP进行用户认证

允许公共用户访问您的AEN项目

公共账户对任何可以访问AEN服务器的人都是可见的。 这个账户的名称可以配置为你希望的任何名称。 例如,publicanonymous

  1. /opt/wakari/wakari-compute/etc/wakari/config.json 文件中,修改 ANON_USER 行为:

    "ANON_USER": "public"
    
  2. /opt/wakari/wakari-server/etc/wakari/config.json 文件中,修改 ANON_USER 行,使其显示为:

    "ANON_USER": "public"
    

有关配置键的更多信息,请参阅 使用配置文件

使用sudo的替代方案

只要支持与原始sudo相同的执行语义,您就可以使用sudo的替代方案。必须配置替代方案以授予服务帐户代表AEN用户运行命令的权限。

  1. 在您的终端窗口中,打开 /opt/wakari/wakari-compute/etc/wakari/config.json 文件。

  2. 修改 AEN_SUDO_CMD 行为:

    "AEN_SUDO_CMD": "/path/to/alternative/sudo",
    

    注意:如果PATH上有可用的替代sudo命令,则不需要完整路径。

限制sudo访问权限给单一守门人

默认情况下,sudoers 配置为允许 AEN 以特定用户身份运行任何命令,这使得平台能够以登录的最终用户身份启动进程。如果需要更严格的控制,应使用适当的 sudoers 策略来实现。如果这不可行或不实际,也可以通过单一的门卫路由所有 AEN 身份更改操作。

这个门卫包装了所需的可执行文件,并提供了一种替代方法来记录、监控或控制哪些进程可以由AEN代表用户启动。

注意:Gatekeeper 是一种特殊情况配置,仅在需要时使用。

配置AEN门禁:

  1. 修改/etc/sudoers.d/wakari_sudo文件以包含:

    Defaults:wakari !requiretty, visiblepw
    Runas_Alias    OP = ALL,!root
    wakari ALL=(OP) NOPASSWD: /path/to/gatekeeper
    
  2. /opt/wakari/wakari-compute/etc/wakari/config.json 文件中,修改 AEN_SUDO_SH 行,使其内容为:

    "AEN_SUDO_SH": "/path/to/gatekeeper"
    

示例:门卫可以像脚本一样简单,内容如下:

#!/bin/bash
first_cmd=$1
if [ 'bash' == $1 ]; then
    shift
    export HOME=~
    export SHELL=/bin/bash
    export PATH=$PATH:/opt/wakari/anaconda/bin
    bash "$@"
else
    exec $@
fi