我的公司打算聘请外部承包商来负责我们 EC2 服务器上的一些开发运营工作。我们使用通过.pem
证书文件访问的 Ubuntu。
出于显而易见的原因,我不想.pem
与外人分享我的密钥——如果密钥丢失,互联网上的任何人都可以访问我的机器。
我可以将承包商的 ssh 密钥添加到.ssh/authorized_keys
所有服务器上,但这很麻烦,而且除非我更改模板服务器映像,否则他将无法访问新服务器。
有没有更简单的方法来授予对 EC2 机器的临时、可撤销的访问权限?
答案1
如果有一个集中式身份验证系统:
是的,这很容易做到,原因很明显。只需在您的集中式身份验证系统 (LDAP、Kerberos、AD 等) 中启用/禁用承包商的帐户即可。您可以为该特定承包商设立个人帐户,也可以决定使用通用的第三方人员帐户。如果这很重要,前者可以保留可审计性。
如果没有集中式身份验证系统:
为承包商创建密钥对,并使用您选择的配置管理将其放入您的机器中。如果您没有密钥对,则可以使用ansible
的shell
模块,该模块不需要客户端进行任何操作,或者,作为最后的手段,您仍然可以使用mussh
或自己编写一些脚本。一旦承包商完成工作,即可ssh-copy-id(1)
移除密钥、撤销 中的访问权限,或同时执行这两项操作。sshd_config