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进行用户认证。
如果您希望允许公共用户访问项目,还必须创建一个供公众使用的账户,例如,public
或 anonymous
。创建公共账户并在以下两个配置文件中指定名称:
定位文件 /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