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