配置sudo自定义#
如果您的组织的IT安全策略不允许root访问或对使用sudo有限制,在安装AEN后,您可以自定义AEN以满足他们的要求。
您的组织可以选择实施以下任何或所有内容:
Remove root access 为AEN服务账户(注意:这将限制AEN管理用户账户)。
这些自定义必须在将文件复制到服务器节点后在终端窗口中完成。
从服务账户中移除所有root访问权限#
因为useradd
需要root权限,以下过程限制了AEN管理用户账户。
修改
/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账户。您选择的密码与账户的操作系统级别密码没有任何关联。
或者,你可以配置系统以使用LDAP进行用户认证。
允许公共用户访问您的AEN项目#
公共账户对任何可以访问AEN服务器的人都是可见的。
此账户的名称可以配置为您希望的任何名称。
例如,public
或 anonymous
。要禁用此功能,请使用特殊值 disabled
。
在
/opt/wakari/wakari-compute/etc/wakari/wk-compute-launcher-config.json
文件中,修改 ANON_USER 行以读取:"ANON_USER": "public"
重启AEN计算节点:
sudo service wakari-compute restart
在
/opt/wakari/wakari-server/etc/wakari/wk-server-config.json
文件中,修改 ANON_USER 行,使其显示为:"ANON_USER": "public"
重启AEN服务器:
sudo service wakari-server restart
有关配置键的更多信息,请参阅 使用配置文件。
使用sudo的替代方案#
只要支持与原始sudo相同的执行语义,您就可以使用sudo的替代方案。必须配置替代方案以授予服务帐户代表AEN用户运行命令的权限。
在您的终端窗口中,打开
/opt/wakari/wakari-compute/etc/wakari/config.json
文件。修改 AEN_SUDO_CMD 行为:
"AEN_SUDO_CMD": "/path/to/alternative/sudo",
注意:如果PATH上有可用的替代sudo命令,则不需要完整路径。
限制sudo访问权限给单一守门人#
默认情况下,sudoers 配置为允许 AEN 以特定用户身份运行任何命令,这使得平台能够以登录的最终用户身份启动进程。如果需要更严格的控制,应使用适当的 sudoers 策略来实现。如果这不可行或不实际,也可以通过单一的门卫路由所有 AEN 身份更改操作。
这个门卫包装了所需的可执行文件,并提供了一种替代方法来记录、监控或控制哪些进程可以由AEN代表用户启动。
注意:Gatekeeper 是一种特殊情况配置,仅在需要时使用。
配置AEN门禁:
修改
/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行为:"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