配置 sudo 自定义#

如果贵组织的信息安全策略不允许 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。要禁用此功能,请使用特殊值 disabled

  1. /opt/wakari/wakari-compute/etc/wakari/wk-compute-launcher-config.json 文件中,修改 ANON_USER 行以读取

    "ANON_USER": "public"
    
  2. 重启 AEN 计算节点

    sudo service wakari-compute restart
    
  3. /opt/wakari/wakari-server/etc/wakari/wk-server-config.json 文件中,修改 ANON_USER 行以读取

    "ANON_USER": "public"
    
  4. 重启 AEN 服务器

    sudo service wakari-server restart
    

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

使用 sudo 替代方案#

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

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

  2. 修改 AEN_SUDO_CMD 行以读取

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

    注意:如果备用 sudo 命令在 PATH 中可用,则不需要完整路径。

将 sudo 访问限制为单个网守#

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

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

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

配置 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