Sudo配置 (AEN 4.1.2)#

Sudo配置概述

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

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

  • Remove root access for AEN service account (Note: this restricts AEN from managing user accounts)
  • Configurable sudo command
  • Restrict sudo access to all processes

这些自定义操作必须在将文件复制到AEN服务器实例后在终端窗口中完成。

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

这限制了AEN管理用户账户的能力,因为useradd需要root权限。

修改 /etc/sudoers.d/wakari_sudo 使其内容为:

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

注意:如果您使用的服务帐户名称不是wakari,那么在上面的文件中应该显示该名称而不是wakari。

接下来,修改文件 /opt/wakari/wakari-compute/etc/wakari/config.json,设置为读取:

"MANAGE_ACCOUNTS": false,

注意:使用此选项意味着IT部门必须在操作系统级别创建和管理所有用户账户。在操作系统级别的账户存在后,可以在主AEN网页上创建一个使用相同名称的AEN账户。在AEN网页上选择的密码与操作系统级别的账户密码没有任何关联。或者,系统可以配置为使用LDAP进行用户认证。

如果您希望允许公共用户访问项目,还必须创建一个供公众使用的账户,例如,publicanonymous。创建公共账户并在以下两个配置文件中指定名称:

定位文件 /opt/wakari/wakari-compute/etc/wakari/config.json 并修改以下行:

"ANON_USER": "public"

接下来,找到第二个文件 /opt/wakari/wakari-server/etc/wakari/config.json 并修改 这一行:

"ANON_USER": "public"

配置文件页面提供了有关这些配置键的更多信息。

替代的sudo命令

您可以配置AEN以使用sudo的替代方案,前提是它支持相同的执行语义。

在您的终端窗口中,导航到AEN文件,找到文件 /opt/wakari/wakari-compute/ etc/wakari/config.json

并修改该行:

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

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

必须配置替代的 sudo 以授予服务账户权限,使其能够代表 Anaconda Enterprise 用户运行命令。

限制sudo访问权限至单一可执行文件

默认情况下,sudoers 配置允许 Anaconda Enterprise 以特定用户身份运行任何命令。这使得 Anaconda Enterprise 能够以登录的最终用户身份启动进程。如果需要更严格的控制,首先应通过适当的 sudoers 策略来实现。

如果那不可能或不实际,也可以通过一个单一的守门人来路由所有Anaconda Enterprise ID更改操作。这个守门人包装了所需的可执行文件,并提供了一种替代方式来记录、监控或控制哪些进程可以由Anaconda Enterprise代表另一个用户启动。

此门卫是一个特殊情况配置,仅在需要时使用。

要相应地配置Anaconda Enterprise,请修改 /etc/sudoers.d/wakari_sudo 以包含

Defaults:wakari !requiretty, visiblepw
Runas_Alias    OP = ALL,!root
wakari ALL=(OP) NOPASSWD: /path/to/gatekeeper

找到文件 /opt/wakari/wakari-compute/etc/wakari/config.json 并修改以下行:

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

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