Google Compute Engine 实例的默认配置允许管理员通过 sudo 运行所有命令而无需指定密码。这似乎是一个安全漏洞,因为窃取管理员的一个 SSH 密钥可以允许无限制地访问每个实例,并且所有数据都可能被泄露。要求 sudo 密码可以提供第二层安全性,防止攻击者获得 root 权限。攻击者还必须破解管理员的 sudo 密码才能访问敏感数据或执行破坏性操作。
似乎应该可以在每个实例上配置 sudo 以要求输入密码,但这样每个管理员就必须手动在每个实例上设置密码。这种方法无法很好地扩展到许多实例。Google Cloud Platform 是否支持任何形式的密码管理?如果不支持,我如何才能以一种可以很好地扩展到许多实例和多个管理员的方式要求 sudo 输入密码?
答案1
您可以通过用户帐户功能(目前处于测试阶段)限制 sudo 访问项目。更多信息请参见这里:
根访问权限
项目中的所有 Linux 用户账户均被授予对实例的根访问权限。默认情况下,新 Linux 用户账户在创建账户时会添加到以下用户组中:
gce-sudoers - 授予 root 访问权限 gce-users - 一般用户组 gce-sudoers 组由 Cloud User Accounts 服务自动维护,包含项目中的每个 Linux 用户帐户。如果您想限制对某些帐户的 root 访问权限,请删除以下默认策略:
/etc/sudoers.d/gcua
接下来创建自己的组,并在sudoers.d文件夹中添加类似于gcua文件的配置。