配置 sudo 自定义#
如果贵组织的信息安全策略不允许 root 访问或对 sudo 的使用有限制,则在 AEN 安装后,您可以自定义 AEN 以满足他们的要求。
贵组织可以选择实施以下任何或所有项
移除 root 访问权限 用于 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",
注意:如果备用 sudo 命令在 PATH 中可用,则不需要完整路径。
将 sudo 访问限制为单个网守#
默认情况下,sudoers 配置为允许 AEN 以特定用户身份运行任何命令,这允许平台以登录的最终用户身份启动进程。如果需要更严格的控制,则应使用合适的 sudoers 策略来实现。如果这不可行或不切实际,也可以通过单个网守路由所有 AEN ID 更改操作。
此网守包装所需的执行文件,并提供一种替代方法来记录、监视或控制哪些进程可以由 AEN 代表用户启动。
注意:网守是一种特殊情况配置,仅在需要时才应使用。
配置 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